CINXE.COM
更新chapter9 code,与原作实现保持一致 · FighterLYL/GraphNeuralNetwork@cf0350e · GitHub
<!DOCTYPE html> <html lang="en" data-color-mode="auto" data-light-theme="light" data-dark-theme="dark" data-a11y-animated-images="system" data-a11y-link-underlines="true" > <head> <meta charset="utf-8"> <link rel="dns-prefetch" href="https://github.githubassets.com"> <link rel="dns-prefetch" href="https://avatars.githubusercontent.com"> <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com"> <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/"> <link rel="preconnect" href="https://github.githubassets.com" crossorigin> <link rel="preconnect" href="https://avatars.githubusercontent.com"> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-605318cbe3a1.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-bd1cb5575fff.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-52a2075571c3.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-bf3988586de0.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-27a437876a92.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-97f0dc959f8f.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-708e3a93215a.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-9217138a8d5b.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-4397d91bdb49.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-225433424a87.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-93aded0ee8a1.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-5b2991c52993.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-d92840ce6f97.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/repository-4fce88777fa8.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-0210be90f4d3.css" /> <script type="application/json" id="client-env">{"locale":"en","featureFlags":["a11y_quote_reply_fix","contentful_lp_optimize_image","contentful_lp_hero_video_cover_image","copilot_immersive_plugin_system","copilot_new_references_ui","copilot_chat_repo_custom_instructions_preview","copilot_chat_immersive_subthreading","copilot_no_floating_button","copilot_smell_icebreaker_ux","copilot_read_shared_conversation","dotcom_chat_client_side_skills","experimentation_azure_variant_endpoint","enterprise_nav_redesign","failbot_handle_non_errors","geojson_azure_maps","ghost_pilot_confidence_truncation_25","ghost_pilot_confidence_truncation_40","github_models_o3_mini_streaming","hovercard_accessibility","insert_before_patch","issues_react_remove_placeholders","issues_react_blur_item_picker_on_close","marketing_pages_search_explore_provider","react_data_router_pull_requests","remove_child_patch","sample_network_conn_type","swp_enterprise_contact_form","site_proxima_australia_update","issues_react_create_milestone","issues_react_cache_fix_workaround","lifecycle_label_name_updates","copilot_task_oriented_assistive_prompts","issue_types_prevent_private_type_creation"]}</script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-7b48293b3dd7.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover_js-9da652f58479.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_arianotify-polyfill_ariaNotify-polyfill_js-node_modules_github_mi-3abb8f-d7e6bc799724.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_failbot_failbot_ts-4600dbf2d60a.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/environment-f04cb2a9fc8c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_behaviors_dist_esm_index_mjs-0dbb79f97f8f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_selector-observer_dist_index_esm_js-f690fd9ae3d5.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_relative-time-element_dist_index_js-f6da4b3fa34c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_text-expander-element_dist_index_js-78748950cb0c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_auto-complete-element_dist_index_js-node_modules_github_catalyst_-8e9f78-a74b4e0a8a6b.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_filter-input-element_dist_index_js-node_modules_github_remote-inp-b5f1d7-a1760ffda83d.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_markdown-toolbar-element_dist_index_js-ceef33f593fa.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_primer_view-co-c44a69-8094ee2ecc5e.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-e73c59eabd5a.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-0339e35021ae.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_braintree_browser-detection_dist_browser-detection_js-node_modules_githu-bb80ec-72267f4e3ff9.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lit-html_lit-html_js-be8cb88f481b.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_morphdom_dist_morphdom-e-7c534c-a4a1922eb55f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_turbo_dist_turbo_es2017-esm_js-e3cbe28f1638.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-893f9f-6cf3320416b8.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_color-convert_index_js-e3180fe3bcb3.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_quote-selection_dist_index_js-node_modules_github_session-resume_-69cfcc-bc42a18e77d5.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_updatable-content_updatable-content_ts-2a55124d5c52.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_task-list_ts-app_assets_modules_github_sso_ts-ui_packages-900dde-768abe60b1f8.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_sticky-scroll-into-view_ts-3e000c5d31a9.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_ajax-error_ts-app_assets_modules_github_behaviors_include-87a4ae-21948f72ce0b.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_commenting_edit_ts-app_assets_modules_github_behaviors_ht-83c235-e429cff6ceb1.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-c37b8eb215ba.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_catalyst_lib_index_js-f6223d90c7ba.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/notifications-global-01e85cd1be94.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_virtualized-list_es_index_js-node_modules_github_template-parts_lib_index_js-94dc7a2157c1.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_github_catalyst_lib_index_-280e4f-f7d6cfa05e86.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_decorators_js-node_modules_delegated-events_di-e161aa-9d41fb1b6c9e.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_scroll-anchoring_dist_scroll-anchoring_esm_js-node_modules_github_hydro--09cdca-c8338d3c4dc8.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_ref-selector_ts-3e9d848bab5f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_diffs_blob-lines_ts-app_assets_modules_github_diffs_linkable-line-n-b8c0ea-90d580abff98.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/diffs-76da528a8b4c.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/primer-react-d4f7d0473d87.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-core-88273863451e.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-lib-f1bca44e0926.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/octicons-react-611691cca2f6.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_emotion_is-prop-valid_dist_emotion-is-prop-valid_esm_js-node_modules_emo-62da9f-2df2f32ec596.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_stacktrace-parser_dist_s-e7dcdd-f7cc96ebae76.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover-fn_js-55fea94174bf.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_dompurify_dist_purify_es_mjs-dd1d3ea6a436.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lodash-es__Stack_js-node_modules_lodash-es__Uint8Array_js-node_modules_l-4faaa6-4a736fde5c2f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_date-fns_format_mjs-6e4d0f904632.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_date-fns_addWeeks_mjs-node_modules_date-fns_addYears_mjs-node_modules_da-827f4f-cf37cd06c24f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_focus-visible_dist_focus-visible_js-node_modules_fzy_js_index_js-node_mo-b1360e-0d0ccc9f422f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_react-relay_index_js-3e4c69718bad.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_tanstack_query-core_build_modern_queryObserver_js-node_modules_tanstack_-defd52-843b41414e0e.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_hotkey_dist_index_js-node_modules_date-fns_getDaysInMonth_mjs-nod-70c11b-80950964d78e.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lodash-es__baseIsEqual_js-8929eb9718d5.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_combobox-nav_dist_index_js-node_modules_github_g-emoji-element_di-24c074-57709bcf92f3.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_react-relay_hooks_js-node_modules_color2k_dist_index_exports_import_es_m-e8b6bb-d8ead802a1fd.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_tanstack_react-query_build_modern_useMutation_js-node_modules_tanstack_r-8c7f45-61a93e5806f6.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_quote-selection_dist_index_js-node_modules_github_hydro-analytics-f409df-00623e317211.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_aria-live_aria-live_ts-ui_packages_promise-with-resolvers-polyfill_promise-with-r-17c672-34345cb18aac.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_paths_index_ts-f4b1f66d3ae9.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_ui-commands_ui-commands_ts-97496b0f52ba.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_list-view_src_ListItem_ListItem_tsx-ui_packages_list-view_src_ListItem_Title_tsx--68e5b9-4bb2727ac420.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_date-picker_date-picker_ts-ui_packages_github-avatar_GitHubAvatar_tsx-df9548397fca.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_item-picker_constants_labels_ts-ui_packages_item-picker_constants_values_ts-ui_pa-163a9a-c20565dec94d.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_item-picker_components_RepositoryPicker_tsx-3840f58896cc.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_comment-box_api_file-upload_ts-ui_packages_comment-box_api_preview_ts-ui_packages-2c5e84-b77bb9fd2096.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_ref-selector_RefSelector_tsx-7496afc3784d.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_issue-create_dialog_CreateIssueDialogEntry_tsx-3037bf0ff687.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_signed-commit-badge_index_ts-ui_packages_use-navigate_use-navigate_ts-7d3b385f92f0.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_code-view-shared_utilities_web-worker_ts-ui_packages_diff-file-header_diff-file-h-1692d0-7a1d215f7538.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_commit-attribution_index_ts-ui_packages_commit-checks-status_index_ts-ui_packages-7094d4-88b083eead7f.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/commits-4911505919cb.js"></script> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.62102b3a56146f8b8424.module.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/commits.ec4e44e924b297faabce.module.css" /> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/notifications-subscriptions-menu-58a0c58bfee4.js"></script> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.62102b3a56146f8b8424.module.css" /> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/notifications-subscriptions-menu.1bcff9205c241e99cff2.module.css" /> <title>更新chapter9 code,与原作实现保持一致 · FighterLYL/GraphNeuralNetwork@cf0350e · GitHub</title> <meta name="route-pattern" content="/:user_id/:repository/commit/:name(/*path)" data-turbo-transient> <meta name="route-controller" content="commit" data-turbo-transient> <meta name="route-action" content="show" data-turbo-transient> <meta name="current-catalog-service-hash" content="f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb"> <meta name="request-id" content="A298:A1B4D:29614F:33C3BF:67D213E4" data-pjax-transient="true"/><meta name="html-safe-nonce" content="f750bbca91e9254be81561f0e7064cc2c76dfad9dfae8f6650b1a51f0aaead57" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBMjk4OkExQjREOjI5NjE0RjozM0MzQkY6NjdEMjEzRTQiLCJ2aXNpdG9yX2lkIjoiNzY5MjQ2OTMyNDI2MTY3MjY4IiwicmVnaW9uX2VkZ2UiOiJzb3V0aGVhc3Rhc2lhIiwicmVnaW9uX3JlbmRlciI6InNvdXRoZWFzdGFzaWEifQ==" data-pjax-transient="true"/><meta name="visitor-hmac" content="65e6c32afc88068149696f971ba65a4b1f0f10bed25420f08121dc23ba6ed231" data-pjax-transient="true"/> <meta name="hovercard-subject-tag" content="repository:216493530" data-turbo-transient> <meta name="github-keyboard-shortcuts" content="repository,commits,copilot" data-turbo-transient="true" /> <meta name="selected-link" value="repo_commits" data-turbo-transient> <link rel="assets" href="https://github.githubassets.com/"> <meta name="google-site-verification" content="Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I"> <meta name="octolytics-url" content="https://collector.github.com/github/collect" /> <meta name="analytics-location" content="/<user-name>/<repo-name>/commit/show" data-turbo-transient="true" /> <meta name="user-login" content=""> <meta name="viewport" content="width=device-width"> <meta name="description" content="《深入浅出图神经网络:GNN原理解析》配套代码. Contribute to FighterLYL/GraphNeuralNetwork development by creating an account on GitHub."> <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub"> <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub"> <meta property="fb:app_id" content="1401488693436528"> <meta name="apple-itunes-app" content="app-id=1477376905, app-argument=https://github.com/FighterLYL/GraphNeuralNetwork/commit/cf0350e449688c82e3d9b111a7bb7814f75668db" /> <meta name="twitter:image" content="https://opengraph.githubassets.com/7c0e5924a669d88d40683014a12af8450af72fd12054baddc5c17bef0dcc6233/FighterLYL/GraphNeuralNetwork/commit/cf0350e449688c82e3d9b111a7bb7814f75668db" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="更新chapter9 code,与原作实现保持一致 · FighterLYL/GraphNeuralNetwork@cf0350e" /><meta name="twitter:description" content="" /> <meta property="og:image" content="https://opengraph.githubassets.com/7c0e5924a669d88d40683014a12af8450af72fd12054baddc5c17bef0dcc6233/FighterLYL/GraphNeuralNetwork/commit/cf0350e449688c82e3d9b111a7bb7814f75668db" /><meta property="og:image:width" content="1200" /><meta property="og:image:height" content="600" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="更新chapter9 code,与原作实现保持一致 · FighterLYL/GraphNeuralNetwork@cf0350e" /><meta property="og:url" content="/FighterLYL/GraphNeuralNetwork/commit/cf0350e449688c82e3d9b111a7bb7814f75668db" /><meta property="og:updated_time" content="1607068934" /> <meta name="hostname" content="github.com"> <meta name="expected-hostname" content="github.com"> <meta http-equiv="x-pjax-version" content="59c57a8aab7c833ebeefef1236acf3c37f2a882fc885d2263164c6a3b924b70e" data-turbo-track="reload"> <meta http-equiv="x-pjax-csp-version" content="1387756d457e2f7c930482f0374bab8f35110d772491ea950a7236d69098c3a6" data-turbo-track="reload"> <meta http-equiv="x-pjax-css-version" content="186f65b5487bc65e2a0f43760d5795a426974816c46cfaeaa4073cf2b9a348d3" data-turbo-track="reload"> <meta http-equiv="x-pjax-js-version" content="1ae73fe46e81ba78ffdd23edd1b95da435317e6d0da89183772308e28fe2e087" data-turbo-track="reload"> <meta name="turbo-cache-control" content="no-preview" data-turbo-transient=""> <meta name="turbo-cache-control" content="no-cache" data-turbo-transient> <meta data-hydrostats="publish"> <meta name="go-import" content="github.com/FighterLYL/GraphNeuralNetwork git https://github.com/FighterLYL/GraphNeuralNetwork.git"> <meta name="octolytics-dimension-user_id" content="13479518" /><meta name="octolytics-dimension-user_login" content="FighterLYL" /><meta name="octolytics-dimension-repository_id" content="216493530" /><meta name="octolytics-dimension-repository_nwo" content="FighterLYL/GraphNeuralNetwork" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="216493530" /><meta name="octolytics-dimension-repository_network_root_nwo" content="FighterLYL/GraphNeuralNetwork" /> <meta name="turbo-body-classes" content="logged-out env-production page-responsive"> <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats"> <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors"> <link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000"> <link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png"> <link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg" data-base-href="https://github.githubassets.com/favicons/favicon"> <meta name="theme-color" content="#1e2327"> <meta name="color-scheme" content="light dark" /> <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials"> </head> <body class="logged-out env-production page-responsive" style="word-wrap: break-word;"> <div data-turbo-body class="logged-out env-production page-responsive" style="word-wrap: break-word;"> <div class="position-relative header-wrapper js-header-wrapper "> <a href="#start-of-content" data-skip-target-assigned="false" class="px-2 py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a> <span data-view-component="true" class="progress-pjax-loader Progress position-fixed width-full"> <span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span> </span> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/keyboard-shortcuts-dialog-ac448fe050d6.js"></script> <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.62102b3a56146f8b8424.module.css" /> <react-partial partial-name="keyboard-shortcuts-dialog" data-ssr="false" data-attempted-ssr="false" > <script type="application/json" data-target="react-partial.embeddedData">{"props":{"docsUrl":"https://docs.github.com/get-started/accessibility/keyboard-shortcuts"}}</script> <div data-target="react-partial.reactRoot"></div> </react-partial> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-94fd67-56e2d9924e94.js"></script> <script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/sessions-730dca81d0a2.js"></script> <header class="HeaderMktg header-logged-out js-details-container js-header Details f4 py-3" role="banner" data-is-top="true" data-color-mode=light data-light-theme=light data-dark-theme=dark> <h2 class="sr-only">Navigation Menu</h2> <button type="button" class="HeaderMktg-backdrop d-lg-none border-0 position-fixed top-0 left-0 width-full height-full js-details-target" aria-label="Toggle navigation"> <span class="d-none">Toggle navigation</span> </button> <div class="d-flex flex-column flex-lg-row flex-items-center px-3 px-md-4 px-lg-5 height-full position-relative z-1"> <div class="d-flex flex-justify-between flex-items-center width-full width-lg-auto"> <div class="flex-1"> <button aria-label="Toggle navigation" aria-expanded="false" type="button" data-view-component="true" class="js-details-target js-nav-padding-recalculate js-header-menu-toggle Button--link Button--medium Button d-lg-none color-fg-inherit p-1"> <span class="Button-content"> <span class="Button-label"><div class="HeaderMenu-toggle-bar rounded my-1"></div> <div class="HeaderMenu-toggle-bar rounded my-1"></div> <div class="HeaderMenu-toggle-bar rounded my-1"></div></span> </span> </button> </div> <a class="mr-lg-3 color-fg-inherit flex-order-2 js-prevent-focus-on-mobile-nav" href="/" aria-label="Homepage" data-analytics-event="{"category":"Marketing nav","action":"click to go to homepage","label":"ref_page:Marketing;ref_cta:Logomark;ref_loc:Header"}"> <svg height="32" aria-hidden="true" viewBox="0 0 24 24" version="1.1" width="32" data-view-component="true" class="octicon octicon-mark-github"> <path d="M12.5.75C6.146.75 1 5.896 1 12.25c0 5.089 3.292 9.387 7.863 10.91.575.101.79-.244.79-.546 0-.273-.014-1.178-.014-2.142-2.889.532-3.636-.704-3.866-1.35-.13-.331-.69-1.352-1.18-1.625-.402-.216-.977-.748-.014-.762.906-.014 1.553.834 1.769 1.179 1.035 1.74 2.688 1.25 3.349.948.1-.747.402-1.25.733-1.538-2.559-.287-5.232-1.279-5.232-5.678 0-1.25.445-2.285 1.178-3.09-.115-.288-.517-1.467.115-3.048 0 0 .963-.302 3.163 1.179.92-.259 1.897-.388 2.875-.388.977 0 1.955.13 2.875.388 2.2-1.495 3.162-1.179 3.162-1.179.633 1.581.23 2.76.115 3.048.733.805 1.179 1.825 1.179 3.09 0 4.413-2.688 5.39-5.247 5.678.417.36.776 1.05.776 2.128 0 1.538-.014 2.774-.014 3.162 0 .302.216.662.79.547C20.709 21.637 24 17.324 24 12.25 24 5.896 18.854.75 12.5.75Z"></path> </svg> </a> <div class="flex-1 flex-order-2 text-right"> <a href="/login?return_to=https%3A%2F%2Fgithub.com%2FFighterLYL%2FGraphNeuralNetwork%2Fcommit%2Fcf0350e449688c82e3d9b111a7bb7814f75668db" class="HeaderMenu-link HeaderMenu-button d-inline-flex d-lg-none flex-order-1 f5 no-underline border color-border-default rounded-2 px-2 py-1 color-fg-inherit js-prevent-focus-on-mobile-nav" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://github.com/FighterLYL/GraphNeuralNetwork/commit/cf0350e449688c82e3d9b111a7bb7814f75668db","user_id":null}}" data-hydro-click-hmac="e84887be408e5bdefdaf9dcfce90c7a8b7f7636fc64f5c56e1511b4792b8aa9c" data-analytics-event="{"category":"Marketing nav","action":"click to Sign in","label":"ref_page:Marketing;ref_cta:Sign in;ref_loc:Header"}" > Sign in </a> </div> </div> <div class="HeaderMenu js-header-menu height-fit position-lg-relative d-lg-flex flex-column flex-auto top-0"> <div class="HeaderMenu-wrapper d-flex flex-column flex-self-start flex-lg-row flex-auto rounded rounded-lg-0"> <nav class="HeaderMenu-nav" aria-label="Global"> <ul class="d-lg-flex list-style-none"> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Product <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 d-lg-flex flex-wrap dropdown-menu-wide"> <div class="HeaderMenu-column px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0"> <ul class="list-style-none f5" > <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"github_copilot","context":"product","tag":"link","label":"github_copilot_link_product_navbar"}" href="https://github.com/features/copilot"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-copilot color-fg-subtle mr-3"> <path d="M23.922 16.992c-.861 1.495-5.859 5.023-11.922 5.023-6.063 0-11.061-3.528-11.922-5.023A.641.641 0 0 1 0 16.736v-2.869a.841.841 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.195 10.195 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952 1.399-1.136 3.392-2.093 6.122-2.093 2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.832.832 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256ZM12.172 11h-.344a4.323 4.323 0 0 1-.355.508C10.703 12.455 9.555 13 7.965 13c-1.725 0-2.989-.359-3.782-1.259a2.005 2.005 0 0 1-.085-.104L4 11.741v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.323 4.323 0 0 1-.355-.508h-.016.016Zm.641-2.935c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z"></path><path d="M14.5 14.25a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Zm-5 0a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Z"></path> </svg> <div> <div class="color-fg-default h4">GitHub Copilot</div> Write better code with AI </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"security","context":"product","tag":"link","label":"security_link_product_navbar"}" href="https://github.com/features/security"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-shield-check color-fg-subtle mr-3"> <path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path> </svg> <div> <div class="color-fg-default h4">Security</div> Find and fix vulnerabilities </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"actions","context":"product","tag":"link","label":"actions_link_product_navbar"}" href="https://github.com/features/actions"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-workflow color-fg-subtle mr-3"> <path d="M1 3a2 2 0 0 1 2-2h6.5a2 2 0 0 1 2 2v6.5a2 2 0 0 1-2 2H7v4.063C7 16.355 7.644 17 8.438 17H12.5v-2.5a2 2 0 0 1 2-2H21a2 2 0 0 1 2 2V21a2 2 0 0 1-2 2h-6.5a2 2 0 0 1-2-2v-2.5H8.437A2.939 2.939 0 0 1 5.5 15.562V11.5H3a2 2 0 0 1-2-2Zm2-.5a.5.5 0 0 0-.5.5v6.5a.5.5 0 0 0 .5.5h6.5a.5.5 0 0 0 .5-.5V3a.5.5 0 0 0-.5-.5ZM14.5 14a.5.5 0 0 0-.5.5V21a.5.5 0 0 0 .5.5H21a.5.5 0 0 0 .5-.5v-6.5a.5.5 0 0 0-.5-.5Z"></path> </svg> <div> <div class="color-fg-default h4">Actions</div> Automate any workflow </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"codespaces","context":"product","tag":"link","label":"codespaces_link_product_navbar"}" href="https://github.com/features/codespaces"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-codespaces color-fg-subtle mr-3"> <path d="M3.5 3.75C3.5 2.784 4.284 2 5.25 2h13.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 18.75 13H5.25a1.75 1.75 0 0 1-1.75-1.75Zm-2 12c0-.966.784-1.75 1.75-1.75h17.5c.966 0 1.75.784 1.75 1.75v4a1.75 1.75 0 0 1-1.75 1.75H3.25a1.75 1.75 0 0 1-1.75-1.75ZM5.25 3.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h13.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Zm-2 12a.25.25 0 0 0-.25.25v4c0 .138.112.25.25.25h17.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25Z"></path><path d="M10 17.75a.75.75 0 0 1 .75-.75h6.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path> </svg> <div> <div class="color-fg-default h4">Codespaces</div> Instant dev environments </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"issues","context":"product","tag":"link","label":"issues_link_product_navbar"}" href="https://github.com/features/issues"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-issue-opened color-fg-subtle mr-3"> <path d="M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1ZM2.5 12a9.5 9.5 0 0 0 9.5 9.5 9.5 9.5 0 0 0 9.5-9.5A9.5 9.5 0 0 0 12 2.5 9.5 9.5 0 0 0 2.5 12Zm9.5 2a2 2 0 1 1-.001-3.999A2 2 0 0 1 12 14Z"></path> </svg> <div> <div class="color-fg-default h4">Issues</div> Plan and track work </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"code_review","context":"product","tag":"link","label":"code_review_link_product_navbar"}" href="https://github.com/features/code-review"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-code-review color-fg-subtle mr-3"> <path d="M10.3 6.74a.75.75 0 0 1-.04 1.06l-2.908 2.7 2.908 2.7a.75.75 0 1 1-1.02 1.1l-3.5-3.25a.75.75 0 0 1 0-1.1l3.5-3.25a.75.75 0 0 1 1.06.04Zm3.44 1.06a.75.75 0 1 1 1.02-1.1l3.5 3.25a.75.75 0 0 1 0 1.1l-3.5 3.25a.75.75 0 1 1-1.02-1.1l2.908-2.7-2.908-2.7Z"></path><path d="M1.5 4.25c0-.966.784-1.75 1.75-1.75h17.5c.966 0 1.75.784 1.75 1.75v12.5a1.75 1.75 0 0 1-1.75 1.75h-9.69l-3.573 3.573A1.458 1.458 0 0 1 5 21.043V18.5H3.25a1.75 1.75 0 0 1-1.75-1.75ZM3.25 4a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h2.5a.75.75 0 0 1 .75.75v3.19l3.72-3.72a.749.749 0 0 1 .53-.22h10a.25.25 0 0 0 .25-.25V4.25a.25.25 0 0 0-.25-.25Z"></path> </svg> <div> <div class="color-fg-default h4">Code Review</div> Manage code changes </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"discussions","context":"product","tag":"link","label":"discussions_link_product_navbar"}" href="https://github.com/features/discussions"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-comment-discussion color-fg-subtle mr-3"> <path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 14.25 14H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 15.543V14H1.75A1.75 1.75 0 0 1 0 12.25v-9.5C0 1.784.784 1 1.75 1ZM1.5 2.75v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Z"></path><path d="M22.5 8.75a.25.25 0 0 0-.25-.25h-3.5a.75.75 0 0 1 0-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 22.25 20H21v1.543a1.457 1.457 0 0 1-2.487 1.03L15.939 20H10.75A1.75 1.75 0 0 1 9 18.25v-1.465a.75.75 0 0 1 1.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 0 1 .53.22l2.72 2.72v-2.19a.75.75 0 0 1 .75-.75h2a.25.25 0 0 0 .25-.25v-9.5Z"></path> </svg> <div> <div class="color-fg-default h4">Discussions</div> Collaborate outside of code </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{"location":"navbar","action":"code_search","context":"product","tag":"link","label":"code_search_link_product_navbar"}" href="https://github.com/features/code-search"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-code-square color-fg-subtle mr-3"> <path d="M10.3 8.24a.75.75 0 0 1-.04 1.06L7.352 12l2.908 2.7a.75.75 0 1 1-1.02 1.1l-3.5-3.25a.75.75 0 0 1 0-1.1l3.5-3.25a.75.75 0 0 1 1.06.04Zm3.44 1.06a.75.75 0 1 1 1.02-1.1l3.5 3.25a.75.75 0 0 1 0 1.1l-3.5 3.25a.75.75 0 1 1-1.02-1.1l2.908-2.7-2.908-2.7Z"></path><path d="M2 3.75C2 2.784 2.784 2 3.75 2h16.5c.966 0 1.75.784 1.75 1.75v16.5A1.75 1.75 0 0 1 20.25 22H3.75A1.75 1.75 0 0 1 2 20.25Zm1.75-.25a.25.25 0 0 0-.25.25v16.5c0 .138.112.25.25.25h16.5a.25.25 0 0 0 .25-.25V3.75a.25.25 0 0 0-.25-.25Z"></path> </svg> <div> <div class="color-fg-default h4">Code Search</div> Find more, search less </div> </a></li> </ul> </div> </div> <div class="HeaderMenu-column px-lg-4"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0 border-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="product-explore-heading">Explore</span> <ul class="list-style-none f5" aria-labelledby="product-explore-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"all_features","context":"product","tag":"link","label":"all_features_link_product_navbar"}" href="https://github.com/features"> All features </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{"location":"navbar","action":"documentation","context":"product","tag":"link","label":"documentation_link_product_navbar"}" href="https://docs.github.com"> Documentation <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{"location":"navbar","action":"github_skills","context":"product","tag":"link","label":"github_skills_link_product_navbar"}" href="https://skills.github.com"> GitHub Skills <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{"location":"navbar","action":"blog","context":"product","tag":"link","label":"blog_link_product_navbar"}" href="https://github.blog"> Blog <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> </ul> </div> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Solutions <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 d-lg-flex flex-wrap dropdown-menu-wide"> <div class="HeaderMenu-column px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0 pb-lg-3 mb-3 mb-lg-0"> <span class="d-block h4 color-fg-default my-1" id="solutions-by-company-size-heading">By company size</span> <ul class="list-style-none f5" aria-labelledby="solutions-by-company-size-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"enterprises","context":"solutions","tag":"link","label":"enterprises_link_solutions_navbar"}" href="https://github.com/enterprise"> Enterprises </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"small_and_medium_teams","context":"solutions","tag":"link","label":"small_and_medium_teams_link_solutions_navbar"}" href="https://github.com/team"> Small and medium teams </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"startups","context":"solutions","tag":"link","label":"startups_link_solutions_navbar"}" href="https://github.com/enterprise/startups"> Startups </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"nonprofits","context":"solutions","tag":"link","label":"nonprofits_link_solutions_navbar"}" href="/solutions/industry/nonprofits"> Nonprofits </a></li> </ul> </div> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="solutions-by-use-case-heading">By use case</span> <ul class="list-style-none f5" aria-labelledby="solutions-by-use-case-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"devsecops","context":"solutions","tag":"link","label":"devsecops_link_solutions_navbar"}" href="/solutions/use-case/devsecops"> DevSecOps </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"devops","context":"solutions","tag":"link","label":"devops_link_solutions_navbar"}" href="/solutions/use-case/devops"> DevOps </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"ci_cd","context":"solutions","tag":"link","label":"ci_cd_link_solutions_navbar"}" href="/solutions/use-case/ci-cd"> CI/CD </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"view_all_use_cases","context":"solutions","tag":"link","label":"view_all_use_cases_link_solutions_navbar"}" href="/solutions/use-case"> View all use cases </a></li> </ul> </div> </div> <div class="HeaderMenu-column px-lg-4"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="solutions-by-industry-heading">By industry</span> <ul class="list-style-none f5" aria-labelledby="solutions-by-industry-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"healthcare","context":"solutions","tag":"link","label":"healthcare_link_solutions_navbar"}" href="/solutions/industry/healthcare"> Healthcare </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"financial_services","context":"solutions","tag":"link","label":"financial_services_link_solutions_navbar"}" href="/solutions/industry/financial-services"> Financial services </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"manufacturing","context":"solutions","tag":"link","label":"manufacturing_link_solutions_navbar"}" href="/solutions/industry/manufacturing"> Manufacturing </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"government","context":"solutions","tag":"link","label":"government_link_solutions_navbar"}" href="/solutions/industry/government"> Government </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"view_all_industries","context":"solutions","tag":"link","label":"view_all_industries_link_solutions_navbar"}" href="/solutions/industry"> View all industries </a></li> </ul> </div> </div> <div class="HeaderMenu-trailing-link rounded-bottom-2 flex-shrink-0 mt-lg-4 px-lg-4 py-4 py-lg-3 f5 text-semibold"> <a href="/solutions"> View all solutions <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-right HeaderMenu-trailing-link-icon"> <path d="M6.22 3.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L9.94 8 6.22 4.28a.75.75 0 0 1 0-1.06Z"></path> </svg> </a> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Resources <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 d-lg-flex flex-wrap dropdown-menu-wide"> <div class="HeaderMenu-column px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="resources-topics-heading">Topics</span> <ul class="list-style-none f5" aria-labelledby="resources-topics-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"ai","context":"resources","tag":"link","label":"ai_link_resources_navbar"}" href="/resources/articles/ai"> AI </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"devops","context":"resources","tag":"link","label":"devops_link_resources_navbar"}" href="/resources/articles/devops"> DevOps </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"security","context":"resources","tag":"link","label":"security_link_resources_navbar"}" href="/resources/articles/security"> Security </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"software_development","context":"resources","tag":"link","label":"software_development_link_resources_navbar"}" href="/resources/articles/software-development"> Software Development </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"view_all","context":"resources","tag":"link","label":"view_all_link_resources_navbar"}" href="/resources/articles"> View all </a></li> </ul> </div> </div> <div class="HeaderMenu-column px-lg-4"> <div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0 border-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="resources-explore-heading">Explore</span> <ul class="list-style-none f5" aria-labelledby="resources-explore-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{"location":"navbar","action":"learning_pathways","context":"resources","tag":"link","label":"learning_pathways_link_resources_navbar"}" href="https://resources.github.com/learn/pathways"> Learning Pathways <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{"location":"navbar","action":"events_amp_webinars","context":"resources","tag":"link","label":"events_amp_webinars_link_resources_navbar"}" href="https://resources.github.com"> Events & Webinars <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"ebooks_amp_whitepapers","context":"resources","tag":"link","label":"ebooks_amp_whitepapers_link_resources_navbar"}" href="https://github.com/resources/whitepapers"> Ebooks & Whitepapers </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"customer_stories","context":"resources","tag":"link","label":"customer_stories_link_resources_navbar"}" href="https://github.com/customer-stories"> Customer Stories </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{"location":"navbar","action":"partners","context":"resources","tag":"link","label":"partners_link_resources_navbar"}" href="https://partner.github.com"> Partners <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle"> <path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path> </svg> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"executive_insights","context":"resources","tag":"link","label":"executive_insights_link_resources_navbar"}" href="https://github.com/solutions/executive-insights"> Executive Insights </a></li> </ul> </div> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Open Source <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 px-lg-4"> <div class="HeaderMenu-column"> <div class="border-bottom pb-3 pb-lg-0 pb-lg-3 mb-3 mb-lg-0 mb-lg-3"> <ul class="list-style-none f5" > <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{"location":"navbar","action":"github_sponsors","context":"open_source","tag":"link","label":"github_sponsors_link_open_source_navbar"}" href="/sponsors"> <div> <div class="color-fg-default h4">GitHub Sponsors</div> Fund open source developers </div> </a></li> </ul> </div> <div class="border-bottom pb-3 pb-lg-0 pb-lg-3 mb-3 mb-lg-0 mb-lg-3"> <ul class="list-style-none f5" > <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{"location":"navbar","action":"the_readme_project","context":"open_source","tag":"link","label":"the_readme_project_link_open_source_navbar"}" href="https://github.com/readme"> <div> <div class="color-fg-default h4">The ReadME Project</div> GitHub community articles </div> </a></li> </ul> </div> <div class="border-bottom pb-3 pb-lg-0 border-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="open-source-repositories-heading">Repositories</span> <ul class="list-style-none f5" aria-labelledby="open-source-repositories-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"topics","context":"open_source","tag":"link","label":"topics_link_open_source_navbar"}" href="https://github.com/topics"> Topics </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"trending","context":"open_source","tag":"link","label":"trending_link_open_source_navbar"}" href="https://github.com/trending"> Trending </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{"location":"navbar","action":"collections","context":"open_source","tag":"link","label":"collections_link_open_source_navbar"}" href="https://github.com/collections"> Collections </a></li> </ul> </div> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false"> Enterprise <svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1"> <path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path> </svg> </button> <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 px-lg-4"> <div class="HeaderMenu-column"> <div class="border-bottom pb-3 pb-lg-0 pb-lg-3 mb-3 mb-lg-0 mb-lg-3"> <ul class="list-style-none f5" > <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{"location":"navbar","action":"enterprise_platform","context":"enterprise","tag":"link","label":"enterprise_platform_link_enterprise_navbar"}" href="/enterprise"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-stack color-fg-subtle mr-3"> <path d="M11.063 1.456a1.749 1.749 0 0 1 1.874 0l8.383 5.316a1.751 1.751 0 0 1 0 2.956l-8.383 5.316a1.749 1.749 0 0 1-1.874 0L2.68 9.728a1.751 1.751 0 0 1 0-2.956Zm1.071 1.267a.25.25 0 0 0-.268 0L3.483 8.039a.25.25 0 0 0 0 .422l8.383 5.316a.25.25 0 0 0 .268 0l8.383-5.316a.25.25 0 0 0 0-.422Z"></path><path d="M1.867 12.324a.75.75 0 0 1 1.035-.232l8.964 5.685a.25.25 0 0 0 .268 0l8.964-5.685a.75.75 0 0 1 .804 1.267l-8.965 5.685a1.749 1.749 0 0 1-1.874 0l-8.965-5.685a.75.75 0 0 1-.231-1.035Z"></path><path d="M1.867 16.324a.75.75 0 0 1 1.035-.232l8.964 5.685a.25.25 0 0 0 .268 0l8.964-5.685a.75.75 0 0 1 .804 1.267l-8.965 5.685a1.749 1.749 0 0 1-1.874 0l-8.965-5.685a.75.75 0 0 1-.231-1.035Z"></path> </svg> <div> <div class="color-fg-default h4">Enterprise platform</div> AI-powered developer platform </div> </a></li> </ul> </div> <div class="border-bottom pb-3 pb-lg-0 border-bottom-0"> <span class="d-block h4 color-fg-default my-1" id="enterprise-available-add-ons-heading">Available add-ons</span> <ul class="list-style-none f5" aria-labelledby="enterprise-available-add-ons-heading"> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"advanced_security","context":"enterprise","tag":"link","label":"advanced_security_link_enterprise_navbar"}" href="https://github.com/enterprise/advanced-security"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-shield-check color-fg-subtle mr-3"> <path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path> </svg> <div> <div class="color-fg-default h4">Advanced Security</div> Enterprise-grade security features </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{"location":"navbar","action":"copilot_for_business","context":"enterprise","tag":"link","label":"copilot_for_business_link_enterprise_navbar"}" href="/features/copilot/copilot-business"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-copilot color-fg-subtle mr-3"> <path d="M23.922 16.992c-.861 1.495-5.859 5.023-11.922 5.023-6.063 0-11.061-3.528-11.922-5.023A.641.641 0 0 1 0 16.736v-2.869a.841.841 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.195 10.195 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952 1.399-1.136 3.392-2.093 6.122-2.093 2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.832.832 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256ZM12.172 11h-.344a4.323 4.323 0 0 1-.355.508C10.703 12.455 9.555 13 7.965 13c-1.725 0-2.989-.359-3.782-1.259a2.005 2.005 0 0 1-.085-.104L4 11.741v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.323 4.323 0 0 1-.355-.508h-.016.016Zm.641-2.935c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z"></path><path d="M14.5 14.25a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Zm-5 0a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Z"></path> </svg> <div> <div class="color-fg-default h4">Copilot for business</div> Enterprise-grade AI features </div> </a></li> <li> <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{"location":"navbar","action":"premium_support","context":"enterprise","tag":"link","label":"premium_support_link_enterprise_navbar"}" href="/premium-support"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-comment-discussion color-fg-subtle mr-3"> <path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 14.25 14H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 15.543V14H1.75A1.75 1.75 0 0 1 0 12.25v-9.5C0 1.784.784 1 1.75 1ZM1.5 2.75v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Z"></path><path d="M22.5 8.75a.25.25 0 0 0-.25-.25h-3.5a.75.75 0 0 1 0-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 22.25 20H21v1.543a1.457 1.457 0 0 1-2.487 1.03L15.939 20H10.75A1.75 1.75 0 0 1 9 18.25v-1.465a.75.75 0 0 1 1.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 0 1 .53.22l2.72 2.72v-2.19a.75.75 0 0 1 .75-.75h2a.25.25 0 0 0 .25-.25v-9.5Z"></path> </svg> <div> <div class="color-fg-default h4">Premium Support</div> Enterprise-grade 24/7 support </div> </a></li> </ul> </div> </div> </div> </li> <li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item"> <a class="HeaderMenu-link no-underline px-0 px-lg-2 py-3 py-lg-2 d-block d-lg-inline-block" data-analytics-event="{"location":"navbar","action":"pricing","context":"global","tag":"link","label":"pricing_link_global_navbar"}" href="https://github.com/pricing">Pricing</a> </li> </ul> </nav> <div class="d-flex flex-column flex-lg-row width-full flex-justify-end flex-lg-items-center text-center mt-3 mt-lg-0 text-lg-left ml-lg-3"> <qbsearch-input class="search-input" data-scope="repo:FighterLYL/GraphNeuralNetwork" data-custom-scopes-path="/search/custom_scopes" data-delete-custom-scopes-csrf="K19ia_5ZrQHcPmygBuvAZZkZjbkb_YsRCV1uT08VkrvzKJ0SmEG1bSxy4g0858hUbS50722ULj0EKHwDwtp_Jg" data-max-custom-scopes="10" data-header-redesign-enabled="false" data-initial-value="" data-blackbird-suggestions-path="/search/suggestions" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" data-current-repository="FighterLYL/GraphNeuralNetwork" data-current-org="" data-current-owner="FighterLYL" data-logged-in="false" data-copilot-chat-enabled="false" data-nl-search-enabled="false" data-retain-scroll-position="true"> <div class="search-input-container search-with-dialog position-relative d-flex flex-row flex-items-center mr-4 rounded" data-action="click:qbsearch-input#searchInputContainerClicked" > <button type="button" class="header-search-button placeholder input-button form-control d-flex flex-1 flex-self-stretch flex-items-center no-wrap width-full py-0 pl-2 pr-0 text-left border-0 box-shadow-none" data-target="qbsearch-input.inputButton" aria-label="Search or jump to…" aria-haspopup="dialog" placeholder="Search or jump to..." data-hotkey=s,/ autocapitalize="off" data-analytics-event="{"location":"navbar","action":"searchbar","context":"global","tag":"input","label":"searchbar_input_global_navbar"}" data-action="click:qbsearch-input#handleExpand" > <div class="mr-2 color-fg-muted"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search"> <path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path> </svg> </div> <span class="flex-1" data-target="qbsearch-input.inputButtonText">Search or jump to...</span> <div class="d-flex" data-target="qbsearch-input.hotkeyIndicator"> <svg xmlns="http://www.w3.org/2000/svg" width="22" height="20" aria-hidden="true" class="mr-1"><path fill="none" stroke="#979A9C" opacity=".4" d="M3.5.5h12c1.7 0 3 1.3 3 3v13c0 1.7-1.3 3-3 3h-12c-1.7 0-3-1.3-3-3v-13c0-1.7 1.3-3 3-3z"></path><path fill="#979A9C" d="M11.8 6L8 15.1h-.9L10.8 6h1z"></path></svg> </div> </button> <input type="hidden" name="type" class="js-site-search-type-field"> <div class="Overlay--hidden " data-modal-dialog-overlay> <modal-dialog data-action="close:qbsearch-input#handleClose cancel:qbsearch-input#handleClose" data-target="qbsearch-input.searchSuggestionsDialog" role="dialog" id="search-suggestions-dialog" aria-modal="true" aria-labelledby="search-suggestions-dialog-header" data-view-component="true" class="Overlay Overlay--width-large Overlay--height-auto"> <h1 id="search-suggestions-dialog-header" class="sr-only">Search code, repositories, users, issues, pull requests...</h1> <div class="Overlay-body Overlay-body--paddingNone"> <div data-view-component="true"> <div class="search-suggestions position-fixed width-full color-shadow-large border color-fg-default color-bg-default overflow-hidden d-flex flex-column query-builder-container" style="border-radius: 12px;" data-target="qbsearch-input.queryBuilderContainer" hidden > <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="query-builder-test-form" action="" accept-charset="UTF-8" method="get"> <query-builder data-target="qbsearch-input.queryBuilder" id="query-builder-query-builder-test" data-filter-key=":" data-view-component="true" class="QueryBuilder search-query-builder"> <div class="FormControl FormControl--fullWidth"> <label id="query-builder-test-label" for="query-builder-test" class="FormControl-label sr-only"> Search </label> <div class="QueryBuilder-StyledInput width-fit " data-target="query-builder.styledInput" > <span id="query-builder-test-leadingvisual-wrap" class="FormControl-input-leadingVisualWrap QueryBuilder-leadingVisualWrap"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search FormControl-input-leadingVisual"> <path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path> </svg> </span> <div data-target="query-builder.styledInputContainer" class="QueryBuilder-StyledInputContainer"> <div aria-hidden="true" class="QueryBuilder-StyledInputContent" data-target="query-builder.styledInputContent" ></div> <div class="QueryBuilder-InputWrapper"> <div aria-hidden="true" class="QueryBuilder-Sizer" data-target="query-builder.sizer"></div> <input id="query-builder-test" name="query-builder-test" value="" autocomplete="off" type="text" role="combobox" spellcheck="false" aria-expanded="false" aria-describedby="validation-da2fad05-24ff-4ab1-a0c8-8f48b1f52ab1" data-target="query-builder.input" data-action=" input:query-builder#inputChange blur:query-builder#inputBlur keydown:query-builder#inputKeydown focus:query-builder#inputFocus " data-view-component="true" class="FormControl-input QueryBuilder-Input FormControl-medium" /> </div> </div> <span class="sr-only" id="query-builder-test-clear">Clear</span> <button role="button" id="query-builder-test-clear-button" aria-labelledby="query-builder-test-clear query-builder-test-label" data-target="query-builder.clearButton" data-action=" click:query-builder#clear focus:query-builder#clearButtonFocus blur:query-builder#clearButtonBlur " variant="small" hidden="hidden" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium mr-1 px-2 py-0 d-flex flex-items-center rounded-1 color-fg-muted"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x-circle-fill Button-visual"> <path d="M2.343 13.657A8 8 0 1 1 13.658 2.343 8 8 0 0 1 2.343 13.657ZM6.03 4.97a.751.751 0 0 0-1.042.018.751.751 0 0 0-.018 1.042L6.94 8 4.97 9.97a.749.749 0 0 0 .326 1.275.749.749 0 0 0 .734-.215L8 9.06l1.97 1.97a.749.749 0 0 0 1.275-.326.749.749 0 0 0-.215-.734L9.06 8l1.97-1.97a.749.749 0 0 0-.326-1.275.749.749 0 0 0-.734.215L8 6.94Z"></path> </svg> </button> </div> <template id="search-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search"> <path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path> </svg> </template> <template id="code-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> </template> <template id="file-code-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-file-code"> <path d="M4 1.75C4 .784 4.784 0 5.75 0h5.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v8.586A1.75 1.75 0 0 1 14.25 15h-9a.75.75 0 0 1 0-1.5h9a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 10 4.25V1.5H5.75a.25.25 0 0 0-.25.25v2.5a.75.75 0 0 1-1.5 0Zm1.72 4.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l1.47-1.47-1.47-1.47a.75.75 0 0 1 0-1.06ZM3.28 7.78 1.81 9.25l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Zm8.22-6.218V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path> </svg> </template> <template id="history-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-history"> <path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path> </svg> </template> <template id="repo-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> </template> <template id="bookmark-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bookmark"> <path d="M3 2.75C3 1.784 3.784 1 4.75 1h6.5c.966 0 1.75.784 1.75 1.75v11.5a.75.75 0 0 1-1.227.579L8 11.722l-3.773 3.107A.751.751 0 0 1 3 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.91l3.023-2.489a.75.75 0 0 1 .954 0l3.023 2.49V2.75a.25.25 0 0 0-.25-.25Z"></path> </svg> </template> <template id="plus-circle-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-plus-circle"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm7.25-3.25v2.5h2.5a.75.75 0 0 1 0 1.5h-2.5v2.5a.75.75 0 0 1-1.5 0v-2.5h-2.5a.75.75 0 0 1 0-1.5h2.5v-2.5a.75.75 0 0 1 1.5 0Z"></path> </svg> </template> <template id="circle-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-dot-fill"> <path d="M8 4a4 4 0 1 1 0 8 4 4 0 0 1 0-8Z"></path> </svg> </template> <template id="trash-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-trash"> <path d="M11 1.75V3h2.25a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1 0-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75ZM4.496 6.675l.66 6.6a.25.25 0 0 0 .249.225h5.19a.25.25 0 0 0 .249-.225l.66-6.6a.75.75 0 0 1 1.492.149l-.66 6.6A1.748 1.748 0 0 1 10.595 15h-5.19a1.75 1.75 0 0 1-1.741-1.575l-.66-6.6a.75.75 0 1 1 1.492-.15ZM6.5 1.75V3h3V1.75a.25.25 0 0 0-.25-.25h-2.5a.25.25 0 0 0-.25.25Z"></path> </svg> </template> <template id="team-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-people"> <path d="M2 5.5a3.5 3.5 0 1 1 5.898 2.549 5.508 5.508 0 0 1 3.034 4.084.75.75 0 1 1-1.482.235 4 4 0 0 0-7.9 0 .75.75 0 0 1-1.482-.236A5.507 5.507 0 0 1 3.102 8.05 3.493 3.493 0 0 1 2 5.5ZM11 4a3.001 3.001 0 0 1 2.22 5.018 5.01 5.01 0 0 1 2.56 3.012.749.749 0 0 1-.885.954.752.752 0 0 1-.549-.514 3.507 3.507 0 0 0-2.522-2.372.75.75 0 0 1-.574-.73v-.352a.75.75 0 0 1 .416-.672A1.5 1.5 0 0 0 11 5.5.75.75 0 0 1 11 4Zm-5.5-.5a2 2 0 1 0-.001 3.999A2 2 0 0 0 5.5 3.5Z"></path> </svg> </template> <template id="project-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project"> <path d="M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25ZM11.75 3a.75.75 0 0 1 .75.75v7.5a.75.75 0 0 1-1.5 0v-7.5a.75.75 0 0 1 .75-.75Zm-8.25.75a.75.75 0 0 1 1.5 0v5.5a.75.75 0 0 1-1.5 0ZM8 3a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 3Z"></path> </svg> </template> <template id="pencil-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-pencil"> <path d="M11.013 1.427a1.75 1.75 0 0 1 2.474 0l1.086 1.086a1.75 1.75 0 0 1 0 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 0 1-.927-.928l.929-3.25c.081-.286.235-.547.445-.758l8.61-8.61Zm.176 4.823L9.75 4.81l-6.286 6.287a.253.253 0 0 0-.064.108l-.558 1.953 1.953-.558a.253.253 0 0 0 .108-.064Zm1.238-3.763a.25.25 0 0 0-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 0 0 0-.354Z"></path> </svg> </template> <template id="copilot-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copilot"> <path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path> </svg> </template> <template id="copilot-error-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copilot-error"> <path d="M16 11.24c0 .112-.072.274-.21.467L13 9.688V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-.198 0-.388-.009-.571-.029L6.833 5.226a4.01 4.01 0 0 0 .17-.782c.117-.935-.037-1.395-.241-1.614-.193-.206-.637-.413-1.682-.297-.683.076-1.115.231-1.395.415l-1.257-.91c.579-.564 1.413-.877 2.485-.996 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095Zm-5.083-8.707c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Zm2.511 11.074c-1.393.776-3.272 1.428-5.43 1.428-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.18-.455-.241-.963-.252-1.475L.31 4.107A.747.747 0 0 1 0 3.509V3.49a.748.748 0 0 1 .625-.73c.156-.026.306.047.435.139l14.667 10.578a.592.592 0 0 1 .227.264.752.752 0 0 1 .046.249v.022a.75.75 0 0 1-1.19.596Zm-1.367-.991L5.635 7.964a5.128 5.128 0 0 1-.889.073c-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433 1.539 0 3.089-.505 4.063-.934Z"></path> </svg> </template> <template id="workflow-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-workflow"> <path d="M0 1.75C0 .784.784 0 1.75 0h3.5C6.216 0 7 .784 7 1.75v3.5A1.75 1.75 0 0 1 5.25 7H4v4a1 1 0 0 0 1 1h4v-1.25C9 9.784 9.784 9 10.75 9h3.5c.966 0 1.75.784 1.75 1.75v3.5A1.75 1.75 0 0 1 14.25 16h-3.5A1.75 1.75 0 0 1 9 14.25v-.75H5A2.5 2.5 0 0 1 2.5 11V7h-.75A1.75 1.75 0 0 1 0 5.25Zm1.75-.25a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Zm9 9a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Z"></path> </svg> </template> <template id="book-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-book"> <path d="M0 1.75A.75.75 0 0 1 .75 1h4.253c1.227 0 2.317.59 3 1.501A3.743 3.743 0 0 1 11.006 1h4.245a.75.75 0 0 1 .75.75v10.5a.75.75 0 0 1-.75.75h-4.507a2.25 2.25 0 0 0-1.591.659l-.622.621a.75.75 0 0 1-1.06 0l-.622-.621A2.25 2.25 0 0 0 5.258 13H.75a.75.75 0 0 1-.75-.75Zm7.251 10.324.004-5.073-.002-2.253A2.25 2.25 0 0 0 5.003 2.5H1.5v9h3.757a3.75 3.75 0 0 1 1.994.574ZM8.755 4.75l-.004 7.322a3.752 3.752 0 0 1 1.992-.572H14.5v-9h-3.495a2.25 2.25 0 0 0-2.25 2.25Z"></path> </svg> </template> <template id="code-review-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-review"> <path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 13H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25v-8.5C0 1.784.784 1 1.75 1ZM1.5 2.75v8.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-8.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm5.28 1.72a.75.75 0 0 1 0 1.06L5.31 7l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.75.75 0 0 1 1.06 0Zm2.44 0a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L10.69 7 9.22 5.53a.75.75 0 0 1 0-1.06Z"></path> </svg> </template> <template id="codespaces-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-codespaces"> <path d="M0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm2-9.5C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 0 1-1.75 1.75h-8.5A1.75 1.75 0 0 1 2 6.75Zm1.75-.25a.25.25 0 0 0-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5a.25.25 0 0 0-.25-.25Zm-2 9.5a.25.25 0 0 0-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-3a.25.25 0 0 0-.25-.25Z"></path><path d="M7 12.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path> </svg> </template> <template id="comment-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment"> <path d="M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> </template> <template id="comment-discussion-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment-discussion"> <path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path> </svg> </template> <template id="organization-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-organization"> <path d="M1.75 16A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0h8.5C11.216 0 12 .784 12 1.75v12.5c0 .085-.006.168-.018.25h2.268a.25.25 0 0 0 .25-.25V8.285a.25.25 0 0 0-.111-.208l-1.055-.703a.749.749 0 1 1 .832-1.248l1.055.703c.487.325.779.871.779 1.456v5.965A1.75 1.75 0 0 1 14.25 16h-3.5a.766.766 0 0 1-.197-.026c-.099.017-.2.026-.303.026h-3a.75.75 0 0 1-.75-.75V14h-1v1.25a.75.75 0 0 1-.75.75Zm-.25-1.75c0 .138.112.25.25.25H4v-1.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 .75.75v1.25h2.25a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25ZM3.75 6h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM3 3.75A.75.75 0 0 1 3.75 3h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 3 3.75Zm4 3A.75.75 0 0 1 7.75 6h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 7 6.75ZM7.75 3h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM3 9.75A.75.75 0 0 1 3.75 9h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 3 9.75ZM7.75 9h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5Z"></path> </svg> </template> <template id="rocket-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-rocket"> <path d="M14.064 0h.186C15.216 0 16 .784 16 1.75v.186a8.752 8.752 0 0 1-2.564 6.186l-.458.459c-.314.314-.641.616-.979.904v3.207c0 .608-.315 1.172-.833 1.49l-2.774 1.707a.749.749 0 0 1-1.11-.418l-.954-3.102a1.214 1.214 0 0 1-.145-.125L3.754 9.816a1.218 1.218 0 0 1-.124-.145L.528 8.717a.749.749 0 0 1-.418-1.11l1.71-2.774A1.748 1.748 0 0 1 3.31 4h3.204c.288-.338.59-.665.904-.979l.459-.458A8.749 8.749 0 0 1 14.064 0ZM8.938 3.623h-.002l-.458.458c-.76.76-1.437 1.598-2.02 2.5l-1.5 2.317 2.143 2.143 2.317-1.5c.902-.583 1.74-1.26 2.499-2.02l.459-.458a7.25 7.25 0 0 0 2.123-5.127V1.75a.25.25 0 0 0-.25-.25h-.186a7.249 7.249 0 0 0-5.125 2.123ZM3.56 14.56c-.732.732-2.334 1.045-3.005 1.148a.234.234 0 0 1-.201-.064.234.234 0 0 1-.064-.201c.103-.671.416-2.273 1.15-3.003a1.502 1.502 0 1 1 2.12 2.12Zm6.94-3.935c-.088.06-.177.118-.266.175l-2.35 1.521.548 1.783 1.949-1.2a.25.25 0 0 0 .119-.213ZM3.678 8.116 5.2 5.766c.058-.09.117-.178.176-.266H3.309a.25.25 0 0 0-.213.119l-1.2 1.95ZM12 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </template> <template id="shield-check-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-shield-check"> <path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> </template> <template id="heart-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-heart"> <path d="m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002ZM4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.58 20.58 0 0 0 8 13.393a20.58 20.58 0 0 0 3.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.749.749 0 0 1-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5Z"></path> </svg> </template> <template id="server-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-server"> <path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v4c0 .372-.116.717-.314 1 .198.283.314.628.314 1v4a1.75 1.75 0 0 1-1.75 1.75H1.75A1.75 1.75 0 0 1 0 12.75v-4c0-.358.109-.707.314-1a1.739 1.739 0 0 1-.314-1v-4C0 1.784.784 1 1.75 1ZM1.5 2.75v4c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm.25 5.75a.25.25 0 0 0-.25.25v4c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25ZM7 4.75A.75.75 0 0 1 7.75 4h4.5a.75.75 0 0 1 0 1.5h-4.5A.75.75 0 0 1 7 4.75ZM7.75 10h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM3 4.75A.75.75 0 0 1 3.75 4h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 3 4.75ZM3.75 10h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5Z"></path> </svg> </template> <template id="globe-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-globe"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM5.78 8.75a9.64 9.64 0 0 0 1.363 4.177c.255.426.542.832.857 1.215.245-.296.551-.705.857-1.215A9.64 9.64 0 0 0 10.22 8.75Zm4.44-1.5a9.64 9.64 0 0 0-1.363-4.177c-.307-.51-.612-.919-.857-1.215a9.927 9.927 0 0 0-.857 1.215A9.64 9.64 0 0 0 5.78 7.25Zm-5.944 1.5H1.543a6.507 6.507 0 0 0 4.666 5.5c-.123-.181-.24-.365-.352-.552-.715-1.192-1.437-2.874-1.581-4.948Zm-2.733-1.5h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.507 6.507 0 0 0-4.666 5.5Zm10.181 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.507 6.507 0 0 0 4.666-5.5Zm2.733-1.5a6.507 6.507 0 0 0-4.666-5.5c.123.181.24.365.353.552.714 1.192 1.436 2.874 1.58 4.948Z"></path> </svg> </template> <template id="issue-opened-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> </template> <template id="device-mobile-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-device-mobile"> <path d="M3.75 0h8.5C13.216 0 14 .784 14 1.75v12.5A1.75 1.75 0 0 1 12.25 16h-8.5A1.75 1.75 0 0 1 2 14.25V1.75C2 .784 2.784 0 3.75 0ZM3.5 1.75v12.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25ZM8 13a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path> </svg> </template> <template id="package-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-package"> <path d="m8.878.392 5.25 3.045c.54.314.872.89.872 1.514v6.098a1.75 1.75 0 0 1-.872 1.514l-5.25 3.045a1.75 1.75 0 0 1-1.756 0l-5.25-3.045A1.75 1.75 0 0 1 1 11.049V4.951c0-.624.332-1.201.872-1.514L7.122.392a1.75 1.75 0 0 1 1.756 0ZM7.875 1.69l-4.63 2.685L8 7.133l4.755-2.758-4.63-2.685a.248.248 0 0 0-.25 0ZM2.5 5.677v5.372c0 .09.047.171.125.216l4.625 2.683V8.432Zm6.25 8.271 4.625-2.683a.25.25 0 0 0 .125-.216V5.677L8.75 8.432Z"></path> </svg> </template> <template id="credit-card-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-credit-card"> <path d="M10.75 9a.75.75 0 0 0 0 1.5h1.5a.75.75 0 0 0 0-1.5h-1.5Z"></path><path d="M0 3.75C0 2.784.784 2 1.75 2h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 14H1.75A1.75 1.75 0 0 1 0 12.25ZM14.5 6.5h-13v5.75c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25Zm0-2.75a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25V5h13Z"></path> </svg> </template> <template id="play-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path> </svg> </template> <template id="gift-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-gift"> <path d="M2 2.75A2.75 2.75 0 0 1 4.75 0c.983 0 1.873.42 2.57 1.232.268.318.497.668.68 1.042.183-.375.411-.725.68-1.044C9.376.42 10.266 0 11.25 0a2.75 2.75 0 0 1 2.45 4h.55c.966 0 1.75.784 1.75 1.75v2c0 .698-.409 1.301-1 1.582v4.918A1.75 1.75 0 0 1 13.25 16H2.75A1.75 1.75 0 0 1 1 14.25V9.332C.409 9.05 0 8.448 0 7.75v-2C0 4.784.784 4 1.75 4h.55c-.192-.375-.3-.8-.3-1.25ZM7.25 9.5H2.5v4.75c0 .138.112.25.25.25h4.5Zm1.5 0v5h4.5a.25.25 0 0 0 .25-.25V9.5Zm0-4V8h5.5a.25.25 0 0 0 .25-.25v-2a.25.25 0 0 0-.25-.25Zm-7 0a.25.25 0 0 0-.25.25v2c0 .138.112.25.25.25h5.5V5.5h-5.5Zm3-4a1.25 1.25 0 0 0 0 2.5h2.309c-.233-.818-.542-1.401-.878-1.793-.43-.502-.915-.707-1.431-.707ZM8.941 4h2.309a1.25 1.25 0 0 0 0-2.5c-.516 0-1 .205-1.43.707-.337.392-.646.975-.879 1.793Z"></path> </svg> </template> <template id="code-square-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-square"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> </template> <template id="device-desktop-icon"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-device-desktop"> <path d="M14.25 1c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 14.25 12h-3.727c.099 1.041.52 1.872 1.292 2.757A.752.752 0 0 1 11.25 16h-6.5a.75.75 0 0 1-.565-1.243c.772-.885 1.192-1.716 1.292-2.757H1.75A1.75 1.75 0 0 1 0 10.25v-7.5C0 1.784.784 1 1.75 1ZM1.75 2.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25ZM9.018 12H6.982a5.72 5.72 0 0 1-.765 2.5h3.566a5.72 5.72 0 0 1-.765-2.5Z"></path> </svg> </template> <div class="position-relative"> <ul role="listbox" class="ActionListWrap QueryBuilder-ListWrap" aria-label="Suggestions" data-action=" combobox-commit:query-builder#comboboxCommit mousedown:query-builder#resultsMousedown " data-target="query-builder.resultsList" data-persist-list=false id="query-builder-test-results" ></ul> </div> <div class="FormControl-inlineValidation" id="validation-da2fad05-24ff-4ab1-a0c8-8f48b1f52ab1" hidden="hidden"> <span class="FormControl-inlineValidation--visual"> <svg aria-hidden="true" height="12" viewBox="0 0 12 12" version="1.1" width="12" data-view-component="true" class="octicon octicon-alert-fill"> <path d="M4.855.708c.5-.896 1.79-.896 2.29 0l4.675 8.351a1.312 1.312 0 0 1-1.146 1.954H1.33A1.313 1.313 0 0 1 .183 9.058ZM7 7V3H5v4Zm-1 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"></path> </svg> </span> <span></span> </div> </div> <div data-target="query-builder.screenReaderFeedback" aria-live="polite" aria-atomic="true" class="sr-only"></div> </query-builder></form> <div class="d-flex flex-row color-fg-muted px-3 text-small color-bg-default search-feedback-prompt"> <a target="_blank" href="https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax" data-view-component="true" class="Link color-fg-accent text-normal ml-2">Search syntax tips</a> <div class="d-flex flex-1"></div> </div> </div> </div> </div> </modal-dialog></div> </div> <div data-action="click:qbsearch-input#retract" class="dark-backdrop position-fixed" hidden data-target="qbsearch-input.darkBackdrop"></div> <div class="color-fg-default"> <dialog-helper> <dialog data-target="qbsearch-input.feedbackDialog" data-action="close:qbsearch-input#handleDialogClose cancel:qbsearch-input#handleDialogClose" id="feedback-dialog" aria-modal="true" aria-labelledby="feedback-dialog-title" aria-describedby="feedback-dialog-description" data-view-component="true" class="Overlay Overlay-whenNarrow Overlay--size-medium Overlay--motion-scaleFade Overlay--disableScroll"> <div data-view-component="true" class="Overlay-header"> <div class="Overlay-headerContentWrap"> <div class="Overlay-titleWrap"> <h1 class="Overlay-title " id="feedback-dialog-title"> Provide feedback </h1> </div> <div class="Overlay-actionWrap"> <button data-close-dialog-id="feedback-dialog" aria-label="Close" type="button" data-view-component="true" class="close-button Overlay-closeButton"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg></button> </div> </div> </div> <scrollable-region data-labelled-by="feedback-dialog-title"> <div data-view-component="true" class="Overlay-body"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="code-search-feedback-form" data-turbo="false" action="/search/feedback" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="qoWTslA8yHycOd82mw9sJkkjQdkeyny88lD958lZWCyKmF0LYXuUCasgM1HwP7MUh/YYAICGspW1nQyjaRsNoQ==" /> <p>We read every piece of feedback, and take your input very seriously.</p> <textarea name="feedback" class="form-control width-full mb-2" style="height: 120px" id="feedback"></textarea> <input name="include_email" id="include_email" aria-label="Include my email address so I can be contacted" class="form-control mr-2" type="checkbox"> <label for="include_email" style="font-weight: normal">Include my email address so I can be contacted</label> </form></div> </scrollable-region> <div data-view-component="true" class="Overlay-footer Overlay-footer--alignEnd"> <button data-close-dialog-id="feedback-dialog" type="button" data-view-component="true" class="btn"> Cancel </button> <button form="code-search-feedback-form" data-action="click:qbsearch-input#submitFeedback" type="submit" data-view-component="true" class="btn-primary btn"> Submit feedback </button> </div> </dialog></dialog-helper> <custom-scopes data-target="qbsearch-input.customScopesManager"> <dialog-helper> <dialog data-target="custom-scopes.customScopesModalDialog" data-action="close:qbsearch-input#handleDialogClose cancel:qbsearch-input#handleDialogClose" id="custom-scopes-dialog" aria-modal="true" aria-labelledby="custom-scopes-dialog-title" aria-describedby="custom-scopes-dialog-description" data-view-component="true" class="Overlay Overlay-whenNarrow Overlay--size-medium Overlay--motion-scaleFade Overlay--disableScroll"> <div data-view-component="true" class="Overlay-header Overlay-header--divided"> <div class="Overlay-headerContentWrap"> <div class="Overlay-titleWrap"> <h1 class="Overlay-title " id="custom-scopes-dialog-title"> Saved searches </h1> <h2 id="custom-scopes-dialog-description" class="Overlay-description">Use saved searches to filter your results more quickly</h2> </div> <div class="Overlay-actionWrap"> <button data-close-dialog-id="custom-scopes-dialog" aria-label="Close" type="button" data-view-component="true" class="close-button Overlay-closeButton"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg></button> </div> </div> </div> <scrollable-region data-labelled-by="custom-scopes-dialog-title"> <div data-view-component="true" class="Overlay-body"> <div data-target="custom-scopes.customScopesModalDialogFlash"></div> <div hidden class="create-custom-scope-form" data-target="custom-scopes.createCustomScopeForm"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="custom-scopes-dialog-form" data-turbo="false" action="/search/custom_scopes" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="W/MmuXUawYd/rHMGuNu8uPddg6fe2IUEs3cxBRD19dOuojOtwYiVhB1MRQvFoqu+dPPEhLU+8a+dftTNVRAEow==" /> <div data-target="custom-scopes.customScopesModalDialogFlash"></div> <input type="hidden" id="custom_scope_id" name="custom_scope_id" data-target="custom-scopes.customScopesIdField"> <div class="form-group"> <label for="custom_scope_name">Name</label> <auto-check src="/search/custom_scopes/check_name" required only-validate-on-blur="false"> <input type="text" name="custom_scope_name" id="custom_scope_name" data-target="custom-scopes.customScopesNameField" class="form-control" autocomplete="off" placeholder="github-ruby" required maxlength="50"> <input type="hidden" data-csrf="true" value="BuFdoMuuxdbFcSL//oO/BTNTTNtmWspYmIxX3L/BrVi2GasaLay48i5ROqpSI8c0aiSd1XNt5uLMW5HYhYzC9w==" /> </auto-check> </div> <div class="form-group"> <label for="custom_scope_query">Query</label> <input type="text" name="custom_scope_query" id="custom_scope_query" data-target="custom-scopes.customScopesQueryField" class="form-control" autocomplete="off" placeholder="(repo:mona/a OR repo:mona/b) AND lang:python" required maxlength="500"> </div> <p class="text-small color-fg-muted"> To see all available qualifiers, see our <a class="Link--inTextBlock" href="https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax">documentation</a>. </p> </form> </div> <div data-target="custom-scopes.manageCustomScopesForm"> <div data-target="custom-scopes.list"></div> </div> </div> </scrollable-region> <div data-view-component="true" class="Overlay-footer Overlay-footer--alignEnd Overlay-footer--divided"> <button data-action="click:custom-scopes#customScopesCancel" type="button" data-view-component="true" class="btn"> Cancel </button> <button form="custom-scopes-dialog-form" data-action="click:custom-scopes#customScopesSubmit" data-target="custom-scopes.customScopesSubmitButton" type="submit" data-view-component="true" class="btn-primary btn"> Create saved search </button> </div> </dialog></dialog-helper> </custom-scopes> </div> </qbsearch-input> <div class="position-relative HeaderMenu-link-wrap d-lg-inline-block"> <a href="/login?return_to=https%3A%2F%2Fgithub.com%2FFighterLYL%2FGraphNeuralNetwork%2Fcommit%2Fcf0350e449688c82e3d9b111a7bb7814f75668db" class="HeaderMenu-link HeaderMenu-link--sign-in HeaderMenu-button flex-shrink-0 no-underline d-none d-lg-inline-flex border border-lg-0 rounded rounded-lg-0 px-2 py-1" style="margin-left: 12px;" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://github.com/FighterLYL/GraphNeuralNetwork/commit/cf0350e449688c82e3d9b111a7bb7814f75668db","user_id":null}}" data-hydro-click-hmac="e84887be408e5bdefdaf9dcfce90c7a8b7f7636fc64f5c56e1511b4792b8aa9c" data-analytics-event="{"category":"Marketing nav","action":"click to go to homepage","label":"ref_page:Marketing;ref_cta:Sign in;ref_loc:Header"}" > Sign in </a> </div> <a href="/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fcommit%2Fshow&source=header-repo&source_repo=FighterLYL%2FGraphNeuralNetwork" class="HeaderMenu-link HeaderMenu-link--sign-up HeaderMenu-button flex-shrink-0 d-flex d-lg-inline-flex no-underline border color-border-default rounded px-2 py-1" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","originating_url":"https://github.com/FighterLYL/GraphNeuralNetwork/commit/cf0350e449688c82e3d9b111a7bb7814f75668db","user_id":null}}" data-hydro-click-hmac="e84887be408e5bdefdaf9dcfce90c7a8b7f7636fc64f5c56e1511b4792b8aa9c" data-analytics-event="{"category":"Sign up","action":"click to sign up for account","label":"ref_page:/<user-name>/<repo-name>/commit/show;ref_cta:Sign up;ref_loc:header logged out"}" > Sign up </a> <button type="button" class="sr-only js-header-menu-focus-trap d-block d-lg-none">Reseting focus</button> </div> </div> </div> </div> </header> <div hidden="hidden" data-view-component="true" class="js-stale-session-flash stale-session-flash flash flash-warn flash-full"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <button id="icon-button-278e6724-dafc-45ed-865e-b70d416a281b" aria-labelledby="tooltip-24b55dd6-0d6a-4b89-bb57-de8dc562aa1c" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button><tool-tip id="tooltip-24b55dd6-0d6a-4b89-bb57-de8dc562aa1c" for="icon-button-278e6724-dafc-45ed-865e-b70d416a281b" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip> </div> </div> <div id="start-of-content" class="show-on-focus"></div> <div id="js-flash-container" class="flash-container" data-turbo-replace> <template class="js-flash-template"> <div class="flash flash-full {{ className }}"> <div > <button autofocus class="flash-close js-flash-close" type="button" aria-label="Dismiss this message"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> <div aria-atomic="true" role="alert" class="js-flash-alert"> <div>{{ message }}</div> </div> </div> </div> </template> </div> <div class="application-main " data-commit-hovercards-enabled data-discussion-hovercards-enabled data-issue-and-pr-hovercards-enabled data-project-hovercards-enabled > <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class=""> <main id="js-repo-pjax-container" > <div id="repository-container-header" class="pt-3 hide-full-screen" style="background-color: var(--page-header-bgColor, var(--color-page-header-bg));" data-turbo-replace> <div class="d-flex flex-nowrap flex-justify-end mb-3 px-3 px-lg-5" style="gap: 1rem;"> <div class="flex-auto min-width-0 width-fit"> <div class=" d-flex flex-wrap flex-items-center wb-break-word f3 text-normal"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2"> <path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path> </svg> <span class="author flex-self-stretch" itemprop="author"> <a class="url fn" rel="author" data-hovercard-type="user" data-hovercard-url="/users/FighterLYL/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/FighterLYL"> FighterLYL </a> </span> <span class="mx-1 flex-self-stretch color-fg-muted">/</span> <strong itemprop="name" class="mr-2 flex-self-stretch"> <a data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" href="/FighterLYL/GraphNeuralNetwork">GraphNeuralNetwork</a> </strong> <span></span><span class="Label Label--secondary v-align-middle mr-1">Public</span> </div> </div> <div id="repository-details-container" class="flex-shrink-0" data-turbo-replace style="max-width: 70%;"> <ul class="pagehead-actions flex-shrink-0 d-none d-md-inline" style="padding: 2px 0;"> <li> <a href="/login?return_to=%2FFighterLYL%2FGraphNeuralNetwork" rel="nofollow" id="repository-details-watch-button" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"notification subscription menu watch","repository_id":null,"auth_type":"LOG_IN","originating_url":"https://github.com/FighterLYL/GraphNeuralNetwork/commit/cf0350e449688c82e3d9b111a7bb7814f75668db","user_id":null}}" data-hydro-click-hmac="b4fe5d42995033032eed172cc7883af9f2a47fd0b8f2d538a2b830edf0b67151" aria-label="You must be signed in to change notification settings" data-view-component="true" class="btn-sm btn"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bell mr-2"> <path d="M8 16a2 2 0 0 0 1.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 0 0 8 16ZM3 5a5 5 0 0 1 10 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.519 1.519 0 0 1 13.482 13H2.518a1.516 1.516 0 0 1-1.263-2.36l1.703-2.554A.255.255 0 0 0 3 7.947Zm5-3.5A3.5 3.5 0 0 0 4.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.017.017 0 0 0-.003.01l.001.006c0 .002.002.004.004.006l.006.004.007.001h10.964l.007-.001.006-.004.004-.006.001-.007a.017.017 0 0 0-.003-.01l-1.703-2.554a1.745 1.745 0 0 1-.294-.97V5A3.5 3.5 0 0 0 8 1.5Z"></path> </svg>Notifications </a> <tool-tip id="tooltip-5e3d4b95-b867-4f88-bb10-57a08e1f6b61" for="repository-details-watch-button" popover="manual" data-direction="s" data-type="description" data-view-component="true" class="sr-only position-absolute">You must be signed in to change notification settings</tool-tip> </li> <li> <a icon="repo-forked" id="fork-button" href="/login?return_to=%2FFighterLYL%2FGraphNeuralNetwork" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"repo details fork button","repository_id":216493530,"auth_type":"LOG_IN","originating_url":"https://github.com/FighterLYL/GraphNeuralNetwork/commit/cf0350e449688c82e3d9b111a7bb7814f75668db","user_id":null}}" data-hydro-click-hmac="9cc9f3964100e462182da85a6bfb202864bbee334292ef6a66f15009d38aad84" data-view-component="true" class="btn-sm btn"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked mr-2"> <path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path> </svg>Fork <span id="repo-network-counter" data-pjax-replace="true" data-turbo-replace="true" title="467" data-view-component="true" class="Counter">467</span> </a> </li> <li> <div data-view-component="true" class="BtnGroup d-flex"> <a href="/login?return_to=%2FFighterLYL%2FGraphNeuralNetwork" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"star button","repository_id":216493530,"auth_type":"LOG_IN","originating_url":"https://github.com/FighterLYL/GraphNeuralNetwork/commit/cf0350e449688c82e3d9b111a7bb7814f75668db","user_id":null}}" data-hydro-click-hmac="c5c590db1b8c35c4c22264ed7d939d743a4975f81d80b8198f11effe5584ae84" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2"> <path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path> </svg><span data-view-component="true" class="d-inline"> Star </span> <span id="repo-stars-counter-star" aria-label="1802 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="1,802" data-view-component="true" class="Counter js-social-count">1.8k</span> </a></div> </li> </ul> </div> </div> <div id="responsive-meta-container" data-turbo-replace> </div> <nav data-pjax="#js-repo-pjax-container" aria-label="Repository" data-view-component="true" class="js-repo-nav js-sidenav-container-pjax js-responsive-underlinenav overflow-hidden UnderlineNav px-3 px-md-4 px-lg-5"> <ul data-view-component="true" class="UnderlineNav-body list-style-none"> <li data-view-component="true" class="d-inline-flex"> <a id="code-tab" href="/FighterLYL/GraphNeuralNetwork" data-tab-item="i0code-tab" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages repo_deployments repo_attestations /FighterLYL/GraphNeuralNetwork" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g c" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Code","target":"UNDERLINE_NAV.TAB"}" aria-current="page" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item selected"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code UnderlineNav-octicon d-none d-sm-inline"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> <span data-content="Code">Code</span> <span id="code-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="issues-tab" href="/FighterLYL/GraphNeuralNetwork/issues" data-tab-item="i1issues-tab" data-selected-links="repo_issues repo_labels repo_milestones /FighterLYL/GraphNeuralNetwork/issues" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g i" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Issues","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened UnderlineNav-octicon d-none d-sm-inline"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> <span data-content="Issues">Issues</span> <span id="issues-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="5" data-view-component="true" class="Counter">5</span> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="pull-requests-tab" href="/FighterLYL/GraphNeuralNetwork/pulls" data-tab-item="i2pull-requests-tab" data-selected-links="repo_pulls checks /FighterLYL/GraphNeuralNetwork/pulls" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g p" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Pull requests","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request UnderlineNav-octicon d-none d-sm-inline"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> <span data-content="Pull requests">Pull requests</span> <span id="pull-requests-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="1" data-view-component="true" class="Counter">1</span> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="actions-tab" href="/FighterLYL/GraphNeuralNetwork/actions" data-tab-item="i3actions-tab" data-selected-links="repo_actions /FighterLYL/GraphNeuralNetwork/actions" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g a" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Actions","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play UnderlineNav-octicon d-none d-sm-inline"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path> </svg> <span data-content="Actions">Actions</span> <span id="actions-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="projects-tab" href="/FighterLYL/GraphNeuralNetwork/projects" data-tab-item="i4projects-tab" data-selected-links="repo_projects new_repo_project repo_project /FighterLYL/GraphNeuralNetwork/projects" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g b" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Projects","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-table UnderlineNav-octicon d-none d-sm-inline"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25ZM6.5 6.5v8h7.75a.25.25 0 0 0 .25-.25V6.5Zm8-1.5V1.75a.25.25 0 0 0-.25-.25H6.5V5Zm-13 1.5v7.75c0 .138.112.25.25.25H5v-8ZM5 5V1.5H1.75a.25.25 0 0 0-.25.25V5Z"></path> </svg> <span data-content="Projects">Projects</span> <span id="projects-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="0" hidden="hidden" data-view-component="true" class="Counter">0</span> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="security-tab" href="/FighterLYL/GraphNeuralNetwork/security" data-tab-item="i5security-tab" data-selected-links="security overview alerts policy token_scanning code_scanning /FighterLYL/GraphNeuralNetwork/security" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g s" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Security","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-shield UnderlineNav-octicon d-none d-sm-inline"> <path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <span data-content="Security">Security</span> <include-fragment src="/FighterLYL/GraphNeuralNetwork/security/overall-count" accept="text/fragment+html"></include-fragment> </a></li> <li data-view-component="true" class="d-inline-flex"> <a id="insights-tab" href="/FighterLYL/GraphNeuralNetwork/pulse" data-tab-item="i6insights-tab" data-selected-links="repo_graphs repo_contributors dependency_graph dependabot_updates pulse people community /FighterLYL/GraphNeuralNetwork/pulse" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-analytics-event="{"category":"Underline navbar","action":"Click tab","label":"Insights","target":"UNDERLINE_NAV.TAB"}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-graph UnderlineNav-octicon d-none d-sm-inline"> <path d="M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 4.28 9.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.25-3.25a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> <span data-content="Insights">Insights</span> <span id="insights-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span> </a></li> </ul> <div style="visibility:hidden;" data-view-component="true" class="UnderlineNav-actions js-responsive-underlinenav-overflow position-absolute pr-3 pr-md-4 pr-lg-5 right-0"> <action-menu data-select-variant="none" data-view-component="true"> <focus-group direction="vertical" mnemonics retain> <button id="action-menu-8f6747ea-f686-4c7c-bca3-40ac4164b1f0-button" popovertarget="action-menu-8f6747ea-f686-4c7c-bca3-40ac4164b1f0-overlay" aria-controls="action-menu-8f6747ea-f686-4c7c-bca3-40ac4164b1f0-list" aria-haspopup="true" aria-labelledby="tooltip-963bf414-b090-4f16-aaa5-5495d1acd3d9" type="button" data-view-component="true" class="Button Button--iconOnly Button--secondary Button--medium UnderlineNav-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-kebab-horizontal Button-visual"> <path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path> </svg> </button><tool-tip id="tooltip-963bf414-b090-4f16-aaa5-5495d1acd3d9" for="action-menu-8f6747ea-f686-4c7c-bca3-40ac4164b1f0-button" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Additional navigation options</tool-tip> <anchored-position data-target="action-menu.overlay" id="action-menu-8f6747ea-f686-4c7c-bca3-40ac4164b1f0-overlay" anchor="action-menu-8f6747ea-f686-4c7c-bca3-40ac4164b1f0-button" align="start" side="outside-bottom" anchor-offset="normal" popover="auto" data-view-component="true"> <div data-view-component="true" class="Overlay Overlay--size-auto"> <div data-view-component="true" class="Overlay-body Overlay-body--paddingNone"> <action-list> <div data-view-component="true"> <ul aria-labelledby="action-menu-8f6747ea-f686-4c7c-bca3-40ac4164b1f0-button" id="action-menu-8f6747ea-f686-4c7c-bca3-40ac4164b1f0-list" role="menu" data-view-component="true" class="ActionListWrap--inset ActionListWrap"> <li hidden="hidden" data-menu-item="i0code-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-bf8154c8-dd90-4c8d-92f1-d8b971efcb29" href="/FighterLYL/GraphNeuralNetwork" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code"> <path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Code </span> </a> </li> <li hidden="hidden" data-menu-item="i1issues-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-53b54739-ba2a-409d-9b0b-2030bd47312f" href="/FighterLYL/GraphNeuralNetwork/issues" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened"> <path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Issues </span> </a> </li> <li hidden="hidden" data-menu-item="i2pull-requests-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-ccf01bbc-f0b8-44f0-8222-4552f7d820a2" href="/FighterLYL/GraphNeuralNetwork/pulls" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request"> <path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Pull requests </span> </a> </li> <li hidden="hidden" data-menu-item="i3actions-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-ebf8e401-c6ed-4e97-902a-360e679617ce" href="/FighterLYL/GraphNeuralNetwork/actions" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play"> <path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Actions </span> </a> </li> <li hidden="hidden" data-menu-item="i4projects-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-d7745f1c-2294-45be-8f0f-af4decc04473" href="/FighterLYL/GraphNeuralNetwork/projects" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-table"> <path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25ZM6.5 6.5v8h7.75a.25.25 0 0 0 .25-.25V6.5Zm8-1.5V1.75a.25.25 0 0 0-.25-.25H6.5V5Zm-13 1.5v7.75c0 .138.112.25.25.25H5v-8ZM5 5V1.5H1.75a.25.25 0 0 0-.25.25V5Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Projects </span> </a> </li> <li hidden="hidden" data-menu-item="i5security-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-7efb0b39-fc66-489a-99e7-0d78728e4223" href="/FighterLYL/GraphNeuralNetwork/security" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-shield"> <path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Security </span> </a> </li> <li hidden="hidden" data-menu-item="i6insights-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem"> <a tabindex="-1" id="item-1f734f00-8f69-4fb7-8c16-fd5473fb9828" href="/FighterLYL/GraphNeuralNetwork/pulse" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16"> <span class="ActionListItem-visual ActionListItem-visual--leading"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-graph"> <path d="M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 4.28 9.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.25-3.25a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path> </svg> </span> <span data-view-component="true" class="ActionListItem-label"> Insights </span> </a> </li> </ul> </div></action-list> </div> </div></anchored-position> </focus-group> </action-menu></div> </nav> </div> <turbo-frame id="repo-content-turbo-frame" target="_top" data-turbo-action="advance" class=""> <div id="repo-content-pjax-container" class="repository-content " > <react-app app-name="commits" initial-path="/FighterLYL/GraphNeuralNetwork/commit/cf0350e449688c82e3d9b111a7bb7814f75668db" style="display: block; min-height: calc(100vh - 64px);" data-attempted-ssr="true" data-ssr="true" data-lazy="false" data-alternate="false" data-data-router-enabled="false" > <script type="application/json" data-target="react-app.embeddedData">{"payload":{"commit":{"oid":"cf0350e449688c82e3d9b111a7bb7814f75668db","url":"/FighterLYL/GraphNeuralNetwork/commit/cf0350e449688c82e3d9b111a7bb7814f75668db","authoredDate":"2020-12-04T12:08:27.000+08:00","committedDate":"2020-12-04T16:02:14.000+08:00","shortMessage":null,"shortMessageMarkdown":"\u003cdiv\u003e更新chapter9 code,与原作实现保持一致\u003c/div\u003e","shortMessageMarkdownLink":null,"bodyMessageHtml":"","authors":[{"login":"FighterLYL","displayName":"LiYanlin","avatarUrl":"https://avatars.githubusercontent.com/u/13479518?v=4","path":"/FighterLYL","isGitHub":false}],"committerAttribution":false,"committer":{"login":"FighterLYL","displayName":"LiYanlin","avatarUrl":"https://avatars.githubusercontent.com/u/13479518?v=4","path":"/FighterLYL","isGitHub":false},"parents":["125acbaddd1bc69c5bd46dc0f9445ec7865edee5"],"globalRelayId":"MDY6Q29tbWl0MjE2NDkzNTMwOmNmMDM1MGU0NDk2ODhjODJlM2Q5YjExMWE3YmI3ODE0Zjc1NjY4ZGI=","sha1":"125acbaddd1bc69c5bd46dc0f9445ec7865edee5","sha2":"cf0350e449688c82e3d9b111a7bb7814f75668db"},"currentUser":null,"repo":{"id":216493530,"defaultBranch":"master","name":"GraphNeuralNetwork","ownerLogin":"FighterLYL","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2019-10-21T06:28:51.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/13479518?v=4","public":true,"private":false,"isOrgOwned":false},"diffEntryData":[{"diffLines":[{"stylingDirective":null,"type":"HUNK","blobLineNumber":5,"text":"@@ -6,8 +6,25 @@","html":"@@ -6,8 +6,25 @@","displayNoNewLineWarning":false,"position":0,"left":5,"right":5},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":6,"text":" import torch.nn.init as init","html":" \u003cspan class=pl-k\u003eimport\u003c/span\u003e \u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-s1\u003einit\u003c/span\u003e \u003cspan class=pl-k\u003eas\u003c/span\u003e \u003cspan class=pl-s1\u003einit\u003c/span\u003e","displayNoNewLineWarning":false,"position":1,"left":6,"right":6},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":7,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":2,"left":7,"right":7},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":8,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":3,"left":8,"right":8},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":9,"text":"+class InputDropout(nn.Module):","html":"+\u003cspan class=pl-k\u003eclass\u003c/span\u003e \u003cspan class=pl-v\u003eInputDropout\u003c/span\u003e(\u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eModule\u003c/span\u003e):","displayNoNewLineWarning":false,"position":4,"left":8,"right":9},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":10,"text":"+ def __init__(self, keep_prob):","html":"+ \u003cspan class=pl-k\u003edef\u003c/span\u003e \u003cspan class=pl-en\u003e__init__\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e, \u003cspan class=pl-s1\u003ekeep_prob\u003c/span\u003e):","displayNoNewLineWarning":false,"position":5,"left":8,"right":10},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":11,"text":"+ super(InputDropout, self).__init__()","html":"+ \u003cspan class=pl-en\u003esuper\u003c/span\u003e(\u003cspan class=pl-v\u003eInputDropout\u003c/span\u003e, \u003cspan class=pl-s1\u003eself\u003c/span\u003e).\u003cspan class=pl-c1\u003e__init__\u003c/span\u003e()","displayNoNewLineWarning":false,"position":6,"left":8,"right":11},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":12,"text":"+ self.p = keep_prob","html":"+ \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003ep\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003ekeep_prob\u003c/span\u003e","displayNoNewLineWarning":false,"position":7,"left":8,"right":12},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":13,"text":"+","html":"+","displayNoNewLineWarning":false,"position":8,"left":8,"right":13},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":14,"text":"+ def forward(self, inputs):","html":"+ \u003cspan class=pl-k\u003edef\u003c/span\u003e \u003cspan class=pl-en\u003eforward\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e, \u003cspan class=pl-s1\u003einputs\u003c/span\u003e):","displayNoNewLineWarning":false,"position":9,"left":8,"right":14},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":15,"text":"+ x = inputs.clone()","html":"+ \u003cspan class=pl-s1\u003ex\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003einputs\u003c/span\u003e.\u003cspan class=pl-c1\u003eclone\u003c/span\u003e()","displayNoNewLineWarning":false,"position":10,"left":8,"right":15},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":16,"text":"+ if self.training:","html":"+ \u003cspan class=pl-k\u003eif\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003etraining\u003c/span\u003e:","displayNoNewLineWarning":false,"position":11,"left":8,"right":16},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":17,"text":"+ random_tensor = self.p + torch.rand((inputs.size(0),))","html":"+ \u003cspan class=pl-s1\u003erandom_tensor\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003ep\u003c/span\u003e \u003cspan class=pl-c1\u003e+\u003c/span\u003e \u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003erand\u003c/span\u003e((\u003cspan class=pl-s1\u003einputs\u003c/span\u003e.\u003cspan class=pl-c1\u003esize\u003c/span\u003e(\u003cspan class=pl-c1\u003e0\u003c/span\u003e),))","displayNoNewLineWarning":false,"position":12,"left":8,"right":17},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":18,"text":"+ dropout_mask = torch.floor(random_tensor).bool()","html":"+ \u003cspan class=pl-s1\u003edropout_mask\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003efloor\u003c/span\u003e(\u003cspan class=pl-s1\u003erandom_tensor\u003c/span\u003e).\u003cspan class=pl-c1\u003ebool\u003c/span\u003e()","displayNoNewLineWarning":false,"position":13,"left":8,"right":18},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":19,"text":"+ x[~dropout_mask] = 0.","html":"+ \u003cspan class=pl-s1\u003ex\u003c/span\u003e[\u003cspan class=pl-c1\u003e~\u003c/span\u003e\u003cspan class=pl-s1\u003edropout_mask\u003c/span\u003e] \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-c1\u003e0.\u003c/span\u003e","displayNoNewLineWarning":false,"position":14,"left":8,"right":19},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":20,"text":"+ return x / self.p","html":"+ \u003cspan class=pl-k\u003ereturn\u003c/span\u003e \u003cspan class=pl-s1\u003ex\u003c/span\u003e \u003cspan class=pl-c1\u003e/\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003ep\u003c/span\u003e","displayNoNewLineWarning":false,"position":15,"left":8,"right":20},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":21,"text":"+ else:","html":"+ \u003cspan class=pl-k\u003eelse\u003c/span\u003e:","displayNoNewLineWarning":false,"position":16,"left":8,"right":21},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":22,"text":"+ return x","html":"+ \u003cspan class=pl-k\u003ereturn\u003c/span\u003e \u003cspan class=pl-s1\u003ex\u003c/span\u003e","displayNoNewLineWarning":false,"position":17,"left":8,"right":22},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":23,"text":"+","html":"+","displayNoNewLineWarning":false,"position":18,"left":8,"right":23},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":24,"text":"+","html":"+","displayNoNewLineWarning":false,"position":19,"left":8,"right":24},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":25,"text":" class StackGCNEncoder(nn.Module):","html":" \u003cspan class=pl-k\u003eclass\u003c/span\u003e \u003cspan class=pl-v\u003eStackGCNEncoder\u003c/span\u003e(\u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eModule\u003c/span\u003e):","displayNoNewLineWarning":false,"position":20,"left":9,"right":25},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":26,"text":" def __init__(self, input_dim, output_dim, num_support,","html":" \u003cspan class=pl-k\u003edef\u003c/span\u003e \u003cspan class=pl-en\u003e__init__\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e, \u003cspan class=pl-s1\u003einput_dim\u003c/span\u003e, \u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e, \u003cspan class=pl-s1\u003enum_support\u003c/span\u003e,","displayNoNewLineWarning":false,"position":21,"left":10,"right":26},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":27,"text":"+ dropout=0.,","html":"+ \u003cspan class=pl-s1\u003edropout\u003c/span\u003e\u003cspan class=pl-c1\u003e=\u003c/span\u003e\u003cspan class=pl-c1\u003e0.\u003c/span\u003e,","displayNoNewLineWarning":false,"position":22,"left":10,"right":27},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":28,"text":" use_bias=False, activation=F.relu):","html":" \u003cspan class=pl-s1\u003euse_bias\u003c/span\u003e\u003cspan class=pl-c1\u003e=\u003c/span\u003e\u003cspan class=pl-c1\u003eFalse\u003c/span\u003e, \u003cspan class=pl-s1\u003eactivation\u003c/span\u003e\u003cspan class=pl-c1\u003e=\u003c/span\u003e\u003cspan class=pl-c1\u003eF\u003c/span\u003e.\u003cspan class=pl-c1\u003erelu\u003c/span\u003e):","displayNoNewLineWarning":false,"position":23,"left":11,"right":28},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":29,"text":" \"\"\"对得到的每类评分使用级联的方式进行聚合","html":" \u003cspan class=pl-s\u003e\u0026quot;\u0026quot;\u0026quot;对得到的每类评分使用级联的方式进行聚合\u003c/span\u003e","displayNoNewLineWarning":false,"position":24,"left":12,"right":29},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":30,"text":" ","html":" \u003cspan class=pl-s\u003e \u003c/span\u003e","displayNoNewLineWarning":false,"position":25,"left":13,"right":30},{"stylingDirective":null,"type":"HUNK","blobLineNumber":39,"text":"@@ -23,20 +40,21 @@ def __init__(self, input_dim, output_dim, num_support,","html":"@@ -23,20 +40,21 @@ def __init__(self, input_dim, output_dim, num_support,","displayNoNewLineWarning":false,"position":26,"left":22,"right":39},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":40,"text":" self.input_dim = input_dim","html":" \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003einput_dim\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003einput_dim\u003c/span\u003e","displayNoNewLineWarning":false,"position":27,"left":23,"right":40},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":41,"text":" self.output_dim = output_dim","html":" \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eoutput_dim\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e","displayNoNewLineWarning":false,"position":28,"left":24,"right":41},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":42,"text":" self.num_support = num_support","html":" \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003enum_support\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enum_support\u003c/span\u003e","displayNoNewLineWarning":false,"position":29,"left":25,"right":42},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":43,"text":"+ self.dropout = dropout","html":"+ \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003edropout\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003edropout\u003c/span\u003e","displayNoNewLineWarning":false,"position":30,"left":25,"right":43},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":44,"text":" self.use_bias = use_bias","html":" \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003euse_bias\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003euse_bias\u003c/span\u003e","displayNoNewLineWarning":false,"position":31,"left":26,"right":44},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":45,"text":" self.activation = activation","html":" \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eactivation\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eactivation\u003c/span\u003e","displayNoNewLineWarning":false,"position":32,"left":27,"right":45},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":46,"text":" assert output_dim % num_support == 0","html":" \u003cspan class=pl-k\u003eassert\u003c/span\u003e \u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e \u003cspan class=pl-c1\u003e%\u003c/span\u003e \u003cspan class=pl-s1\u003enum_support\u003c/span\u003e \u003cspan class=pl-c1\u003e==\u003c/span\u003e \u003cspan class=pl-c1\u003e0\u003c/span\u003e","displayNoNewLineWarning":false,"position":33,"left":28,"right":46},{"stylingDirective":null,"type":"DELETION","blobLineNumber":29,"text":"- self.weight = nn.Parameter(torch.Tensor(num_support, ","html":"- \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweight\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eParameter\u003c/span\u003e(\u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003eTensor\u003c/span\u003e(\u003cspan class=pl-s1\u003enum_support\u003c/span\u003e, ","displayNoNewLineWarning":false,"position":34,"left":29,"right":46},{"stylingDirective":null,"type":"DELETION","blobLineNumber":30,"text":"- input_dim, output_dim // num_support))","html":"- \u003cspan class=pl-s1\u003einput_dim\u003c/span\u003e, \u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e \u003cspan class=pl-c1\u003e//\u003c/span\u003e \u003cspan class=pl-s1\u003enum_support\u003c/span\u003e))","displayNoNewLineWarning":false,"position":35,"left":30,"right":46},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":47,"text":"+ self.weight = nn.Parameter(torch.Tensor(input_dim, output_dim))","html":"+ \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweight\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eParameter\u003c/span\u003e(\u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003eTensor\u003c/span\u003e(\u003cspan class=pl-s1\u003einput_dim\u003c/span\u003e, \u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e))","displayNoNewLineWarning":false,"position":36,"left":30,"right":47},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":48,"text":" if self.use_bias:","html":" \u003cspan class=pl-k\u003eif\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003euse_bias\u003c/span\u003e:","displayNoNewLineWarning":false,"position":37,"left":31,"right":48},{"stylingDirective":null,"type":"DELETION","blobLineNumber":32,"text":"- self.bias = nn.Parameter(torch.Tensor(output_dim, ))","html":"- \u003cspan class=\"pl-s1\"\u003eself\u003c/span\u003e.\u003cspan class=\"pl-c1 x x-first x-last\"\u003ebias\u003c/span\u003e \u003cspan class=\"pl-c1\"\u003e=\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003enn\u003c/span\u003e.\u003cspan class=\"pl-c1\"\u003eParameter\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003etorch\u003c/span\u003e.\u003cspan class=\"pl-c1\"\u003eTensor\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003eoutput_dim\u003c/span\u003e, ))","displayNoNewLineWarning":false,"position":38,"left":32,"right":48},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":49,"text":"+ self.bias_user = nn.Parameter(torch.Tensor(output_dim, ))","html":"+ \u003cspan class=\"pl-s1\"\u003eself\u003c/span\u003e.\u003cspan class=\"pl-c1 x x-first x-last\"\u003ebias_user\u003c/span\u003e \u003cspan class=\"pl-c1\"\u003e=\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003enn\u003c/span\u003e.\u003cspan class=\"pl-c1\"\u003eParameter\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003etorch\u003c/span\u003e.\u003cspan class=\"pl-c1\"\u003eTensor\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003eoutput_dim\u003c/span\u003e, ))","displayNoNewLineWarning":false,"position":39,"left":32,"right":49},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":50,"text":" self.bias_item = nn.Parameter(torch.Tensor(output_dim, ))","html":" \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003ebias_item\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eParameter\u003c/span\u003e(\u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003eTensor\u003c/span\u003e(\u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e, ))","displayNoNewLineWarning":false,"position":40,"left":33,"right":50},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":51,"text":"+ self.dropout = InputDropout(1 - dropout)","html":"+ \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003edropout\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-en\u003eInputDropout\u003c/span\u003e(\u003cspan class=pl-c1\u003e1\u003c/span\u003e \u003cspan class=pl-c1\u003e-\u003c/span\u003e \u003cspan class=pl-s1\u003edropout\u003c/span\u003e)","displayNoNewLineWarning":false,"position":41,"left":33,"right":51},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":52,"text":" self.reset_parameters()","html":" \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003ereset_parameters\u003c/span\u003e()","displayNoNewLineWarning":false,"position":42,"left":34,"right":52},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":53,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":43,"left":35,"right":53},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":54,"text":" def reset_parameters(self):","html":" \u003cspan class=pl-k\u003edef\u003c/span\u003e \u003cspan class=pl-en\u003ereset_parameters\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e):","displayNoNewLineWarning":false,"position":44,"left":36,"right":54},{"stylingDirective":null,"type":"DELETION","blobLineNumber":37,"text":"- init.kaiming_uniform_(self.weight)","html":"- \u003cspan class=\"pl-s1\"\u003einit\u003c/span\u003e.\u003cspan class=\"pl-c1 x x-first x-last\"\u003ekaiming_uniform_\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003eself\u003c/span\u003e.\u003cspan class=\"pl-c1\"\u003eweight\u003c/span\u003e)","displayNoNewLineWarning":false,"position":45,"left":37,"right":54},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":55,"text":"+ init.xavier_uniform_(self.weight)","html":"+ \u003cspan class=\"pl-s1\"\u003einit\u003c/span\u003e.\u003cspan class=\"pl-c1 x x-first x-last\"\u003exavier_uniform_\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003eself\u003c/span\u003e.\u003cspan class=\"pl-c1\"\u003eweight\u003c/span\u003e)","displayNoNewLineWarning":false,"position":46,"left":37,"right":55},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":56,"text":" if self.use_bias:","html":" \u003cspan class=pl-k\u003eif\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003euse_bias\u003c/span\u003e:","displayNoNewLineWarning":false,"position":47,"left":38,"right":56},{"stylingDirective":null,"type":"DELETION","blobLineNumber":39,"text":"- init.zeros_(self.bias)","html":"- \u003cspan class=\"pl-s1\"\u003einit\u003c/span\u003e.\u003cspan class=\"pl-c1\"\u003ezeros_\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003eself\u003c/span\u003e.\u003cspan class=\"pl-c1 x x-first x-last\"\u003ebias\u003c/span\u003e)","displayNoNewLineWarning":false,"position":48,"left":39,"right":56},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":57,"text":"+ init.zeros_(self.bias_user)","html":"+ \u003cspan class=\"pl-s1\"\u003einit\u003c/span\u003e.\u003cspan class=\"pl-c1\"\u003ezeros_\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003eself\u003c/span\u003e.\u003cspan class=\"pl-c1 x x-first x-last\"\u003ebias_user\u003c/span\u003e)","displayNoNewLineWarning":false,"position":49,"left":39,"right":57},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":58,"text":" init.zeros_(self.bias_item)","html":" \u003cspan class=pl-s1\u003einit\u003c/span\u003e.\u003cspan class=pl-c1\u003ezeros_\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003ebias_item\u003c/span\u003e)","displayNoNewLineWarning":false,"position":50,"left":40,"right":58},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":59,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":51,"left":41,"right":59},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":60,"text":" def forward(self, user_supports, item_supports, user_inputs, item_inputs):","html":" \u003cspan class=pl-k\u003edef\u003c/span\u003e \u003cspan class=pl-en\u003eforward\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e, \u003cspan class=pl-s1\u003euser_supports\u003c/span\u003e, \u003cspan class=pl-s1\u003eitem_supports\u003c/span\u003e, \u003cspan class=pl-s1\u003euser_inputs\u003c/span\u003e, \u003cspan class=pl-s1\u003eitem_inputs\u003c/span\u003e):","displayNoNewLineWarning":false,"position":52,"left":42,"right":60},{"stylingDirective":null,"type":"HUNK","blobLineNumber":72,"text":"@@ -55,11 +73,15 @@ def forward(self, user_supports, item_supports, user_inputs, item_inputs):","html":"@@ -55,11 +73,15 @@ def forward(self, user_supports, item_supports, user_inputs, item_inputs):","displayNoNewLineWarning":false,"position":53,"left":54,"right":72},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":73,"text":" [torch.Tensor]: 商品的隐层特征","html":" \u003cspan class=pl-s\u003e [torch.Tensor]: 商品的隐层特征\u003c/span\u003e","displayNoNewLineWarning":false,"position":54,"left":55,"right":73},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":74,"text":" \"\"\"","html":" \u003cspan class=pl-s\u003e \u0026quot;\u0026quot;\u0026quot;\u003c/span\u003e","displayNoNewLineWarning":false,"position":55,"left":56,"right":74},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":75,"text":" assert len(user_supports) == len(item_supports) == self.num_support","html":" \u003cspan class=pl-k\u003eassert\u003c/span\u003e \u003cspan class=pl-en\u003elen\u003c/span\u003e(\u003cspan class=pl-s1\u003euser_supports\u003c/span\u003e) \u003cspan class=pl-c1\u003e==\u003c/span\u003e \u003cspan class=pl-en\u003elen\u003c/span\u003e(\u003cspan class=pl-s1\u003eitem_supports\u003c/span\u003e) \u003cspan class=pl-c1\u003e==\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003enum_support\u003c/span\u003e","displayNoNewLineWarning":false,"position":56,"left":57,"right":75},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":76,"text":"+ user_inputs = self.dropout(user_inputs)","html":"+ \u003cspan class=pl-s1\u003euser_inputs\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003edropout\u003c/span\u003e(\u003cspan class=pl-s1\u003euser_inputs\u003c/span\u003e)","displayNoNewLineWarning":false,"position":57,"left":57,"right":76},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":77,"text":"+ item_inputs = self.dropout(item_inputs)","html":"+ \u003cspan class=pl-s1\u003eitem_inputs\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003edropout\u003c/span\u003e(\u003cspan class=pl-s1\u003eitem_inputs\u003c/span\u003e)","displayNoNewLineWarning":false,"position":58,"left":57,"right":77},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":78,"text":"+","html":"+","displayNoNewLineWarning":false,"position":59,"left":57,"right":78},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":79,"text":" user_hidden = []","html":" \u003cspan class=pl-s1\u003euser_hidden\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e []","displayNoNewLineWarning":false,"position":60,"left":58,"right":79},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":80,"text":" item_hidden = []","html":" \u003cspan class=pl-s1\u003eitem_hidden\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e []","displayNoNewLineWarning":false,"position":61,"left":59,"right":80},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":81,"text":"+ weights = torch.split(self.weight, self.output_dim//self.num_support, dim=1)","html":"+ \u003cspan class=pl-s1\u003eweights\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003esplit\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweight\u003c/span\u003e, \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eoutput_dim\u003c/span\u003e\u003cspan class=pl-c1\u003e//\u003c/span\u003e\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003enum_support\u003c/span\u003e, \u003cspan class=pl-s1\u003edim\u003c/span\u003e\u003cspan class=pl-c1\u003e=\u003c/span\u003e\u003cspan class=pl-c1\u003e1\u003c/span\u003e)","displayNoNewLineWarning":false,"position":62,"left":59,"right":81},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":82,"text":" for i in range(self.num_support):","html":" \u003cspan class=pl-k\u003efor\u003c/span\u003e \u003cspan class=pl-s1\u003ei\u003c/span\u003e \u003cspan class=pl-c1\u003ein\u003c/span\u003e \u003cspan class=pl-en\u003erange\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003enum_support\u003c/span\u003e):","displayNoNewLineWarning":false,"position":63,"left":60,"right":82},{"stylingDirective":null,"type":"DELETION","blobLineNumber":61,"text":"- tmp_u = torch.matmul(user_inputs, self.weight[i])","html":"- \u003cspan class=\"pl-s1\"\u003etmp_u\u003c/span\u003e \u003cspan class=\"pl-c1\"\u003e=\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003etorch\u003c/span\u003e.\u003cspan class=\"pl-c1\"\u003ematmul\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003euser_inputs\u003c/span\u003e, \u003cspan class=\"pl-s1 x x-first\"\u003eself\u003c/span\u003e\u003cspan class=\"x\"\u003e.\u003c/span\u003e\u003cspan class=\"pl-c1 x x-last\"\u003eweight\u003c/span\u003e[\u003cspan class=\"pl-s1\"\u003ei\u003c/span\u003e])","displayNoNewLineWarning":false,"position":64,"left":61,"right":82},{"stylingDirective":null,"type":"DELETION","blobLineNumber":62,"text":"- tmp_v = torch.matmul(item_inputs, self.weight[i])","html":"- \u003cspan class=\"pl-s1\"\u003etmp_v\u003c/span\u003e \u003cspan class=\"pl-c1\"\u003e=\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003etorch\u003c/span\u003e.\u003cspan class=\"pl-c1\"\u003ematmul\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003eitem_inputs\u003c/span\u003e, \u003cspan class=\"pl-s1 x x-first\"\u003eself\u003c/span\u003e\u003cspan class=\"x\"\u003e.\u003c/span\u003e\u003cspan class=\"pl-c1 x x-last\"\u003eweight\u003c/span\u003e[\u003cspan class=\"pl-s1\"\u003ei\u003c/span\u003e])","displayNoNewLineWarning":false,"position":65,"left":62,"right":82},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":83,"text":"+ tmp_u = torch.matmul(user_inputs, weights[i])","html":"+ \u003cspan class=\"pl-s1\"\u003etmp_u\u003c/span\u003e \u003cspan class=\"pl-c1\"\u003e=\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003etorch\u003c/span\u003e.\u003cspan class=\"pl-c1\"\u003ematmul\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003euser_inputs\u003c/span\u003e, \u003cspan class=\"pl-s1 x x-first x-last\"\u003eweights\u003c/span\u003e[\u003cspan class=\"pl-s1\"\u003ei\u003c/span\u003e])","displayNoNewLineWarning":false,"position":66,"left":62,"right":83},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":84,"text":"+ tmp_v = torch.matmul(item_inputs, weights[i])","html":"+ \u003cspan class=\"pl-s1\"\u003etmp_v\u003c/span\u003e \u003cspan class=\"pl-c1\"\u003e=\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003etorch\u003c/span\u003e.\u003cspan class=\"pl-c1\"\u003ematmul\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003eitem_inputs\u003c/span\u003e, \u003cspan class=\"pl-s1 x x-first x-last\"\u003eweights\u003c/span\u003e[\u003cspan class=\"pl-s1\"\u003ei\u003c/span\u003e])","displayNoNewLineWarning":false,"position":67,"left":62,"right":84},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":85,"text":" tmp_user_hidden = torch.sparse.mm(user_supports[i], tmp_v)","html":" \u003cspan class=pl-s1\u003etmp_user_hidden\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003esparse\u003c/span\u003e.\u003cspan class=pl-c1\u003emm\u003c/span\u003e(\u003cspan class=pl-s1\u003euser_supports\u003c/span\u003e[\u003cspan class=pl-s1\u003ei\u003c/span\u003e], \u003cspan class=pl-s1\u003etmp_v\u003c/span\u003e)","displayNoNewLineWarning":false,"position":68,"left":63,"right":85},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":86,"text":" tmp_item_hidden = torch.sparse.mm(item_supports[i], tmp_u)","html":" \u003cspan class=pl-s1\u003etmp_item_hidden\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003esparse\u003c/span\u003e.\u003cspan class=pl-c1\u003emm\u003c/span\u003e(\u003cspan class=pl-s1\u003eitem_supports\u003c/span\u003e[\u003cspan class=pl-s1\u003ei\u003c/span\u003e], \u003cspan class=pl-s1\u003etmp_u\u003c/span\u003e)","displayNoNewLineWarning":false,"position":69,"left":64,"right":86},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":87,"text":" user_hidden.append(tmp_user_hidden)","html":" \u003cspan class=pl-s1\u003euser_hidden\u003c/span\u003e.\u003cspan class=pl-c1\u003eappend\u003c/span\u003e(\u003cspan class=pl-s1\u003etmp_user_hidden\u003c/span\u003e)","displayNoNewLineWarning":false,"position":70,"left":65,"right":87},{"stylingDirective":null,"type":"HUNK","blobLineNumber":93,"text":"@@ -72,14 +94,15 @@ def forward(self, user_supports, item_supports, user_inputs, item_inputs):","html":"@@ -72,14 +94,15 @@ def forward(self, user_supports, item_supports, user_inputs, item_inputs):","displayNoNewLineWarning":false,"position":71,"left":71,"right":93},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":94,"text":" item_outputs = self.activation(item_hidden)","html":" \u003cspan class=pl-s1\u003eitem_outputs\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eactivation\u003c/span\u003e(\u003cspan class=pl-s1\u003eitem_hidden\u003c/span\u003e)","displayNoNewLineWarning":false,"position":72,"left":72,"right":94},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":95,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":73,"left":73,"right":95},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":96,"text":" if self.use_bias:","html":" \u003cspan class=pl-k\u003eif\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003euse_bias\u003c/span\u003e:","displayNoNewLineWarning":false,"position":74,"left":74,"right":96},{"stylingDirective":null,"type":"DELETION","blobLineNumber":75,"text":"- user_outputs += self.bias","html":"- \u003cspan class=\"pl-s1\"\u003euser_outputs\u003c/span\u003e \u003cspan class=\"pl-c1\"\u003e+=\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003eself\u003c/span\u003e.\u003cspan class=\"pl-c1 x x-first x-last\"\u003ebias\u003c/span\u003e","displayNoNewLineWarning":false,"position":75,"left":75,"right":96},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":97,"text":"+ user_outputs += self.bias_user","html":"+ \u003cspan class=\"pl-s1\"\u003euser_outputs\u003c/span\u003e \u003cspan class=\"pl-c1\"\u003e+=\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003eself\u003c/span\u003e.\u003cspan class=\"pl-c1 x x-first x-last\"\u003ebias_user\u003c/span\u003e","displayNoNewLineWarning":false,"position":76,"left":75,"right":97},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":98,"text":" item_outputs += self.bias_item","html":" \u003cspan class=pl-s1\u003eitem_outputs\u003c/span\u003e \u003cspan class=pl-c1\u003e+=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003ebias_item\u003c/span\u003e","displayNoNewLineWarning":false,"position":77,"left":76,"right":98},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":99,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":78,"left":77,"right":99},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":100,"text":" return user_outputs, item_outputs","html":" \u003cspan class=pl-k\u003ereturn\u003c/span\u003e \u003cspan class=pl-s1\u003euser_outputs\u003c/span\u003e, \u003cspan class=pl-s1\u003eitem_outputs\u003c/span\u003e","displayNoNewLineWarning":false,"position":79,"left":78,"right":100},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":101,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":80,"left":79,"right":101},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":102,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":81,"left":80,"right":102},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":103,"text":" class SumGCNEncoder(nn.Module):","html":" \u003cspan class=pl-k\u003eclass\u003c/span\u003e \u003cspan class=pl-v\u003eSumGCNEncoder\u003c/span\u003e(\u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eModule\u003c/span\u003e):","displayNoNewLineWarning":false,"position":82,"left":81,"right":103},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":104,"text":" def __init__(self, input_dim, output_dim, num_support,","html":" \u003cspan class=pl-k\u003edef\u003c/span\u003e \u003cspan class=pl-en\u003e__init__\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e, \u003cspan class=pl-s1\u003einput_dim\u003c/span\u003e, \u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e, \u003cspan class=pl-s1\u003enum_support\u003c/span\u003e,","displayNoNewLineWarning":false,"position":83,"left":82,"right":104},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":105,"text":"+ dropout=0.,","html":"+ \u003cspan class=pl-s1\u003edropout\u003c/span\u003e\u003cspan class=pl-c1\u003e=\u003c/span\u003e\u003cspan class=pl-c1\u003e0.\u003c/span\u003e,","displayNoNewLineWarning":false,"position":84,"left":82,"right":105},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":106,"text":" use_bias=False, activation=F.relu):","html":" \u003cspan class=pl-s1\u003euse_bias\u003c/span\u003e\u003cspan class=pl-c1\u003e=\u003c/span\u003e\u003cspan class=pl-c1\u003eFalse\u003c/span\u003e, \u003cspan class=pl-s1\u003eactivation\u003c/span\u003e\u003cspan class=pl-c1\u003e=\u003c/span\u003e\u003cspan class=pl-c1\u003eF\u003c/span\u003e.\u003cspan class=pl-c1\u003erelu\u003c/span\u003e):","displayNoNewLineWarning":false,"position":85,"left":83,"right":106},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":107,"text":" \"\"\"对得到的每类评分使用求和的方式进行聚合","html":" \u003cspan class=pl-s\u003e\u0026quot;\u0026quot;\u0026quot;对得到的每类评分使用求和的方式进行聚合\u003c/span\u003e","displayNoNewLineWarning":false,"position":86,"left":84,"right":107},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":108,"text":" ","html":" \u003cspan class=pl-s\u003e \u003c/span\u003e","displayNoNewLineWarning":false,"position":87,"left":85,"right":108},{"stylingDirective":null,"type":"HUNK","blobLineNumber":121,"text":"@@ -99,14 +122,16 @@ def __init__(self, input_dim, output_dim, num_support,","html":"@@ -99,14 +122,16 @@ def __init__(self, input_dim, output_dim, num_support,","displayNoNewLineWarning":false,"position":88,"left":98,"right":121},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":122,"text":" self.weight = nn.Parameter(torch.Tensor(","html":" \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweight\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eParameter\u003c/span\u003e(\u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003eTensor\u003c/span\u003e(","displayNoNewLineWarning":false,"position":89,"left":99,"right":122},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":123,"text":" input_dim, output_dim * num_support))","html":" \u003cspan class=pl-s1\u003einput_dim\u003c/span\u003e, \u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e \u003cspan class=pl-c1\u003e*\u003c/span\u003e \u003cspan class=pl-s1\u003enum_support\u003c/span\u003e))","displayNoNewLineWarning":false,"position":90,"left":100,"right":123},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":124,"text":" if self.use_bias:","html":" \u003cspan class=pl-k\u003eif\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003euse_bias\u003c/span\u003e:","displayNoNewLineWarning":false,"position":91,"left":101,"right":124},{"stylingDirective":null,"type":"DELETION","blobLineNumber":102,"text":"- self.bias = nn.Parameter(torch.Tensor(output_dim, ))","html":"- \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003ebias\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eParameter\u003c/span\u003e(\u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003eTensor\u003c/span\u003e(\u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e, ))","displayNoNewLineWarning":false,"position":92,"left":102,"right":124},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":125,"text":"+ self.bias_user = nn.Parameter(torch.Tensor(output_dim, ))","html":"+ \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003ebias_user\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eParameter\u003c/span\u003e(\u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003eTensor\u003c/span\u003e(\u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e, ))","displayNoNewLineWarning":false,"position":93,"left":102,"right":125},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":126,"text":"+ self.bias_item = nn.Parameter(torch.Tensor(output_dim, ))","html":"+ \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003ebias_item\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eParameter\u003c/span\u003e(\u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003eTensor\u003c/span\u003e(\u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e, ))","displayNoNewLineWarning":false,"position":94,"left":102,"right":126},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":127,"text":"+ self.dropout = InputDropout(1 - dropout)","html":"+ \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003edropout\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-en\u003eInputDropout\u003c/span\u003e(\u003cspan class=pl-c1\u003e1\u003c/span\u003e \u003cspan class=pl-c1\u003e-\u003c/span\u003e \u003cspan class=pl-s1\u003edropout\u003c/span\u003e)","displayNoNewLineWarning":false,"position":95,"left":102,"right":127},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":128,"text":" self.reset_parameters()","html":" \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003ereset_parameters\u003c/span\u003e()","displayNoNewLineWarning":false,"position":96,"left":103,"right":128},{"stylingDirective":null,"type":"DELETION","blobLineNumber":104,"text":"- self.weight = self.weight.view(input_dim, output_dim, 5)","html":"- \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweight\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweight\u003c/span\u003e.\u003cspan class=pl-c1\u003eview\u003c/span\u003e(\u003cspan class=pl-s1\u003einput_dim\u003c/span\u003e, \u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e, \u003cspan class=pl-c1\u003e5\u003c/span\u003e)","displayNoNewLineWarning":false,"position":97,"left":104,"right":128},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":129,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":98,"left":105,"right":129},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":130,"text":" def reset_parameters(self):","html":" \u003cspan class=pl-k\u003edef\u003c/span\u003e \u003cspan class=pl-en\u003ereset_parameters\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e):","displayNoNewLineWarning":false,"position":99,"left":106,"right":130},{"stylingDirective":null,"type":"DELETION","blobLineNumber":107,"text":"- init.kaiming_uniform_(self.weight)","html":"- \u003cspan class=\"pl-s1\"\u003einit\u003c/span\u003e.\u003cspan class=\"pl-c1 x x-first x-last\"\u003ekaiming_uniform_\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003eself\u003c/span\u003e.\u003cspan class=\"pl-c1\"\u003eweight\u003c/span\u003e)","displayNoNewLineWarning":false,"position":100,"left":107,"right":130},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":131,"text":"+ init.xavier_uniform_(self.weight)","html":"+ \u003cspan class=\"pl-s1\"\u003einit\u003c/span\u003e.\u003cspan class=\"pl-c1 x x-first x-last\"\u003exavier_uniform_\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003eself\u003c/span\u003e.\u003cspan class=\"pl-c1\"\u003eweight\u003c/span\u003e)","displayNoNewLineWarning":false,"position":101,"left":107,"right":131},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":132,"text":" if self.use_bias:","html":" \u003cspan class=pl-k\u003eif\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003euse_bias\u003c/span\u003e:","displayNoNewLineWarning":false,"position":102,"left":108,"right":132},{"stylingDirective":null,"type":"DELETION","blobLineNumber":109,"text":"- init.zeros_(self.bias)","html":"- \u003cspan class=pl-s1\u003einit\u003c/span\u003e.\u003cspan class=pl-c1\u003ezeros_\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003ebias\u003c/span\u003e)","displayNoNewLineWarning":false,"position":103,"left":109,"right":132},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":133,"text":"+ init.zeros_(self.bias_user)","html":"+ \u003cspan class=pl-s1\u003einit\u003c/span\u003e.\u003cspan class=pl-c1\u003ezeros_\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003ebias_user\u003c/span\u003e)","displayNoNewLineWarning":false,"position":104,"left":109,"right":133},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":134,"text":"+ init.zeros_(self.bias_item)","html":"+ \u003cspan class=pl-s1\u003einit\u003c/span\u003e.\u003cspan class=pl-c1\u003ezeros_\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003ebias_item\u003c/span\u003e)","displayNoNewLineWarning":false,"position":105,"left":109,"right":134},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":135,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":106,"left":110,"right":135},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":136,"text":" def forward(self, user_supports, item_supports, user_inputs, item_inputs):","html":" \u003cspan class=pl-k\u003edef\u003c/span\u003e \u003cspan class=pl-en\u003eforward\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e, \u003cspan class=pl-s1\u003euser_supports\u003c/span\u003e, \u003cspan class=pl-s1\u003eitem_supports\u003c/span\u003e, \u003cspan class=pl-s1\u003euser_inputs\u003c/span\u003e, \u003cspan class=pl-s1\u003eitem_inputs\u003c/span\u003e):","displayNoNewLineWarning":false,"position":107,"left":111,"right":136},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":137,"text":" \"\"\"SumGCNEncoder计算逻辑","html":" \u003cspan class=pl-s\u003e\u0026quot;\u0026quot;\u0026quot;SumGCNEncoder计算逻辑\u003c/span\u003e","displayNoNewLineWarning":false,"position":108,"left":112,"right":137},{"stylingDirective":null,"type":"HUNK","blobLineNumber":148,"text":"@@ -124,23 +149,27 @@ def forward(self, user_supports, item_supports, user_inputs, item_inputs):","html":"@@ -124,23 +149,27 @@ def forward(self, user_supports, item_supports, user_inputs, item_inputs):","displayNoNewLineWarning":false,"position":109,"left":123,"right":148},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":149,"text":" [torch.Tensor]: 商品的隐层特征","html":" \u003cspan class=pl-s\u003e [torch.Tensor]: 商品的隐层特征\u003c/span\u003e","displayNoNewLineWarning":false,"position":110,"left":124,"right":149},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":150,"text":" \"\"\"","html":" \u003cspan class=pl-s\u003e \u0026quot;\u0026quot;\u0026quot;\u003c/span\u003e","displayNoNewLineWarning":false,"position":111,"left":125,"right":150},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":151,"text":" assert len(user_supports) == len(item_supports) == self.num_support","html":" \u003cspan class=pl-k\u003eassert\u003c/span\u003e \u003cspan class=pl-en\u003elen\u003c/span\u003e(\u003cspan class=pl-s1\u003euser_supports\u003c/span\u003e) \u003cspan class=pl-c1\u003e==\u003c/span\u003e \u003cspan class=pl-en\u003elen\u003c/span\u003e(\u003cspan class=pl-s1\u003eitem_supports\u003c/span\u003e) \u003cspan class=pl-c1\u003e==\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003enum_support\u003c/span\u003e","displayNoNewLineWarning":false,"position":112,"left":126,"right":151},{"stylingDirective":null,"type":"DELETION","blobLineNumber":127,"text":"- user_hidden = 0","html":"- \u003cspan class=pl-s1\u003euser_hidden\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-c1\u003e0\u003c/span\u003e","displayNoNewLineWarning":false,"position":113,"left":127,"right":151},{"stylingDirective":null,"type":"DELETION","blobLineNumber":128,"text":"- item_hidden = 0","html":"- \u003cspan class=pl-s1\u003eitem_hidden\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-c1\u003e0\u003c/span\u003e","displayNoNewLineWarning":false,"position":114,"left":128,"right":151},{"stylingDirective":null,"type":"DELETION","blobLineNumber":129,"text":"- w = 0","html":"- \u003cspan class=pl-s1\u003ew\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-c1\u003e0\u003c/span\u003e","displayNoNewLineWarning":false,"position":115,"left":129,"right":151},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":152,"text":"+ user_inputs = self.dropout(user_inputs)","html":"+ \u003cspan class=pl-s1\u003euser_inputs\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003edropout\u003c/span\u003e(\u003cspan class=pl-s1\u003euser_inputs\u003c/span\u003e)","displayNoNewLineWarning":false,"position":116,"left":129,"right":152},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":153,"text":"+ item_inputs = self.dropout(item_inputs)","html":"+ \u003cspan class=pl-s1\u003eitem_inputs\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003edropout\u003c/span\u003e(\u003cspan class=pl-s1\u003eitem_inputs\u003c/span\u003e)","displayNoNewLineWarning":false,"position":117,"left":129,"right":153},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":154,"text":"+","html":"+","displayNoNewLineWarning":false,"position":118,"left":129,"right":154},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":155,"text":"+ user_hidden = []","html":"+ \u003cspan class=pl-s1\u003euser_hidden\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e []","displayNoNewLineWarning":false,"position":119,"left":129,"right":155},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":156,"text":"+ item_hidden = []","html":"+ \u003cspan class=pl-s1\u003eitem_hidden\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e []","displayNoNewLineWarning":false,"position":120,"left":129,"right":156},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":157,"text":"+ weights = torch.split(self.weight, self.output_dim, dim=1)","html":"+ \u003cspan class=pl-s1\u003eweights\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003esplit\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweight\u003c/span\u003e, \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eoutput_dim\u003c/span\u003e, \u003cspan class=pl-s1\u003edim\u003c/span\u003e\u003cspan class=pl-c1\u003e=\u003c/span\u003e\u003cspan class=pl-c1\u003e1\u003c/span\u003e)","displayNoNewLineWarning":false,"position":121,"left":129,"right":157},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":158,"text":" for i in range(self.num_support):","html":" \u003cspan class=pl-k\u003efor\u003c/span\u003e \u003cspan class=pl-s1\u003ei\u003c/span\u003e \u003cspan class=pl-c1\u003ein\u003c/span\u003e \u003cspan class=pl-en\u003erange\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003enum_support\u003c/span\u003e):","displayNoNewLineWarning":false,"position":122,"left":130,"right":158},{"stylingDirective":null,"type":"DELETION","blobLineNumber":131,"text":"- w += self.weight[..., i]","html":"- \u003cspan class=\"pl-s1\"\u003ew\u003c/span\u003e \u003cspan class=\"pl-c1 x x-first\"\u003e+=\u003c/span\u003e\u003cspan class=\"x\"\u003e \u003c/span\u003e\u003cspan class=\"pl-s1 x\"\u003eself\u003c/span\u003e\u003cspan class=\"x\"\u003e.\u003c/span\u003e\u003cspan class=\"pl-c1 x\"\u003eweight\u003c/span\u003e\u003cspan class=\"x\"\u003e[..., \u003c/span\u003e\u003cspan class=\"pl-s1 x\"\u003ei\u003c/span\u003e\u003cspan class=\"x x-last\"\u003e]\u003c/span\u003e","displayNoNewLineWarning":false,"position":123,"left":131,"right":158},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":159,"text":"+ w = sum(weights[:(i + 1)])","html":"+ \u003cspan class=\"pl-s1\"\u003ew\u003c/span\u003e \u003cspan class=\"pl-c1 x x-first\"\u003e=\u003c/span\u003e\u003cspan class=\"x\"\u003e \u003c/span\u003e\u003cspan class=\"pl-en x\"\u003esum\u003c/span\u003e\u003cspan class=\"x\"\u003e(\u003c/span\u003e\u003cspan class=\"pl-s1 x\"\u003eweights\u003c/span\u003e\u003cspan class=\"x\"\u003e[:(\u003c/span\u003e\u003cspan class=\"pl-s1 x\"\u003ei\u003c/span\u003e\u003cspan class=\"x\"\u003e \u003c/span\u003e\u003cspan class=\"pl-c1 x\"\u003e+\u003c/span\u003e\u003cspan class=\"x\"\u003e \u003c/span\u003e\u003cspan class=\"pl-c1 x\"\u003e1\u003c/span\u003e\u003cspan class=\"x x-last\"\u003e)])\u003c/span\u003e","displayNoNewLineWarning":false,"position":124,"left":131,"right":159},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":160,"text":" tmp_u = torch.matmul(user_inputs, w)","html":" \u003cspan class=pl-s1\u003etmp_u\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003ematmul\u003c/span\u003e(\u003cspan class=pl-s1\u003euser_inputs\u003c/span\u003e, \u003cspan class=pl-s1\u003ew\u003c/span\u003e)","displayNoNewLineWarning":false,"position":125,"left":132,"right":160},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":161,"text":" tmp_v = torch.matmul(item_inputs, w)","html":" \u003cspan class=pl-s1\u003etmp_v\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003ematmul\u003c/span\u003e(\u003cspan class=pl-s1\u003eitem_inputs\u003c/span\u003e, \u003cspan class=pl-s1\u003ew\u003c/span\u003e)","displayNoNewLineWarning":false,"position":126,"left":133,"right":161},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":162,"text":" tmp_user_hidden = torch.sparse.mm(user_supports[i], tmp_v)","html":" \u003cspan class=pl-s1\u003etmp_user_hidden\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003esparse\u003c/span\u003e.\u003cspan class=pl-c1\u003emm\u003c/span\u003e(\u003cspan class=pl-s1\u003euser_supports\u003c/span\u003e[\u003cspan class=pl-s1\u003ei\u003c/span\u003e], \u003cspan class=pl-s1\u003etmp_v\u003c/span\u003e)","displayNoNewLineWarning":false,"position":127,"left":134,"right":162},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":163,"text":" tmp_item_hidden = torch.sparse.mm(item_supports[i], tmp_u)","html":" \u003cspan class=pl-s1\u003etmp_item_hidden\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003esparse\u003c/span\u003e.\u003cspan class=pl-c1\u003emm\u003c/span\u003e(\u003cspan class=pl-s1\u003eitem_supports\u003c/span\u003e[\u003cspan class=pl-s1\u003ei\u003c/span\u003e], \u003cspan class=pl-s1\u003etmp_u\u003c/span\u003e)","displayNoNewLineWarning":false,"position":128,"left":135,"right":163},{"stylingDirective":null,"type":"DELETION","blobLineNumber":136,"text":"- user_hidden += tmp_user_hidden","html":"- \u003cspan class=\"pl-s1\"\u003euser_hidden\u003c/span\u003e\u003cspan class=\"x x-first\"\u003e \u003c/span\u003e\u003cspan class=\"pl-c1 x\"\u003e+=\u003c/span\u003e\u003cspan class=\"x x-last\"\u003e \u003c/span\u003e\u003cspan class=\"pl-s1\"\u003etmp_user_hidden\u003c/span\u003e","displayNoNewLineWarning":false,"position":129,"left":136,"right":163},{"stylingDirective":null,"type":"DELETION","blobLineNumber":137,"text":"- item_hidden += tmp_item_hidden","html":"- \u003cspan class=\"pl-s1\"\u003eitem_hidden\u003c/span\u003e\u003cspan class=\"x x-first\"\u003e \u003c/span\u003e\u003cspan class=\"pl-c1 x\"\u003e+=\u003c/span\u003e\u003cspan class=\"x x-last\"\u003e \u003c/span\u003e\u003cspan class=\"pl-s1\"\u003etmp_item_hidden\u003c/span\u003e","displayNoNewLineWarning":false,"position":130,"left":137,"right":163},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":164,"text":"+ user_hidden.append(tmp_user_hidden)","html":"+ \u003cspan class=\"pl-s1\"\u003euser_hidden\u003c/span\u003e\u003cspan class=\"x x-first\"\u003e.\u003c/span\u003e\u003cspan class=\"pl-c1 x\"\u003eappend\u003c/span\u003e\u003cspan class=\"x x-last\"\u003e(\u003c/span\u003e\u003cspan class=\"pl-s1\"\u003etmp_user_hidden\u003c/span\u003e\u003cspan class=\"x x-first x-last\"\u003e)\u003c/span\u003e","displayNoNewLineWarning":false,"position":131,"left":137,"right":164},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":165,"text":"+ item_hidden.append(tmp_item_hidden)","html":"+ \u003cspan class=\"pl-s1\"\u003eitem_hidden\u003c/span\u003e\u003cspan class=\"x x-first\"\u003e.\u003c/span\u003e\u003cspan class=\"pl-c1 x\"\u003eappend\u003c/span\u003e\u003cspan class=\"x x-last\"\u003e(\u003c/span\u003e\u003cspan class=\"pl-s1\"\u003etmp_item_hidden\u003c/span\u003e\u003cspan class=\"x x-first x-last\"\u003e)\u003c/span\u003e","displayNoNewLineWarning":false,"position":132,"left":137,"right":165},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":166,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":133,"left":138,"right":166},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":167,"text":"+ user_hidden, item_hidden = sum(user_hidden), sum(item_hidden)","html":"+ \u003cspan class=pl-s1\u003euser_hidden\u003c/span\u003e, \u003cspan class=pl-s1\u003eitem_hidden\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-en\u003esum\u003c/span\u003e(\u003cspan class=pl-s1\u003euser_hidden\u003c/span\u003e), \u003cspan class=pl-en\u003esum\u003c/span\u003e(\u003cspan class=pl-s1\u003eitem_hidden\u003c/span\u003e)","displayNoNewLineWarning":false,"position":134,"left":138,"right":167},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":168,"text":" user_outputs = self.activation(user_hidden)","html":" \u003cspan class=pl-s1\u003euser_outputs\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eactivation\u003c/span\u003e(\u003cspan class=pl-s1\u003euser_hidden\u003c/span\u003e)","displayNoNewLineWarning":false,"position":135,"left":139,"right":168},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":169,"text":" item_outputs = self.activation(item_hidden)","html":" \u003cspan class=pl-s1\u003eitem_outputs\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eactivation\u003c/span\u003e(\u003cspan class=pl-s1\u003eitem_hidden\u003c/span\u003e)","displayNoNewLineWarning":false,"position":136,"left":140,"right":169},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":170,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":137,"left":141,"right":170},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":171,"text":" if self.use_bias:","html":" \u003cspan class=pl-k\u003eif\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003euse_bias\u003c/span\u003e:","displayNoNewLineWarning":false,"position":138,"left":142,"right":171},{"stylingDirective":null,"type":"DELETION","blobLineNumber":143,"text":"- user_outputs += self.bias","html":"- \u003cspan class=\"pl-s1\"\u003euser_outputs\u003c/span\u003e \u003cspan class=\"pl-c1\"\u003e+=\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003eself\u003c/span\u003e.\u003cspan class=\"pl-c1 x x-first x-last\"\u003ebias\u003c/span\u003e","displayNoNewLineWarning":false,"position":139,"left":143,"right":171},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":172,"text":"+ user_outputs += self.bias_user","html":"+ \u003cspan class=\"pl-s1\"\u003euser_outputs\u003c/span\u003e \u003cspan class=\"pl-c1\"\u003e+=\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003eself\u003c/span\u003e.\u003cspan class=\"pl-c1 x x-first x-last\"\u003ebias_user\u003c/span\u003e","displayNoNewLineWarning":false,"position":140,"left":143,"right":172},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":173,"text":" item_outputs += self.bias_item","html":" \u003cspan class=pl-s1\u003eitem_outputs\u003c/span\u003e \u003cspan class=pl-c1\u003e+=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003ebias_item\u003c/span\u003e","displayNoNewLineWarning":false,"position":141,"left":144,"right":173},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":174,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":142,"left":145,"right":174},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":175,"text":" return user_outputs, item_outputs","html":" \u003cspan class=pl-k\u003ereturn\u003c/span\u003e \u003cspan class=pl-s1\u003euser_outputs\u003c/span\u003e, \u003cspan class=pl-s1\u003eitem_outputs\u003c/span\u003e","displayNoNewLineWarning":false,"position":143,"left":146,"right":175},{"stylingDirective":null,"type":"HUNK","blobLineNumber":195,"text":"@@ -167,12 +196,32 @@ def __init__(self, input_dim, output_dim, dropout=0.,","html":"@@ -167,12 +196,32 @@ def __init__(self, input_dim, output_dim, dropout=0.,","displayNoNewLineWarning":false,"position":144,"left":166,"right":195},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":196,"text":" self.use_bias = use_bias","html":" \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003euse_bias\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003euse_bias\u003c/span\u003e","displayNoNewLineWarning":false,"position":145,"left":167,"right":196},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":197,"text":" self.activation = activation","html":" \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eactivation\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eactivation\u003c/span\u003e","displayNoNewLineWarning":false,"position":146,"left":168,"right":197},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":198,"text":" self.share_weights = share_weights","html":" \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eshare_weights\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eshare_weights\u003c/span\u003e","displayNoNewLineWarning":false,"position":147,"left":169,"right":198},{"stylingDirective":null,"type":"DELETION","blobLineNumber":170,"text":"- self.linear_user = nn.Linear(input_dim, output_dim, bias=use_bias)","html":"- \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003elinear_user\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eLinear\u003c/span\u003e(\u003cspan class=pl-s1\u003einput_dim\u003c/span\u003e, \u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e, \u003cspan class=pl-s1\u003ebias\u003c/span\u003e\u003cspan class=pl-c1\u003e=\u003c/span\u003e\u003cspan class=pl-s1\u003euse_bias\u003c/span\u003e)","displayNoNewLineWarning":false,"position":148,"left":170,"right":198},{"stylingDirective":null,"type":"DELETION","blobLineNumber":171,"text":"- if self.share_weights:","html":"- \u003cspan class=pl-k\u003eif\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eshare_weights\u003c/span\u003e:","displayNoNewLineWarning":false,"position":149,"left":171,"right":198},{"stylingDirective":null,"type":"DELETION","blobLineNumber":172,"text":"- self.linear_item = self.linear_user","html":"- \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003elinear_item\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003elinear_user\u003c/span\u003e","displayNoNewLineWarning":false,"position":150,"left":172,"right":198},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":199,"text":"+ if not share_weights:","html":"+ \u003cspan class=pl-k\u003eif\u003c/span\u003e \u003cspan class=pl-c1\u003enot\u003c/span\u003e \u003cspan class=pl-s1\u003eshare_weights\u003c/span\u003e:","displayNoNewLineWarning":false,"position":151,"left":172,"right":199},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":200,"text":"+ self.weights_u = nn.Parameter(torch.Tensor(input_dim, output_dim))","html":"+ \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweights_u\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eParameter\u003c/span\u003e(\u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003eTensor\u003c/span\u003e(\u003cspan class=pl-s1\u003einput_dim\u003c/span\u003e, \u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e))","displayNoNewLineWarning":false,"position":152,"left":172,"right":200},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":201,"text":"+ self.weights_v = nn.Parameter(torch.Tensor(input_dim, output_dim))","html":"+ \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweights_v\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eParameter\u003c/span\u003e(\u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003eTensor\u003c/span\u003e(\u003cspan class=pl-s1\u003einput_dim\u003c/span\u003e, \u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e))","displayNoNewLineWarning":false,"position":153,"left":172,"right":201},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":202,"text":"+ if use_bias:","html":"+ \u003cspan class=pl-k\u003eif\u003c/span\u003e \u003cspan class=pl-s1\u003euse_bias\u003c/span\u003e:","displayNoNewLineWarning":false,"position":154,"left":172,"right":202},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":203,"text":"+ self.user_bias = nn.Parameter(torch.Tensor(output_dim))","html":"+ \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003euser_bias\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eParameter\u003c/span\u003e(\u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003eTensor\u003c/span\u003e(\u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e))","displayNoNewLineWarning":false,"position":155,"left":172,"right":203},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":204,"text":"+ self.item_bias = nn.Parameter(torch.Tensor(output_dim))","html":"+ \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eitem_bias\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eParameter\u003c/span\u003e(\u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003eTensor\u003c/span\u003e(\u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e))","displayNoNewLineWarning":false,"position":156,"left":172,"right":204},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":205,"text":" else:","html":" \u003cspan class=pl-k\u003eelse\u003c/span\u003e:","displayNoNewLineWarning":false,"position":157,"left":173,"right":205},{"stylingDirective":null,"type":"DELETION","blobLineNumber":174,"text":"- self.linear_item = nn.Linear(input_dim, output_dim, bias=use_bias)","html":"- \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003elinear_item\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eLinear\u003c/span\u003e(\u003cspan class=pl-s1\u003einput_dim\u003c/span\u003e, \u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e, \u003cspan class=pl-s1\u003ebias\u003c/span\u003e\u003cspan class=pl-c1\u003e=\u003c/span\u003e\u003cspan class=pl-s1\u003euse_bias\u003c/span\u003e)","displayNoNewLineWarning":false,"position":158,"left":174,"right":205},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":206,"text":"+ self.weights_u = nn.Parameter(torch.Tensor(input_dim, output_dim))","html":"+ \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweights_u\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eParameter\u003c/span\u003e(\u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003eTensor\u003c/span\u003e(\u003cspan class=pl-s1\u003einput_dim\u003c/span\u003e, \u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e))","displayNoNewLineWarning":false,"position":159,"left":174,"right":206},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":207,"text":"+ self.weights_v = self.weights_u","html":"+ \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweights_v\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweights_u\u003c/span\u003e","displayNoNewLineWarning":false,"position":160,"left":174,"right":207},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":208,"text":"+ if use_bias:","html":"+ \u003cspan class=pl-k\u003eif\u003c/span\u003e \u003cspan class=pl-s1\u003euse_bias\u003c/span\u003e:","displayNoNewLineWarning":false,"position":161,"left":174,"right":208},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":209,"text":"+ self.user_bias = nn.Parameter(torch.Tensor(output_dim))","html":"+ \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003euser_bias\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eParameter\u003c/span\u003e(\u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003eTensor\u003c/span\u003e(\u003cspan class=pl-s1\u003eoutput_dim\u003c/span\u003e))","displayNoNewLineWarning":false,"position":162,"left":174,"right":209},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":210,"text":"+ self.item_bias = self.user_bias","html":"+ \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eitem_bias\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003euser_bias\u003c/span\u003e","displayNoNewLineWarning":false,"position":163,"left":174,"right":210},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":211,"text":" self.dropout = nn.Dropout(dropout)","html":" \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003edropout\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eDropout\u003c/span\u003e(\u003cspan class=pl-s1\u003edropout\u003c/span\u003e)","displayNoNewLineWarning":false,"position":164,"left":175,"right":211},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":212,"text":"+ self.reset_parameters()","html":"+ \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003ereset_parameters\u003c/span\u003e()","displayNoNewLineWarning":false,"position":165,"left":175,"right":212},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":213,"text":"+","html":"+","displayNoNewLineWarning":false,"position":166,"left":175,"right":213},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":214,"text":"+ def reset_parameters(self):","html":"+ \u003cspan class=pl-k\u003edef\u003c/span\u003e \u003cspan class=pl-en\u003ereset_parameters\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e):","displayNoNewLineWarning":false,"position":167,"left":175,"right":214},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":215,"text":"+ if not self.share_weights:","html":"+ \u003cspan class=pl-k\u003eif\u003c/span\u003e \u003cspan class=pl-c1\u003enot\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eshare_weights\u003c/span\u003e:","displayNoNewLineWarning":false,"position":168,"left":175,"right":215},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":216,"text":"+ init.xavier_uniform_(self.weights_u)","html":"+ \u003cspan class=pl-s1\u003einit\u003c/span\u003e.\u003cspan class=pl-c1\u003exavier_uniform_\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweights_u\u003c/span\u003e)","displayNoNewLineWarning":false,"position":169,"left":175,"right":216},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":217,"text":"+ init.xavier_uniform_(self.weights_v)","html":"+ \u003cspan class=pl-s1\u003einit\u003c/span\u003e.\u003cspan class=pl-c1\u003exavier_uniform_\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweights_v\u003c/span\u003e)","displayNoNewLineWarning":false,"position":170,"left":175,"right":217},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":218,"text":"+ if self.use_bias:","html":"+ \u003cspan class=pl-k\u003eif\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003euse_bias\u003c/span\u003e:","displayNoNewLineWarning":false,"position":171,"left":175,"right":218},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":219,"text":"+ init.normal_(self.user_bias, std=0.5)","html":"+ \u003cspan class=pl-s1\u003einit\u003c/span\u003e.\u003cspan class=pl-c1\u003enormal_\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003euser_bias\u003c/span\u003e, \u003cspan class=pl-s1\u003estd\u003c/span\u003e\u003cspan class=pl-c1\u003e=\u003c/span\u003e\u003cspan class=pl-c1\u003e0.5\u003c/span\u003e)","displayNoNewLineWarning":false,"position":172,"left":175,"right":219},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":220,"text":"+ init.normal_(self.item_bias, std=0.5)","html":"+ \u003cspan class=pl-s1\u003einit\u003c/span\u003e.\u003cspan class=pl-c1\u003enormal_\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eitem_bias\u003c/span\u003e, \u003cspan class=pl-s1\u003estd\u003c/span\u003e\u003cspan class=pl-c1\u003e=\u003c/span\u003e\u003cspan class=pl-c1\u003e0.5\u003c/span\u003e)","displayNoNewLineWarning":false,"position":173,"left":175,"right":220},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":221,"text":"+ else:","html":"+ \u003cspan class=pl-k\u003eelse\u003c/span\u003e:","displayNoNewLineWarning":false,"position":174,"left":175,"right":221},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":222,"text":"+ init.xavier_uniform_(self.weights_u)","html":"+ \u003cspan class=pl-s1\u003einit\u003c/span\u003e.\u003cspan class=pl-c1\u003exavier_uniform_\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweights_u\u003c/span\u003e)","displayNoNewLineWarning":false,"position":175,"left":175,"right":222},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":223,"text":"+ if self.use_bias:","html":"+ \u003cspan class=pl-k\u003eif\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003euse_bias\u003c/span\u003e:","displayNoNewLineWarning":false,"position":176,"left":175,"right":223},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":224,"text":"+ init.normal_(self.user_bias, std=0.5)","html":"+ \u003cspan class=pl-s1\u003einit\u003c/span\u003e.\u003cspan class=pl-c1\u003enormal_\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003euser_bias\u003c/span\u003e, \u003cspan class=pl-s1\u003estd\u003c/span\u003e\u003cspan class=pl-c1\u003e=\u003c/span\u003e\u003cspan class=pl-c1\u003e0.5\u003c/span\u003e)","displayNoNewLineWarning":false,"position":177,"left":175,"right":224},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":225,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":178,"left":176,"right":225},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":226,"text":" def forward(self, user_inputs, item_inputs):","html":" \u003cspan class=pl-k\u003edef\u003c/span\u003e \u003cspan class=pl-en\u003eforward\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e, \u003cspan class=pl-s1\u003euser_inputs\u003c/span\u003e, \u003cspan class=pl-s1\u003eitem_inputs\u003c/span\u003e):","displayNoNewLineWarning":false,"position":179,"left":177,"right":226},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":227,"text":" \"\"\"前向传播","html":" \u003cspan class=pl-s\u003e\u0026quot;\u0026quot;\u0026quot;前向传播\u003c/span\u003e","displayNoNewLineWarning":false,"position":180,"left":178,"right":227},{"stylingDirective":null,"type":"HUNK","blobLineNumber":233,"text":"@@ -185,17 +234,20 @@ def forward(self, user_inputs, item_inputs):","html":"@@ -185,17 +234,20 @@ def forward(self, user_inputs, item_inputs):","displayNoNewLineWarning":false,"position":181,"left":184,"right":233},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":234,"text":" [torch.Tensor]: 输出的用户特征","html":" \u003cspan class=pl-s\u003e [torch.Tensor]: 输出的用户特征\u003c/span\u003e","displayNoNewLineWarning":false,"position":182,"left":185,"right":234},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":235,"text":" [torch.Tensor]: 输出的商品特征","html":" \u003cspan class=pl-s\u003e [torch.Tensor]: 输出的商品特征\u003c/span\u003e","displayNoNewLineWarning":false,"position":183,"left":186,"right":235},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":236,"text":" \"\"\"","html":" \u003cspan class=pl-s\u003e \u0026quot;\u0026quot;\u0026quot;\u003c/span\u003e","displayNoNewLineWarning":false,"position":184,"left":187,"right":236},{"stylingDirective":null,"type":"DELETION","blobLineNumber":188,"text":"- user_inputs = self.dropout(user_inputs)","html":"- \u003cspan class=pl-s1\u003euser_inputs\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003edropout\u003c/span\u003e(\u003cspan class=pl-s1\u003euser_inputs\u003c/span\u003e)","displayNoNewLineWarning":false,"position":185,"left":188,"right":236},{"stylingDirective":null,"type":"DELETION","blobLineNumber":189,"text":"- user_outputs = self.linear_user(user_inputs)","html":"- \u003cspan class=pl-s1\u003euser_outputs\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003elinear_user\u003c/span\u003e(\u003cspan class=pl-s1\u003euser_inputs\u003c/span\u003e)","displayNoNewLineWarning":false,"position":186,"left":189,"right":236},{"stylingDirective":null,"type":"DELETION","blobLineNumber":190,"text":"- ","html":"- ","displayNoNewLineWarning":false,"position":187,"left":190,"right":236},{"stylingDirective":null,"type":"DELETION","blobLineNumber":191,"text":"- item_inputs = self.dropout(item_inputs)","html":"- \u003cspan class=pl-s1\u003eitem_inputs\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003edropout\u003c/span\u003e(\u003cspan class=pl-s1\u003eitem_inputs\u003c/span\u003e)","displayNoNewLineWarning":false,"position":188,"left":191,"right":236},{"stylingDirective":null,"type":"DELETION","blobLineNumber":192,"text":"- item_outputs = self.linear_item(item_inputs)","html":"- \u003cspan class=pl-s1\u003eitem_outputs\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003elinear_item\u003c/span\u003e(\u003cspan class=pl-s1\u003eitem_inputs\u003c/span\u003e)","displayNoNewLineWarning":false,"position":189,"left":192,"right":236},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":237,"text":"+ x_u = self.dropout(user_inputs)","html":"+ \u003cspan class=pl-s1\u003ex_u\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003edropout\u003c/span\u003e(\u003cspan class=pl-s1\u003euser_inputs\u003c/span\u003e)","displayNoNewLineWarning":false,"position":190,"left":192,"right":237},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":238,"text":"+ x_u = torch.matmul(x_u, self.weights_u)","html":"+ \u003cspan class=pl-s1\u003ex_u\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003ematmul\u003c/span\u003e(\u003cspan class=pl-s1\u003ex_u\u003c/span\u003e, \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweights_u\u003c/span\u003e)","displayNoNewLineWarning":false,"position":191,"left":192,"right":238},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":239,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":192,"left":193,"right":239},{"stylingDirective":null,"type":"DELETION","blobLineNumber":194,"text":"- if self.activation:","html":"- \u003cspan class=pl-k\u003eif\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eactivation\u003c/span\u003e:","displayNoNewLineWarning":false,"position":193,"left":194,"right":239},{"stylingDirective":null,"type":"DELETION","blobLineNumber":195,"text":"- user_outputs = self.activation(user_outputs)","html":"- \u003cspan class=pl-s1\u003euser_outputs\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eactivation\u003c/span\u003e(\u003cspan class=pl-s1\u003euser_outputs\u003c/span\u003e)","displayNoNewLineWarning":false,"position":194,"left":195,"right":239},{"stylingDirective":null,"type":"DELETION","blobLineNumber":196,"text":"- item_outputs = self.activation(item_outputs)","html":"- \u003cspan class=pl-s1\u003eitem_outputs\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eactivation\u003c/span\u003e(\u003cspan class=pl-s1\u003eitem_outputs\u003c/span\u003e)","displayNoNewLineWarning":false,"position":195,"left":196,"right":239},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":240,"text":"+ x_v = self.dropout(item_inputs)","html":"+ \u003cspan class=pl-s1\u003ex_v\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003edropout\u003c/span\u003e(\u003cspan class=pl-s1\u003eitem_inputs\u003c/span\u003e)","displayNoNewLineWarning":false,"position":196,"left":196,"right":240},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":241,"text":"+ x_v = torch.matmul(x_v, self.weights_v)","html":"+ \u003cspan class=pl-s1\u003ex_v\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003ematmul\u003c/span\u003e(\u003cspan class=pl-s1\u003ex_v\u003c/span\u003e, \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweights_v\u003c/span\u003e)","displayNoNewLineWarning":false,"position":197,"left":196,"right":241},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":242,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":198,"left":197,"right":242},{"stylingDirective":null,"type":"DELETION","blobLineNumber":198,"text":"- return user_outputs, item_outputs","html":"- \u003cspan class=pl-k\u003ereturn\u003c/span\u003e \u003cspan class=pl-s1\u003euser_outputs\u003c/span\u003e, \u003cspan class=pl-s1\u003eitem_outputs\u003c/span\u003e","displayNoNewLineWarning":false,"position":199,"left":198,"right":242},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":243,"text":"+ u_outputs = self.activation(x_u)","html":"+ \u003cspan class=pl-s1\u003eu_outputs\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eactivation\u003c/span\u003e(\u003cspan class=pl-s1\u003ex_u\u003c/span\u003e)","displayNoNewLineWarning":false,"position":200,"left":198,"right":243},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":244,"text":"+ v_outputs = self.activation(x_v)","html":"+ \u003cspan class=pl-s1\u003ev_outputs\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eactivation\u003c/span\u003e(\u003cspan class=pl-s1\u003ex_v\u003c/span\u003e)","displayNoNewLineWarning":false,"position":201,"left":198,"right":244},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":245,"text":"+","html":"+","displayNoNewLineWarning":false,"position":202,"left":198,"right":245},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":246,"text":"+ if self.use_bias:","html":"+ \u003cspan class=pl-k\u003eif\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003euse_bias\u003c/span\u003e:","displayNoNewLineWarning":false,"position":203,"left":198,"right":246},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":247,"text":"+ u_outputs += self.user_bias","html":"+ \u003cspan class=pl-s1\u003eu_outputs\u003c/span\u003e \u003cspan class=pl-c1\u003e+=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003euser_bias\u003c/span\u003e","displayNoNewLineWarning":false,"position":204,"left":198,"right":247},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":248,"text":"+ v_outputs += self.item_bias","html":"+ \u003cspan class=pl-s1\u003ev_outputs\u003c/span\u003e \u003cspan class=pl-c1\u003e+=\u003c/span\u003e \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eitem_bias\u003c/span\u003e","displayNoNewLineWarning":false,"position":205,"left":198,"right":248},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":249,"text":"+","html":"+","displayNoNewLineWarning":false,"position":206,"left":198,"right":249},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":250,"text":"+ return u_outputs, v_outputs","html":"+ \u003cspan class=pl-k\u003ereturn\u003c/span\u003e \u003cspan class=pl-s1\u003eu_outputs\u003c/span\u003e, \u003cspan class=pl-s1\u003ev_outputs\u003c/span\u003e","displayNoNewLineWarning":false,"position":207,"left":198,"right":250},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":251,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":208,"left":199,"right":251},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":252,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":209,"left":200,"right":252},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":253,"text":" class Decoder(nn.Module):","html":" \u003cspan class=pl-k\u003eclass\u003c/span\u003e \u003cspan class=pl-v\u003eDecoder\u003c/span\u003e(\u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eModule\u003c/span\u003e):","displayNoNewLineWarning":false,"position":210,"left":201,"right":253},{"stylingDirective":null,"type":"HUNK","blobLineNumber":265,"text":"@@ -214,15 +266,17 @@ def __init__(self, input_dim, num_weights, num_classes, dropout=0., activation=F","html":"@@ -214,15 +266,17 @@ def __init__(self, input_dim, num_weights, num_classes, dropout=0., activation=F","displayNoNewLineWarning":false,"position":211,"left":213,"right":265},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":266,"text":" self.num_classes = num_classes","html":" \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003enum_classes\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enum_classes\u003c/span\u003e","displayNoNewLineWarning":false,"position":212,"left":214,"right":266},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":267,"text":" self.activation = activation","html":" \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eactivation\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003eactivation\u003c/span\u003e","displayNoNewLineWarning":false,"position":213,"left":215,"right":267},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":268,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":214,"left":216,"right":268},{"stylingDirective":null,"type":"DELETION","blobLineNumber":217,"text":"- self.weight = nn.Parameter(torch.Tensor(num_weights, input_dim, input_dim))","html":"- \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweight\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eParameter\u003c/span\u003e(\u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003eTensor\u003c/span\u003e(\u003cspan class=pl-s1\u003enum_weights\u003c/span\u003e, \u003cspan class=pl-s1\u003einput_dim\u003c/span\u003e, \u003cspan class=pl-s1\u003einput_dim\u003c/span\u003e))","displayNoNewLineWarning":false,"position":215,"left":217,"right":268},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":269,"text":"+ self.weight = nn.ParameterList([nn.Parameter(torch.Tensor(input_dim, input_dim))","html":"+ \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweight\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eParameterList\u003c/span\u003e([\u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eParameter\u003c/span\u003e(\u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003eTensor\u003c/span\u003e(\u003cspan class=pl-s1\u003einput_dim\u003c/span\u003e, \u003cspan class=pl-s1\u003einput_dim\u003c/span\u003e))","displayNoNewLineWarning":false,"position":216,"left":217,"right":269},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":270,"text":"+ for _ in range(num_weights)])","html":"+ \u003cspan class=pl-k\u003efor\u003c/span\u003e \u003cspan class=pl-s1\u003e_\u003c/span\u003e \u003cspan class=pl-c1\u003ein\u003c/span\u003e \u003cspan class=pl-en\u003erange\u003c/span\u003e(\u003cspan class=pl-s1\u003enum_weights\u003c/span\u003e)])","displayNoNewLineWarning":false,"position":217,"left":217,"right":270},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":271,"text":" self.weight_classifier = nn.Parameter(torch.Tensor(num_weights, num_classes))","html":" \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweight_classifier\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eParameter\u003c/span\u003e(\u003cspan class=pl-s1\u003etorch\u003c/span\u003e.\u003cspan class=pl-c1\u003eTensor\u003c/span\u003e(\u003cspan class=pl-s1\u003enum_weights\u003c/span\u003e, \u003cspan class=pl-s1\u003enum_classes\u003c/span\u003e))","displayNoNewLineWarning":false,"position":218,"left":218,"right":271},{"stylingDirective":null,"type":"DELETION","blobLineNumber":219,"text":"- self.reset_parameters()","html":"- \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003ereset_parameters\u003c/span\u003e()","displayNoNewLineWarning":false,"position":219,"left":219,"right":271},{"stylingDirective":null,"type":"DELETION","blobLineNumber":220,"text":"- ","html":"- ","displayNoNewLineWarning":false,"position":220,"left":220,"right":271},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":272,"text":"+","html":"+","displayNoNewLineWarning":false,"position":221,"left":220,"right":272},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":273,"text":" self.dropout = nn.Dropout(dropout)","html":" \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003edropout\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enn\u003c/span\u003e.\u003cspan class=pl-c1\u003eDropout\u003c/span\u003e(\u003cspan class=pl-s1\u003edropout\u003c/span\u003e)","displayNoNewLineWarning":false,"position":222,"left":221,"right":273},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":274,"text":"+ self.reset_parameters()","html":"+ \u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003ereset_parameters\u003c/span\u003e()","displayNoNewLineWarning":false,"position":223,"left":221,"right":274},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":275,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":224,"left":222,"right":275},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":276,"text":" def reset_parameters(self):","html":" \u003cspan class=pl-k\u003edef\u003c/span\u003e \u003cspan class=pl-en\u003ereset_parameters\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e):","displayNoNewLineWarning":false,"position":225,"left":223,"right":276},{"stylingDirective":null,"type":"DELETION","blobLineNumber":224,"text":"- init.kaiming_uniform_(self.weight)","html":"- \u003cspan class=pl-s1\u003einit\u003c/span\u003e.\u003cspan class=pl-c1\u003ekaiming_uniform_\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweight\u003c/span\u003e)","displayNoNewLineWarning":false,"position":226,"left":224,"right":276},{"stylingDirective":null,"type":"DELETION","blobLineNumber":225,"text":"- init.kaiming_uniform_(self.weight_classifier)","html":"- \u003cspan class=pl-s1\u003einit\u003c/span\u003e.\u003cspan class=pl-c1\u003ekaiming_uniform_\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweight_classifier\u003c/span\u003e)","displayNoNewLineWarning":false,"position":227,"left":225,"right":276},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":277,"text":"+ for i in range(len(self.weight)):","html":"+ \u003cspan class=pl-k\u003efor\u003c/span\u003e \u003cspan class=pl-s1\u003ei\u003c/span\u003e \u003cspan class=pl-c1\u003ein\u003c/span\u003e \u003cspan class=pl-en\u003erange\u003c/span\u003e(\u003cspan class=pl-en\u003elen\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweight\u003c/span\u003e)):","displayNoNewLineWarning":false,"position":228,"left":225,"right":277},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":278,"text":"+ init.orthogonal_(self.weight[i], gain=1.1)","html":"+ \u003cspan class=pl-s1\u003einit\u003c/span\u003e.\u003cspan class=pl-c1\u003eorthogonal_\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweight\u003c/span\u003e[\u003cspan class=pl-s1\u003ei\u003c/span\u003e], \u003cspan class=pl-s1\u003egain\u003c/span\u003e\u003cspan class=pl-c1\u003e=\u003c/span\u003e\u003cspan class=pl-c1\u003e1.1\u003c/span\u003e)","displayNoNewLineWarning":false,"position":229,"left":225,"right":278},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":279,"text":"+ init.xavier_uniform_(self.weight_classifier)","html":"+ \u003cspan class=pl-s1\u003einit\u003c/span\u003e.\u003cspan class=pl-c1\u003exavier_uniform_\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e.\u003cspan class=pl-c1\u003eweight_classifier\u003c/span\u003e)","displayNoNewLineWarning":false,"position":230,"left":225,"right":279},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":280,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":231,"left":226,"right":280},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":281,"text":" def forward(self, user_inputs, item_inputs, user_indices, item_indices):","html":" \u003cspan class=pl-k\u003edef\u003c/span\u003e \u003cspan class=pl-en\u003eforward\u003c/span\u003e(\u003cspan class=pl-s1\u003eself\u003c/span\u003e, \u003cspan class=pl-s1\u003euser_inputs\u003c/span\u003e, \u003cspan class=pl-s1\u003eitem_inputs\u003c/span\u003e, \u003cspan class=pl-s1\u003euser_indices\u003c/span\u003e, \u003cspan class=pl-s1\u003eitem_indices\u003c/span\u003e):","displayNoNewLineWarning":false,"position":232,"left":227,"right":281},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":282,"text":" \"\"\"计算非归一化的分类输出","html":" \u003cspan class=pl-s\u003e\u0026quot;\u0026quot;\u0026quot;计算非归一化的分类输出\u003c/span\u003e","displayNoNewLineWarning":false,"position":233,"left":228,"right":282}],"diffNumber":0,"diffSize":"0 Bytes","isBinary":false,"isTooBig":false,"collapsed":false,"isSubmodule":false,"lineCount":311,"linesChanged":128,"newTreeEntry":{"lineCount":311,"path":"chapter9/autoencoder.py","mode":100644,"isGenerated":false},"oldTreeEntry":{"lineCount":0,"path":"chapter9/autoencoder.py","mode":100644},"linesAdded":91,"linesDeleted":37,"path":"chapter9/autoencoder.py","pathDigest":"17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875","status":"MODIFIED","truncatedReason":null,"oldOid":"125acbaddd1bc69c5bd46dc0f9445ec7865edee5","newOid":"cf0350e449688c82e3d9b111a7bb7814f75668db","copilotChatReference":null,"deletedSha":"125acbaddd1bc69c5bd46dc0f9445ec7865edee5","canToggleRichDiff":false,"defaultToRichDiff":false,"proseDifffHtml":null,"renderInfo":null,"dependencyDiffPath":null,"submodule":null},{"diffLines":[{"stylingDirective":null,"type":"HUNK","blobLineNumber":99,"text":"@@ -100,11 +100,18 @@ def convert_to_homogeneous(user_feature: np.ndarray, movie_feature: np.ndarray):","html":"@@ -100,11 +100,18 @@ def convert_to_homogeneous(user_feature: np.ndarray, movie_feature: np.ndarray):","displayNoNewLineWarning":false,"position":0,"left":99,"right":99},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":100,"text":" user_feature = np.concatenate(","html":" \u003cspan class=pl-s1\u003euser_feature\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enp\u003c/span\u003e.\u003cspan class=pl-c1\u003econcatenate\u003c/span\u003e(","displayNoNewLineWarning":false,"position":1,"left":100,"right":100},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":101,"text":" [user_feature, np.zeros((num_user, movie_feature_dim))], axis=1)","html":" [\u003cspan class=pl-s1\u003euser_feature\u003c/span\u003e, \u003cspan class=pl-s1\u003enp\u003c/span\u003e.\u003cspan class=pl-c1\u003ezeros\u003c/span\u003e((\u003cspan class=pl-s1\u003enum_user\u003c/span\u003e, \u003cspan class=pl-s1\u003emovie_feature_dim\u003c/span\u003e))], \u003cspan class=pl-s1\u003eaxis\u003c/span\u003e\u003cspan class=pl-c1\u003e=\u003c/span\u003e\u003cspan class=pl-c1\u003e1\u003c/span\u003e)","displayNoNewLineWarning":false,"position":2,"left":101,"right":101},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":102,"text":" movie_feature = np.concatenate(","html":" \u003cspan class=pl-s1\u003emovie_feature\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enp\u003c/span\u003e.\u003cspan class=pl-c1\u003econcatenate\u003c/span\u003e(","displayNoNewLineWarning":false,"position":3,"left":102,"right":102},{"stylingDirective":null,"type":"DELETION","blobLineNumber":103,"text":"- [movie_feature, np.zeros((num_movie, user_feature_dim))], axis=1)","html":"- [\u003cspan class=\"pl-s1 x x-first\"\u003emovie_feature\u003c/span\u003e\u003cspan class=\"x x-last\"\u003e, \u003c/span\u003e\u003cspan class=\"pl-s1\"\u003enp\u003c/span\u003e.\u003cspan class=\"pl-c1\"\u003ezeros\u003c/span\u003e((\u003cspan class=\"pl-s1\"\u003enum_movie\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003euser_feature_dim\u003c/span\u003e))], \u003cspan class=\"pl-s1\"\u003eaxis\u003c/span\u003e\u003cspan class=\"pl-c1\"\u003e=\u003c/span\u003e\u003cspan class=\"pl-c1\"\u003e1\u003c/span\u003e)","displayNoNewLineWarning":false,"position":4,"left":103,"right":102},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":103,"text":"+ [np.zeros((num_movie, user_feature_dim)), movie_feature], axis=1)","html":"+ [\u003cspan class=\"pl-s1\"\u003enp\u003c/span\u003e.\u003cspan class=\"pl-c1\"\u003ezeros\u003c/span\u003e((\u003cspan class=\"pl-s1\"\u003enum_movie\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003euser_feature_dim\u003c/span\u003e))\u003cspan class=\"x x-first\"\u003e, \u003c/span\u003e\u003cspan class=\"pl-s1 x x-last\"\u003emovie_feature\u003c/span\u003e], \u003cspan class=\"pl-s1\"\u003eaxis\u003c/span\u003e\u003cspan class=\"pl-c1\"\u003e=\u003c/span\u003e\u003cspan class=\"pl-c1\"\u003e1\u003c/span\u003e)","displayNoNewLineWarning":false,"position":5,"left":103,"right":103},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":104,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":6,"left":104,"right":104},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":105,"text":" return user_feature, movie_feature","html":" \u003cspan class=pl-k\u003ereturn\u003c/span\u003e \u003cspan class=pl-s1\u003euser_feature\u003c/span\u003e, \u003cspan class=pl-s1\u003emovie_feature\u003c/span\u003e","displayNoNewLineWarning":false,"position":7,"left":105,"right":105},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":106,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":8,"left":106,"right":106},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":107,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":9,"left":107,"right":107},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":108,"text":"+def normalize_feature(feature):","html":"+\u003cspan class=pl-k\u003edef\u003c/span\u003e \u003cspan class=pl-en\u003enormalize_feature\u003c/span\u003e(\u003cspan class=pl-s1\u003efeature\u003c/span\u003e):","displayNoNewLineWarning":false,"position":10,"left":107,"right":108},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":109,"text":"+ row_sum = feature.sum(1)","html":"+ \u003cspan class=pl-s1\u003erow_sum\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003efeature\u003c/span\u003e.\u003cspan class=pl-c1\u003esum\u003c/span\u003e(\u003cspan class=pl-c1\u003e1\u003c/span\u003e)","displayNoNewLineWarning":false,"position":11,"left":107,"right":109},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":110,"text":"+ row_sum[row_sum == 0] = np.inf","html":"+ \u003cspan class=pl-s1\u003erow_sum\u003c/span\u003e[\u003cspan class=pl-s1\u003erow_sum\u003c/span\u003e \u003cspan class=pl-c1\u003e==\u003c/span\u003e \u003cspan class=pl-c1\u003e0\u003c/span\u003e] \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003enp\u003c/span\u003e.\u003cspan class=pl-c1\u003einf\u003c/span\u003e","displayNoNewLineWarning":false,"position":12,"left":107,"right":110},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":111,"text":"+ normalized_feat = feature / row_sum.reshape(-1, 1)","html":"+ \u003cspan class=pl-s1\u003enormalized_feat\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003efeature\u003c/span\u003e \u003cspan class=pl-c1\u003e/\u003c/span\u003e \u003cspan class=pl-s1\u003erow_sum\u003c/span\u003e.\u003cspan class=pl-c1\u003ereshape\u003c/span\u003e(\u003cspan class=pl-c1\u003e-\u003c/span\u003e\u003cspan class=pl-c1\u003e1\u003c/span\u003e, \u003cspan class=pl-c1\u003e1\u003c/span\u003e)","displayNoNewLineWarning":false,"position":13,"left":107,"right":111},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":112,"text":"+ return normalized_feat","html":"+ \u003cspan class=pl-k\u003ereturn\u003c/span\u003e \u003cspan class=pl-s1\u003enormalized_feat\u003c/span\u003e","displayNoNewLineWarning":false,"position":14,"left":107,"right":112},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":113,"text":"+","html":"+","displayNoNewLineWarning":false,"position":15,"left":107,"right":113},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":114,"text":"+","html":"+","displayNoNewLineWarning":false,"position":16,"left":107,"right":114},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":115,"text":" class MovielensDataset(object):","html":" \u003cspan class=pl-k\u003eclass\u003c/span\u003e \u003cspan class=pl-v\u003eMovielensDataset\u003c/span\u003e(\u003cspan class=pl-s1\u003eobject\u003c/span\u003e):","displayNoNewLineWarning":false,"position":17,"left":108,"right":115},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":116,"text":" url = \"http://files.grouplens.org/datasets/movielens/ml-100k.zip\"","html":" \u003cspan class=pl-s1\u003eurl\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s\u003e\u0026quot;http://files.grouplens.org/datasets/movielens/ml-100k.zip\u0026quot;\u003c/span\u003e","displayNoNewLineWarning":false,"position":18,"left":109,"right":116},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":117,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":19,"left":110,"right":117},{"stylingDirective":null,"type":"HUNK","blobLineNumber":143,"text":"@@ -137,6 +144,8 @@ def build_graph(edge_df: pd.DataFrame, user_df: pd.DataFrame,","html":"@@ -137,6 +144,8 @@ def build_graph(edge_df: pd.DataFrame, user_df: pd.DataFrame,","displayNoNewLineWarning":false,"position":20,"left":136,"right":143},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":144,"text":" # node property feature","html":" \u003cspan class=pl-c\u003e# node property feature\u003c/span\u003e","displayNoNewLineWarning":false,"position":21,"left":137,"right":144},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":145,"text":" user_side_feature = get_user_side_feature(node_user)","html":" \u003cspan class=pl-s1\u003euser_side_feature\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-en\u003eget_user_side_feature\u003c/span\u003e(\u003cspan class=pl-s1\u003enode_user\u003c/span\u003e)","displayNoNewLineWarning":false,"position":22,"left":138,"right":145},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":146,"text":" movie_side_feature = get_movie_side_feature(node_movie)","html":" \u003cspan class=pl-s1\u003emovie_side_feature\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-en\u003eget_movie_side_feature\u003c/span\u003e(\u003cspan class=pl-s1\u003enode_movie\u003c/span\u003e)","displayNoNewLineWarning":false,"position":23,"left":139,"right":146},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":147,"text":"+ user_side_feature = normalize_feature(user_side_feature)","html":"+ \u003cspan class=pl-s1\u003euser_side_feature\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-en\u003enormalize_feature\u003c/span\u003e(\u003cspan class=pl-s1\u003euser_side_feature\u003c/span\u003e)","displayNoNewLineWarning":false,"position":24,"left":139,"right":147},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":148,"text":"+ movie_side_feature = normalize_feature(movie_side_feature)","html":"+ \u003cspan class=pl-s1\u003emovie_side_feature\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-en\u003enormalize_feature\u003c/span\u003e(\u003cspan class=pl-s1\u003emovie_side_feature\u003c/span\u003e)","displayNoNewLineWarning":false,"position":25,"left":139,"right":148},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":149,"text":" user_side_feature, movie_side_feature = convert_to_homogeneous(user_side_feature,","html":" \u003cspan class=pl-s1\u003euser_side_feature\u003c/span\u003e, \u003cspan class=pl-s1\u003emovie_side_feature\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-en\u003econvert_to_homogeneous\u003c/span\u003e(\u003cspan class=pl-s1\u003euser_side_feature\u003c/span\u003e,","displayNoNewLineWarning":false,"position":26,"left":140,"right":149},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":150,"text":" movie_side_feature)","html":" \u003cspan class=pl-s1\u003emovie_side_feature\u003c/span\u003e)","displayNoNewLineWarning":false,"position":27,"left":141,"right":150},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":151,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":28,"left":142,"right":151}],"diffNumber":1,"diffSize":"0 Bytes","isBinary":false,"isTooBig":false,"collapsed":false,"isSubmodule":false,"lineCount":225,"linesChanged":11,"newTreeEntry":{"lineCount":225,"path":"chapter9/dataset.py","mode":100644,"isGenerated":false},"oldTreeEntry":{"lineCount":0,"path":"chapter9/dataset.py","mode":100644},"linesAdded":10,"linesDeleted":1,"path":"chapter9/dataset.py","pathDigest":"3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce","status":"MODIFIED","truncatedReason":null,"oldOid":"125acbaddd1bc69c5bd46dc0f9445ec7865edee5","newOid":"cf0350e449688c82e3d9b111a7bb7814f75668db","copilotChatReference":null,"deletedSha":"125acbaddd1bc69c5bd46dc0f9445ec7865edee5","canToggleRichDiff":false,"defaultToRichDiff":false,"proseDifffHtml":null,"renderInfo":null,"dependencyDiffPath":null,"submodule":null},{"path":"chapter9/main.py","pathDigest":"66f4719ba769eb946d051e8d0575a2693423133c016417e0a0ffc04a054587bf","status":"MODIFIED"}],"splitViewPreference":"unified","ignoreWhitespace":false,"commentsPreference":"visible","diffLineSpacingPreference":"relaxed","useMonospaceFont":false,"pasteUrlLinkAsPlainText":false,"userNotices":[],"path":"/FighterLYL/GraphNeuralNetwork/commit/cf0350e449688c82e3d9b111a7bb7814f75668db","fileTreeExpanded":true,"headerInfo":{"additions":143,"deletions":75,"filesChanged":3,"filesChangedString":"3"},"moreDiffsToLoad":true,"asyncDiffLoadInfo":{"startIndex":2,"truncated":false,"byteCount":11027,"lineShownCount":263},"commentInfo":{"canComment":false,"locked":false,"canLock":false,"repoArchived":false},"csrf_tokens":{"/users/diffview?diff=split":{"post":"hzxDmrO3w1UsRBYEkZeq488VTLV3to0-MCpH0_dCheg2Q7UiVdh5h42ikaa_VnDNhIpc_d1rPuxJ0vX2awHtEg"},"/users/diffview?diff=unified":{"post":"1iZrKIpX2pGuz_izFxN0bolVb8lwV006-IwyLsLyBeVnWZ2QbDhgQw8pfxE50q5Awsp_gdqK_uiBdIALXrFtHw"},"/notifications/thread":{"post":"Jd1sZDU6Am79kEeydjCCgsJmmHaqZyOyFtKbv0g0DWnk7SZZ8tMGmhqCcyWzV_TG69EvhkJjJusZZQ2LBxB9VQ"}}},"title":"更新chapter9 code,与原作实现保持一致 · FighterLYL/GraphNeuralNetwork@cf0350e","appPayload":{"helpUrl":"https://docs.github.com","findInDiffWorkerPath":"/assets-cdn/worker/find-in-diff-worker-6dcb06aa9fad.js","enabled_features":{"diff_ux_refresh_beta":false,"diff_inline_comments":false,"diff_ux_refresh_ssr_five":false,"diff_ux_refresh_ssr_ten":false}}}</script> <div data-target="react-app.reactRoot"><style data-styled="true" data-styled-version="5.3.11">.hOfjFo{padding:0;}/*!sc*/ .oDGAe{max-width:100%;margin-left:auto;margin-right:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}/*!sc*/ .eQkynW{width:100%;margin-bottom:0;}/*!sc*/ .kkWQEA{padding:16px;}/*!sc*/ @media screen and (min-width:544px){}/*!sc*/ @media screen and (min-width:768px){}/*!sc*/ @media screen and (min-width:1012px){.kkWQEA{padding:24px;}}/*!sc*/ .fHrHav{display:grid;grid-template-columns:auto auto auto auto 1fr;grid-template-areas:'context-area context-area context-area context-area context-area' 'leading-action breadcrumbs title-area trailing-action actions' 'description description description description description' 'navigation navigation navigation navigation navigation';}/*!sc*/ .fHrHav:has([data-component="TitleArea"][data-size-variant="large"]){font-size:var(--custom-font-size,var(--text-title-size-large,2rem));line-height:var(--custom-line-height,var(--text-title-lineHeight-large,1.5));font-weight:var(--custom-font-weight,var(--base-text-weight-normal,400));--title-line-height:var(--custom-line-height,var(--text-title-lineHeight-large,1.5));}/*!sc*/ .fHrHav:has([data-component="TitleArea"][data-size-variant="medium"]){font-size:var(--custom-font-size,var(--text-title-size-medium,1.25rem));line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6));font-weight:var(--custom-font-weight,var(--base-text-weight-semibold,600));--title-line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6));}/*!sc*/ .fHrHav:has([data-component="TitleArea"][data-size-variant="subtitle"]){font-size:var(--custom-font-size,var(--text-title-size-medium,1.25rem));line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6));font-weight:var(--custom-font-weight,var(--base-text-weight-normal,400));--title-line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6));}/*!sc*/ .fHrHav [data-component="PH_LeadingAction"],.fHrHav [data-component="PH_TrailingAction"],.fHrHav [data-component="PH_Actions"],.fHrHav [data-component="PH_LeadingVisual"],.fHrHav [data-component="PH_TrailingVisual"]{height:calc(var(--title-line-height) * 1em);}/*!sc*/ .RAkv{grid-row:2;grid-area:title-area;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:0.5rem;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-width:0;}/*!sc*/ .gTYCFh{display:block;-webkit-order:1;-ms-flex-order:1;order:1;font-size:inherit;font-weight:inherit;min-width:0;}/*!sc*/ .bnmsDs{grid-row:2;grid-area:actions;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding-left:0.5rem;gap:0.5rem;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-box-pack:right;-webkit-justify-content:right;-ms-flex-pack:right;justify-content:right;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ .fyKNMY[data-size="medium"]{color:var(--fgColor-default,var(--color-fg-default,#1F2328));}/*!sc*/ .gUkoLg{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}/*!sc*/ .kScZQx{grid-row:3;grid-area:description;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-top:0.5rem;gap:0.5rem;font-weight:initial;line-height:var(--text-body-lineHeight-medium,1.4285);font-size:var(--text-body-size-medium,0.875rem);}/*!sc*/ .dpBUfI{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ @media screen and (min-width:544px){.dpBUfI{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}/*!sc*/ @media screen and (min-width:768px){.dpBUfI{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}/*!sc*/ @media screen and (min-width:1012px){.dpBUfI{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}}/*!sc*/ .hKWjvQ{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ .cvdqJW{width:20px;height:20px;margin-right:8px;margin-top:-1px;margin-left:1px;}/*!sc*/ .dkaFxu{font-weight:600;white-space:nowrap;color:var(--fgColor-default,var(--color-fg-default,#1F2328));}/*!sc*/ .dkaFxu:hover{color:var(--fgColor-default,var(--color-fg-default,#1F2328));-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .irPhWZ{width:60px;}/*!sc*/ .dNbsEP{width:62px;}/*!sc*/ .kHfwUD{width:60px;height:22px;}/*!sc*/ .bMUyWp{margin-left:0;margin-right:0;display:block;height:1px;background-color:var(--borderColor-default,var(--color-border-default,#d0d7de));margin-top:0;}/*!sc*/ @media screen and (min-width:768px){.bMUyWp{margin-left:0 !important;margin-right:0 !important;}}/*!sc*/ .kowOcT{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1 1 100%;-ms-flex:1 1 100%;flex:1 1 100%;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:100%;}/*!sc*/ .fXGBwN{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-order:1;-ms-flex-order:1;order:1;width:100%;margin-left:0;margin-right:0;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-bottom:0;contain:content;}/*!sc*/ @media screen and (min-width:544px){.fXGBwN{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}/*!sc*/ @media screen and (min-width:768px){.fXGBwN{width:auto;margin-top:0 !important;margin-bottom:0 !important;position:-webkit-sticky;position:sticky;top:0px;max-height:var(--sticky-pane-height);-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;margin-right:0;}}/*!sc*/ @media screen and (max-width:768px){.fXGBwN{display:none;}}/*!sc*/ @media screen and (min-width:769px){.fXGBwN{height:100vh;max-height:100vh !important;}}/*!sc*/ .hPvFuC{margin-left:0;margin-right:0;display:none;margin-top:0;}/*!sc*/ @media screen and (min-width:768px){.hPvFuC{margin-left:0 !important;margin-right:0 !important;}}/*!sc*/ .glhAZp{--pane-min-width:256px;--pane-max-width-diff:511px;--pane-max-width:calc(100vw - var(--pane-max-width-diff));width:100%;padding:16px;}/*!sc*/ @media screen and (min-width:544px){}/*!sc*/ @media screen and (min-width:768px){.glhAZp{width:clamp(var(--pane-min-width),var(--pane-width),var(--pane-max-width));overflow:auto;}}/*!sc*/ @media screen and (min-width:1012px){.glhAZp{padding:24px;}}/*!sc*/ @media screen and (min-width:1280px){.glhAZp{--pane-max-width-diff:959px;}}/*!sc*/ .bTBnTW{height:100%;position:relative;display:none;margin-left:0;}/*!sc*/ .bHLmSv{position:absolute;inset:0 -2px;cursor:col-resize;background-color:transparent;-webkit-transition-delay:0.1s;transition-delay:0.1s;}/*!sc*/ .bHLmSv:hover{background-color:var(--bgColor-neutral-muted,var(--color-neutral-muted,rgba(175,184,193,0.2)));}/*!sc*/ .sYjuB{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-order:2;-ms-flex-order:2;order:2;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;min-width:1px;padding:16px;padding-top:0;}/*!sc*/ @media screen and (min-width:544px){.sYjuB{padding:16px;padding-top:0;}}/*!sc*/ @media screen and (min-width:768px){.sYjuB{padding:16px;padding-top:0;}}/*!sc*/ @media screen and (min-width:1012px){.sYjuB{padding:24px;padding-top:0;}}/*!sc*/ .FxAyp{width:100%;max-width:100%;margin-left:auto;margin-right:auto;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;padding:0;}/*!sc*/ .hqtbbn{bottom:0 !important;-webkit-clip:rect(1px,1px,1px,1px);clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:84px;position:absolute;width:320px;}/*!sc*/ data-styled.g1[id="Box-sc-g0xbh4-0"]{content:"hOfjFo,oDGAe,eQkynW,kkWQEA,fHrHav,RAkv,gTYCFh,bnmsDs,fyKNMY,gUkoLg,kScZQx,dpBUfI,hKWjvQ,cvdqJW,dkaFxu,irPhWZ,dNbsEP,kHfwUD,bMUyWp,kowOcT,fXGBwN,hPvFuC,glhAZp,bTBnTW,bHLmSv,sYjuB,FxAyp,hqtbbn,"}/*!sc*/ .fhNCdb:not(:focus):not(:active):not(:focus-within){-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px;}/*!sc*/ data-styled.g2[id="VisuallyHidden__StyledVisuallyHidden-sc-1rhpuyf-0"]{content:"fhNCdb,"}/*!sc*/ .hWqAbU:where([data-size='small']){font-size:var(--text-body-size-small,0.75rem);line-height:var(--text-body-lineHeight-small,1.6666);}/*!sc*/ .hWqAbU:where([data-size='medium']){font-size:var(--text-body-size-medium,0.875rem);line-height:var(--text-body-lineHeight-medium,1.4285);}/*!sc*/ .hWqAbU:where([data-size='large']){font-size:var(--text-body-size-large,1rem);line-height:var(--text-body-lineHeight-large,1.5);}/*!sc*/ .hWqAbU:where([data-weight='light']){font-weight:var(--base-text-weight-light,300);}/*!sc*/ .hWqAbU:where([data-weight='normal']){font-weight:var(--base-text-weight-normal,400);}/*!sc*/ .hWqAbU:where([data-weight='medium']){font-weight:var(--base-text-weight-medium,500);}/*!sc*/ .hWqAbU:where([data-weight='semibold']){font-weight:var(--base-text-weight-semibold,600);}/*!sc*/ data-styled.g5[id="Text__StyledText-sc-17v1xeu-0"]{content:"hWqAbU,"}/*!sc*/ .brGdpi{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;-webkit-clip:rect(0,0,0,0);clip:rect(0,0,0,0);white-space:nowrap;border-width:0;}/*!sc*/ data-styled.g6[id="_VisuallyHidden__VisuallyHidden-sc-11jhm7a-0"]{content:"brGdpi,"}/*!sc*/ .jkNcAv{border:0;font-size:inherit;font-family:inherit;background-color:transparent;-webkit-appearance:none;color:inherit;width:100%;}/*!sc*/ .jkNcAv:focus{outline:0;}/*!sc*/ data-styled.g13[id="UnstyledTextInput__ToggledUnstyledTextInput-sc-14ypya-0"]{content:"jkNcAv,"}/*!sc*/ .jMFjfB{font-size:14px;line-height:var(--base-size-20);color:var(--fgColor-default,var(--color-fg-default,#1F2328));vertical-align:middle;background-color:var(--bgColor-default,var(--color-canvas-default,#ffffff));border:1px solid var(--control-borderColor-rest,var(--borderColor-default,var(--color-border-default,#d0d7de)));border-radius:6px;outline:none;box-shadow:var(--shadow-inset,var(--color-primer-shadow-inset,inset 0 1px 0 rgba(208,215,222,0.2)));display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;min-height:var(--base-size-32);overflow:hidden;--inner-action-size:var(--base-size-24);}/*!sc*/ .jMFjfB input,.jMFjfB textarea{cursor:text;}/*!sc*/ .jMFjfB select{cursor:pointer;}/*!sc*/ .jMFjfB input::-webkit-input-placeholder,.jMFjfB textarea::-webkit-input-placeholder,.jMFjfB select::-webkit-input-placeholder{color:var(---control-fgColor-placeholder,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .jMFjfB input::-moz-placeholder,.jMFjfB textarea::-moz-placeholder,.jMFjfB select::-moz-placeholder{color:var(---control-fgColor-placeholder,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .jMFjfB input:-ms-input-placeholder,.jMFjfB textarea:-ms-input-placeholder,.jMFjfB select:-ms-input-placeholder{color:var(---control-fgColor-placeholder,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .jMFjfB input::placeholder,.jMFjfB textarea::placeholder,.jMFjfB select::placeholder{color:var(---control-fgColor-placeholder,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .jMFjfB:where([data-trailing-action][data-focused]),.jMFjfB:where(:not([data-trailing-action]):focus-within){border-color:var(--fgColor-accent,var(--color-accent-fg,#0969da));outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-1px;}/*!sc*/ .jMFjfB > textarea{padding:var(--base-size-12);}/*!sc*/ .jMFjfB:where([data-contrast]){background-color:var(--bgColor-inset,var(--color-canvas-inset,#f6f8fa));}/*!sc*/ .jMFjfB:where([data-disabled]){color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));background-color:var(--control-bgColor-disabled,var(--color-input-disabled-bg,rgba(175,184,193,0.2)));box-shadow:none;border-color:var(--control-borderColor-disabled,var(--borderColor-default,var(--color-border-default,#d0d7de)));}/*!sc*/ .jMFjfB:where([data-disabled]) input,.jMFjfB:where([data-disabled]) textarea,.jMFjfB:where([data-disabled]) select{cursor:not-allowed;}/*!sc*/ .jMFjfB:where([data-monospace]){font-family:var(--fontStack-monospace,SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace);}/*!sc*/ .jMFjfB:where([data-validation='error']){border-color:var(--borderColor-danger-emphasis,var(--color-danger-emphasis,#cf222e));}/*!sc*/ .jMFjfB:where([data-validation='error']):where([data-trailing-action][data-focused]),.jMFjfB:where([data-validation='error']):where(:not([data-trailing-action])):focus-within{border-color:var(--fgColor-accent,var(--color-accent-fg,#0969da));outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-1px;}/*!sc*/ .jMFjfB:where([data-validation='success']){border-color:var(--bgColor-success-emphasis,var(--color-success-emphasis,#1f883d));}/*!sc*/ .jMFjfB:where([data-block]){width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;}/*!sc*/ @media (min-width:768px){.jMFjfB{font-size:var(--text-body-size-medium);}}/*!sc*/ .jMFjfB:where([data-size='small']){--inner-action-size:var(--base-size-20);min-height:var(--base-size-28);padding-top:3px;padding-right:var(--base-size-8);padding-bottom:3px;padding-left:var(--base-size-8);font-size:var(--text-body-size-small);line-height:var(--base-size-20);}/*!sc*/ .jMFjfB:where([data-size='large']){--inner-action-size:var(--base-size-28);height:var(--base-size-40);padding-top:10px;padding-right:var(--base-size-8);padding-bottom:10px;padding-left:var(--base-size-8);}/*!sc*/ .jMFjfB:where([data-variant='small']){min-height:28px;padding-top:3px;padding-right:var(--base-size-8);padding-bottom:3px;padding-left:var(--base-size-8);font-size:(--text-body-size-small);line-height:var(--base-size-20);}/*!sc*/ .jMFjfB:where([data-variant='large']){padding-top:10px;padding-right:var(--base-size-8);padding-bottom:10px;padding-left:var(--base-size-8);font-size:var(--text-title-size-medium);}/*!sc*/ data-styled.g14[id="TextInputWrapper__StyledTextInputBaseWrapper-sc-1mqhpbi-0"]{content:"jMFjfB,"}/*!sc*/ .GvHdV{background-repeat:no-repeat;background-position:right 8px center;padding-right:0;padding-left:0;}/*!sc*/ .GvHdV > :not(:last-child){margin-right:8px;}/*!sc*/ .GvHdV .TextInput-icon,.GvHdV .TextInput-action{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}/*!sc*/ .GvHdV > input,.GvHdV > select{padding-right:0;padding-left:0;}/*!sc*/ .GvHdV:where([data-leading-visual]){padding-left:var(--base-size-12);}/*!sc*/ .GvHdV:where([data-trailing-visual]:not([data-trailing-action])){padding-right:var(--base-size-12);}/*!sc*/ .GvHdV:where(:not([data-leading-visual])) > input,.GvHdV:where(:not([data-leading-visual])) > select{padding-left:var(--base-size-12);}/*!sc*/ .GvHdV:where(:not([data-trailing-visual]):not([data-trailing-action])) > input,.GvHdV:where(:not([data-trailing-visual]):not([data-trailing-action])) > select{padding-right:var(--base-size-12);}/*!sc*/ data-styled.g15[id="TextInputWrapper__StyledTextInputWrapper-sc-1mqhpbi-1"]{content:"GvHdV,"}/*!sc*/ .jOyaRH{display:none;}/*!sc*/ .jOyaRH[popover]{position:absolute;padding:0.5em 0.75em;width:-webkit-max-content;width:-moz-max-content;width:max-content;margin:auto;-webkit-clip:auto;clip:auto;white-space:normal;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:subpixel-antialiased;color:var(--tooltip-fgColor,var(--fgColor-onEmphasis,var(--color-fg-on-emphasis,#ffffff)));text-align:center;word-wrap:break-word;background:var(--tooltip-bgColor,var(--bgColor-emphasis,var(--color-neutral-emphasis-plus,#24292f)));border-radius:6px;border:0;opacity:0;max-width:250px;inset:auto;overflow:visible;}/*!sc*/ .jOyaRH[popover]:popover-open{display:block;}/*!sc*/ .jOyaRH[popover].\:popover-open{display:block;}/*!sc*/ @media (forced-colors:active){.jOyaRH{outline:1px solid transparent;}}/*!sc*/ .jOyaRH::after{position:absolute;display:block;right:0;left:0;height:var(--overlay-offset,0.25rem);content:'';}/*!sc*/ .jOyaRH[data-direction='n']::after,.jOyaRH[data-direction='ne']::after,.jOyaRH[data-direction='nw']::after{top:100%;}/*!sc*/ .jOyaRH[data-direction='s']::after,.jOyaRH[data-direction='se']::after,.jOyaRH[data-direction='sw']::after{bottom:100%;}/*!sc*/ .jOyaRH[data-direction='w']::after{position:absolute;display:block;height:100%;width:8px;content:'';bottom:0;left:100%;}/*!sc*/ .jOyaRH[data-direction='e']::after{position:absolute;display:block;height:100%;width:8px;content:'';bottom:0;right:100%;margin-left:-8px;}/*!sc*/ @-webkit-keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}/*!sc*/ @keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}/*!sc*/ .jOyaRH:popover-open,.jOyaRH:popover-open::before{-webkit-animation-name:tooltip-appear;animation-name:tooltip-appear;-webkit-animation-duration:0.1s;animation-duration:0.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-animation-delay:0s;animation-delay:0s;}/*!sc*/ .jOyaRH.\:popover-open,.jOyaRH.\:popover-open::before{-webkit-animation-name:tooltip-appear;animation-name:tooltip-appear;-webkit-animation-duration:0.1s;animation-duration:0.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-animation-delay:0s;animation-delay:0s;}/*!sc*/ data-styled.g16[id="Tooltip__StyledTooltip-sc-e45c7z-0"]{content:"jOyaRH,"}/*!sc*/ .jjwhNb{position:relative;display:inline-block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}/*!sc*/ .jjwhNb::after{position:absolute;z-index:1000000;display:none;padding:0.5em 0.75em;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:subpixel-antialiased;color:var(--tooltip-fgColor,var(--fgColor-onEmphasis,var(--color-fg-on-emphasis,#ffffff)));text-align:center;-webkit-text-decoration:none;text-decoration:none;text-shadow:none;text-transform:none;-webkit-letter-spacing:normal;-moz-letter-spacing:normal;-ms-letter-spacing:normal;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background:var(--tooltip-bgColor,var(--bgColor-emphasis,var(--color-neutral-emphasis-plus,#24292f)));border-radius:6px;opacity:0;}/*!sc*/ @-webkit-keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}/*!sc*/ @keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}/*!sc*/ .jjwhNb:hover::after,.jjwhNb:active::after,.jjwhNb:focus::after,.jjwhNb:focus-within::after{display:inline-block;-webkit-text-decoration:none;text-decoration:none;-webkit-animation-name:tooltip-appear;animation-name:tooltip-appear;-webkit-animation-duration:0.1s;animation-duration:0.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-animation-delay:0s;animation-delay:0s;}/*!sc*/ .jjwhNb.tooltipped-no-delay:hover::after,.jjwhNb.tooltipped-no-delay:active::after,.jjwhNb.tooltipped-no-delay:focus::after,.jjwhNb.tooltipped-no-delay:focus-within::after{-webkit-animation-delay:0s;animation-delay:0s;}/*!sc*/ .jjwhNb.tooltipped-multiline:hover::after,.jjwhNb.tooltipped-multiline:active::after,.jjwhNb.tooltipped-multiline:focus::after,.jjwhNb.tooltipped-multiline:focus-within::after{display:table-cell;}/*!sc*/ .jjwhNb.tooltipped-s::after,.jjwhNb.tooltipped-se::after,.jjwhNb.tooltipped-sw::after{top:100%;right:50%;margin-top:6px;}/*!sc*/ .jjwhNb.tooltipped-se::after{right:auto;left:50%;margin-left:-16px;}/*!sc*/ .jjwhNb.tooltipped-sw::after{margin-right:-16px;}/*!sc*/ .jjwhNb.tooltipped-n::after,.jjwhNb.tooltipped-ne::after,.jjwhNb.tooltipped-nw::after{right:50%;bottom:100%;margin-bottom:6px;}/*!sc*/ .jjwhNb.tooltipped-ne::after{right:auto;left:50%;margin-left:-16px;}/*!sc*/ .jjwhNb.tooltipped-nw::after{margin-right:-16px;}/*!sc*/ .jjwhNb.tooltipped-s::after,.jjwhNb.tooltipped-n::after{-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%);}/*!sc*/ .jjwhNb.tooltipped-w::after{right:100%;bottom:50%;margin-right:6px;-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);}/*!sc*/ .jjwhNb.tooltipped-e::after{bottom:50%;left:100%;margin-left:6px;-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);}/*!sc*/ .jjwhNb.tooltipped-multiline::after{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;word-wrap:break-word;white-space:pre-line;border-collapse:separate;}/*!sc*/ .jjwhNb.tooltipped-multiline.tooltipped-s::after,.jjwhNb.tooltipped-multiline.tooltipped-n::after{right:auto;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);}/*!sc*/ .jjwhNb.tooltipped-multiline.tooltipped-w::after,.jjwhNb.tooltipped-multiline.tooltipped-e::after{right:100%;}/*!sc*/ .jjwhNb.tooltipped-align-right-2::after{right:0;margin-right:0;}/*!sc*/ .jjwhNb.tooltipped-align-left-2::after{left:0;margin-left:0;}/*!sc*/ .hWlpPn{position:relative;display:inline-block;}/*!sc*/ .hWlpPn::after{position:absolute;z-index:1000000;display:none;padding:0.5em 0.75em;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:subpixel-antialiased;color:var(--tooltip-fgColor,var(--fgColor-onEmphasis,var(--color-fg-on-emphasis,#ffffff)));text-align:center;-webkit-text-decoration:none;text-decoration:none;text-shadow:none;text-transform:none;-webkit-letter-spacing:normal;-moz-letter-spacing:normal;-ms-letter-spacing:normal;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background:var(--tooltip-bgColor,var(--bgColor-emphasis,var(--color-neutral-emphasis-plus,#24292f)));border-radius:6px;opacity:0;}/*!sc*/ @-webkit-keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}/*!sc*/ @keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}/*!sc*/ .hWlpPn:hover::after,.hWlpPn:active::after,.hWlpPn:focus::after,.hWlpPn:focus-within::after{display:inline-block;-webkit-text-decoration:none;text-decoration:none;-webkit-animation-name:tooltip-appear;animation-name:tooltip-appear;-webkit-animation-duration:0.1s;animation-duration:0.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-animation-delay:0s;animation-delay:0s;}/*!sc*/ .hWlpPn.tooltipped-no-delay:hover::after,.hWlpPn.tooltipped-no-delay:active::after,.hWlpPn.tooltipped-no-delay:focus::after,.hWlpPn.tooltipped-no-delay:focus-within::after{-webkit-animation-delay:0s;animation-delay:0s;}/*!sc*/ .hWlpPn.tooltipped-multiline:hover::after,.hWlpPn.tooltipped-multiline:active::after,.hWlpPn.tooltipped-multiline:focus::after,.hWlpPn.tooltipped-multiline:focus-within::after{display:table-cell;}/*!sc*/ .hWlpPn.tooltipped-s::after,.hWlpPn.tooltipped-se::after,.hWlpPn.tooltipped-sw::after{top:100%;right:50%;margin-top:6px;}/*!sc*/ .hWlpPn.tooltipped-se::after{right:auto;left:50%;margin-left:-16px;}/*!sc*/ .hWlpPn.tooltipped-sw::after{margin-right:-16px;}/*!sc*/ .hWlpPn.tooltipped-n::after,.hWlpPn.tooltipped-ne::after,.hWlpPn.tooltipped-nw::after{right:50%;bottom:100%;margin-bottom:6px;}/*!sc*/ .hWlpPn.tooltipped-ne::after{right:auto;left:50%;margin-left:-16px;}/*!sc*/ .hWlpPn.tooltipped-nw::after{margin-right:-16px;}/*!sc*/ .hWlpPn.tooltipped-s::after,.hWlpPn.tooltipped-n::after{-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%);}/*!sc*/ .hWlpPn.tooltipped-w::after{right:100%;bottom:50%;margin-right:6px;-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);}/*!sc*/ .hWlpPn.tooltipped-e::after{bottom:50%;left:100%;margin-left:6px;-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);}/*!sc*/ .hWlpPn.tooltipped-multiline::after{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;word-wrap:break-word;white-space:pre-line;border-collapse:separate;}/*!sc*/ .hWlpPn.tooltipped-multiline.tooltipped-s::after,.hWlpPn.tooltipped-multiline.tooltipped-n::after{right:auto;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);}/*!sc*/ .hWlpPn.tooltipped-multiline.tooltipped-w::after,.hWlpPn.tooltipped-multiline.tooltipped-e::after{right:100%;}/*!sc*/ .hWlpPn.tooltipped-align-right-2::after{right:0;margin-right:0;}/*!sc*/ .hWlpPn.tooltipped-align-left-2::after{left:0;margin-left:0;}/*!sc*/ data-styled.g17[id="Tooltip__TooltipBase-sc-17tf59c-0"]{content:"jjwhNb,hWlpPn,"}/*!sc*/ .irithh{position:relative;overflow:hidden;-webkit-mask-image:radial-gradient(white,black);mask-image:radial-gradient(white,black);background-color:var(--bgColor-neutral-muted,var(--color-neutral-subtle,rgba(234,238,242,0.5)));border-radius:3px;display:block;height:1.2em;width:60px;}/*!sc*/ .irithh::after{-webkit-animation:crVFvv 1.5s infinite linear;animation:crVFvv 1.5s infinite linear;background:linear-gradient(90deg,transparent,var(--bgColor-neutral-muted,var(--color-neutral-subtle,rgba(234,238,242,0.5))),transparent);content:'';position:absolute;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);bottom:0;left:0;right:0;top:0;}/*!sc*/ .ihfxfT{position:relative;overflow:hidden;-webkit-mask-image:radial-gradient(white,black);mask-image:radial-gradient(white,black);background-color:var(--bgColor-neutral-muted,var(--color-neutral-subtle,rgba(234,238,242,0.5)));border-radius:3px;display:block;height:1.2em;width:62px;}/*!sc*/ .ihfxfT::after{-webkit-animation:crVFvv 1.5s infinite linear;animation:crVFvv 1.5s infinite linear;background:linear-gradient(90deg,transparent,var(--bgColor-neutral-muted,var(--color-neutral-subtle,rgba(234,238,242,0.5))),transparent);content:'';position:absolute;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);bottom:0;left:0;right:0;top:0;}/*!sc*/ .kRBfod{position:relative;overflow:hidden;-webkit-mask-image:radial-gradient(white,black);mask-image:radial-gradient(white,black);background-color:var(--bgColor-neutral-muted,var(--color-neutral-subtle,rgba(234,238,242,0.5)));border-radius:3px;display:block;height:1.2em;width:60px;height:22px;}/*!sc*/ .kRBfod::after{-webkit-animation:crVFvv 1.5s infinite linear;animation:crVFvv 1.5s infinite linear;background:linear-gradient(90deg,transparent,var(--bgColor-neutral-muted,var(--color-neutral-subtle,rgba(234,238,242,0.5))),transparent);content:'';position:absolute;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);bottom:0;left:0;right:0;top:0;}/*!sc*/ data-styled.g71[id="LoadingSkeleton-sc-695d630a-0"]{content:"irithh,ihfxfT,kRBfod,"}/*!sc*/ body[data-page-layout-dragging="true"]{cursor:col-resize;}/*!sc*/ body[data-page-layout-dragging="true"] *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}/*!sc*/ data-styled.g108[id="sc-global-gbKrvU1"]{content:"sc-global-gbKrvU1,"}/*!sc*/ .jgdSGi{list-style:none;padding:0;margin:0;}/*!sc*/ .jgdSGi .PRIVATE_TreeView-item{outline:none;}/*!sc*/ .jgdSGi .PRIVATE_TreeView-item:focus-visible > div,.jgdSGi .PRIVATE_TreeView-item.focus-visible > div{box-shadow:inset 0 0 0 2px var(--fgColor-accent,var(--color-accent-fg,#0969da));}/*!sc*/ @media (forced-colors:active){.jgdSGi .PRIVATE_TreeView-item:focus-visible > div,.jgdSGi .PRIVATE_TreeView-item.focus-visible > div{outline:2px solid HighlightText;outline-offset:-2;}}/*!sc*/ .jgdSGi .PRIVATE_TreeView-item[data-has-leading-action]{--has-leading-action:1;}/*!sc*/ .jgdSGi .PRIVATE_TreeView-item-container{--level:1;--toggle-width:1rem;--min-item-height:2rem;position:relative;display:grid;--leading-action-width:calc(var(--has-leading-action,0) * 1.5rem);--spacer-width:calc(calc(var(--level) - 1) * (var(--toggle-width) / 2));grid-template-columns:var(--spacer-width) var(--leading-action-width) var(--toggle-width) 1fr;grid-template-areas:'spacer leadingAction toggle content';width:100%;font-size:14px;color:var(--fgColor-default,var(--color-fg-default,#1F2328));border-radius:6px;cursor:pointer;}/*!sc*/ .jgdSGi .PRIVATE_TreeView-item-container:hover{background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg,rgba(208,215,222,0.32)));}/*!sc*/ @media (forced-colors:active){.jgdSGi .PRIVATE_TreeView-item-container:hover{outline:2px solid transparent;outline-offset:-2px;}}/*!sc*/ @media (pointer:coarse){.jgdSGi .PRIVATE_TreeView-item-container{--toggle-width:1.5rem;--min-item-height:2.75rem;}}/*!sc*/ .jgdSGi .PRIVATE_TreeView-item-container:has(.PRIVATE_TreeView-item-skeleton):hover{background-color:transparent;cursor:default;}/*!sc*/ @media (forced-colors:active){.jgdSGi .PRIVATE_TreeView-item-container:has(.PRIVATE_TreeView-item-skeleton):hover{outline:none;}}/*!sc*/ .jgdSGi[data-omit-spacer='true'] .PRIVATE_TreeView-item-container{grid-template-columns:0 0 0 1fr;}/*!sc*/ .jgdSGi .PRIVATE_TreeView-item[aria-current='true'] > .PRIVATE_TreeView-item-container{background-color:var(--control-transparent-bgColor-selected,var(--color-action-list-item-default-selected-bg,rgba(208,215,222,0.24)));}/*!sc*/ .jgdSGi .PRIVATE_TreeView-item[aria-current='true'] > .PRIVATE_TreeView-item-container::after{content:'';position:absolute;top:calc(50% - 0.75rem);left:-8px;width:0.25rem;height:1.5rem;background-color:var(--fgColor-accent,var(--color-accent-fg,#0969da));border-radius:6px;}/*!sc*/ @media (forced-colors:active){.jgdSGi .PRIVATE_TreeView-item[aria-current='true'] > .PRIVATE_TreeView-item-container::after{background-color:HighlightText;}}/*!sc*/ .jgdSGi .PRIVATE_TreeView-item-toggle{grid-area:toggle;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;padding-top:calc(var(--min-item-height) / 2 - 12px / 2);height:100%;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .jgdSGi .PRIVATE_TreeView-item-toggle--hover:hover{background-color:var(--control-transparent-bgColor-hover,var(--color-tree-view-item-chevron-hover-bg,rgba(208,215,222,0.32)));}/*!sc*/ .jgdSGi .PRIVATE_TreeView-item-toggle--end{border-top-left-radius:6px;border-bottom-left-radius:6px;}/*!sc*/ .jgdSGi .PRIVATE_TreeView-item-content{grid-area:content;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:100%;padding:0 8px;gap:8px;line-height:var(--custom-line-height,var(--text-body-lineHeight-medium,1.4285));padding-top:calc((var(--min-item-height) - var(--custom-line-height,1.3rem)) / 2);padding-bottom:calc((var(--min-item-height) - var(--custom-line-height,1.3rem)) / 2);}/*!sc*/ .jgdSGi .PRIVATE_TreeView-item-content-text{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;width:0;}/*!sc*/ .jgdSGi[data-truncate-text='true'] .PRIVATE_TreeView-item-content-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}/*!sc*/ .jgdSGi[data-truncate-text='false'] .PRIVATE_TreeView-item-content-text{word-break:break-word;}/*!sc*/ .jgdSGi .PRIVATE_TreeView-item-visual{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));height:var(--custom-line-height,1.3rem);}/*!sc*/ .jgdSGi .PRIVATE_TreeView-item-leading-action{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));grid-area:leadingAction;}/*!sc*/ .jgdSGi .PRIVATE_TreeView-item-leading-action > button{-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;}/*!sc*/ .jgdSGi .PRIVATE_TreeView-item-level-line{width:100%;height:100%;border-right:1px solid;border-color:var(--borderColor-muted,var(--color-border-subtle,rgba(31,35,40,0.15)));}/*!sc*/ @media (hover:hover){.jgdSGi .PRIVATE_TreeView-item-level-line{border-color:transparent;}.jgdSGi:hover .PRIVATE_TreeView-item-level-line,.jgdSGi:focus-within .PRIVATE_TreeView-item-level-line{border-color:var(--borderColor-muted,var(--color-border-subtle,rgba(31,35,40,0.15)));}}/*!sc*/ .jgdSGi .PRIVATE_TreeView-directory-icon{display:grid;color:var(--treeViewItem-leadingVisual-iconColor-rest,var(--color-tree-view-item-chevron-directory-fill,#54aeff));}/*!sc*/ .jgdSGi .PRIVATE_VisuallyHidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;-webkit-clip:rect(0,0,0,0);clip:rect(0,0,0,0);white-space:nowrap;border-width:0;}/*!sc*/ data-styled.g114[id="TreeView__UlBox-sc-4ex6b6-0"]{content:"jgdSGi,"}/*!sc*/ @-webkit-keyframes crVFvv{0%{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);}50%{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);}100%{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);}}/*!sc*/ @keyframes crVFvv{0%{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);}50%{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);}100%{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);}}/*!sc*/ data-styled.g130[id="sc-keyframes-crVFvv"]{content:"crVFvv,"}/*!sc*/ </style> <!-- --> <div class="d-none"></div><div style="--sticky-pane-height:100vh;--spacing:var(--spacing-none)" class="Box-sc-g0xbh4-0 hOfjFo"><div class="Box-sc-g0xbh4-0 oDGAe"><header class="Box-sc-g0xbh4-0 eQkynW"><div class="Box-sc-g0xbh4-0 kkWQEA"><div class="Box-sc-g0xbh4-0 fHrHav"><div class="Box-sc-g0xbh4-0 RAkv" data-component="TitleArea" data-size-variant="large"><h1 class="Box-sc-g0xbh4-0 gTYCFh f2 prc-Heading-Heading-6CmGO" data-component="PH_Title" data-hidden="false">Commit <span class="text-mono bgColor-muted rounded p-1">cf0350e</span></h1></div><div class="Box-sc-g0xbh4-0 bnmsDs CommitHeader-module__commit-header-actions--kHXV1" data-component="PH_Actions"><div class="d-flex gap-2 flex-items-center flex-md-justify-end"><span role="tooltip" aria-label="Browse the repository at this point in the history" id=":R1abab:" class="Tooltip__TooltipBase-sc-17tf59c-0 jjwhNb d-none d-md-flex tooltipped-sw"><a class="Box-sc-g0xbh4-0 fyKNMY Box-sc-g0xbh4-0 fyKNMY prc-Button-ButtonBase-c50BI prc-Link-Link-85e08" style="--button-color:fg.default" type="button" href="/FighterLYL/GraphNeuralNetwork/tree/cf0350e449688c82e3d9b111a7bb7814f75668db" data-loading="false" data-size="medium" data-variant="default" aria-describedby=":R3abab:-loading-announcement"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg prc-Button-ButtonContent-HKbr-"><span data-component="leadingVisual" class="prc-Button-Visual-2epfX prc-Button-VisualWrap-Db-eB"><svg aria-hidden="true" focusable="false" class="octicon octicon-file-code" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M4 1.75C4 .784 4.784 0 5.75 0h5.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v8.586A1.75 1.75 0 0 1 14.25 15h-9a.75.75 0 0 1 0-1.5h9a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 10 4.25V1.5H5.75a.25.25 0 0 0-.25.25v2.5a.75.75 0 0 1-1.5 0Zm1.72 4.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l1.47-1.47-1.47-1.47a.75.75 0 0 1 0-1.06ZM3.28 7.78 1.81 9.25l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Zm8.22-6.218V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path></svg></span><span data-component="text" class="prc-Button-Label-pTQ3x">Browse files</span></span></a></span><a class="prc-Button-ButtonBase-c50BI d-flex d-md-none prc-Button-IconButton-szpyj prc-Link-Link-85e08" data-component="IconButton" type="button" href="/FighterLYL/GraphNeuralNetwork/tree/cf0350e449688c82e3d9b111a7bb7814f75668db" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-describedby=":R7qbab:-loading-announcement" aria-labelledby=":R1qbab:"><svg aria-hidden="true" focusable="false" class="octicon octicon-file-code" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M4 1.75C4 .784 4.784 0 5.75 0h5.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v8.586A1.75 1.75 0 0 1 14.25 15h-9a.75.75 0 0 1 0-1.5h9a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 10 4.25V1.5H5.75a.25.25 0 0 0-.25.25v2.5a.75.75 0 0 1-1.5 0Zm1.72 4.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l1.47-1.47-1.47-1.47a.75.75 0 0 1 0-1.06ZM3.28 7.78 1.81 9.25l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Zm8.22-6.218V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path></svg></a><span class="Tooltip__StyledTooltip-sc-e45c7z-0 jOyaRH" data-direction="s" aria-hidden="true" id=":R1qbab:">Browse files</span></div></div><div class="Box-sc-g0xbh4-0 kScZQx"><div class="d-flex flex-column gap-2 width-full"><div class="Box-sc-g0xbh4-0 dpBUfI color-fg-muted"><div data-testid="author-avatar" class="Box-sc-g0xbh4-0 hKWjvQ"><a class="prc-Link-Link-85e08" href="/FighterLYL" data-testid="avatar-icon-link" data-hovercard-url="/users/FighterLYL/hovercard"><img data-component="Avatar" class="Box-sc-g0xbh4-0 cvdqJW prc-Avatar-Avatar-ZRS-m" alt="FighterLYL" width="20" height="20" style="--avatarSize-regular:20px" src="https://avatars.githubusercontent.com/u/13479518?v=4&size=40" data-testid="github-avatar" aria-label="FighterLYL"/></a><a class="Box-sc-g0xbh4-0 dkaFxu prc-Link-Link-85e08" data-muted="true" muted="" href="/FighterLYL/GraphNeuralNetwork/commits?author=FighterLYL" aria-label="commits by FighterLYL" data-hovercard-url="/users/FighterLYL/hovercard">FighterLYL</a></div><span class="pl-1">committed</span><div class="Box-sc-g0xbh4-0 LoadingSkeleton-sc-695d630a-0 irPhWZ irithh d-none d-sm-flex ml-1" width="60px"></div><div class="Box-sc-g0xbh4-0 LoadingSkeleton-sc-695d630a-0 dNbsEP ihfxfT ml-2" width="62px"></div></div><div class="color-bg-default position-relative border rounded-2 color-border-default mt-2 d-flex flex-column pt-0"><div class="CommitHeader-module__commit-message-container--nl1pf"><span class="Text__StyledText-sc-17v1xeu-0 hWqAbU ws-pre-wrap f5 wb-break-word text-mono"><div>更新chapter9 code,与原作实现保持一致</div></span></div><div class="p-2 d-flex gap-2 flex-column flex-md-row flex-justify-between"><div class="d-flex flex-row flex-items-center"><div class="d-flex flex-items-center flex-wrap fgColor-muted gap-1"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 mr-1" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg><div width="60px" height="22px" class="Box-sc-g0xbh4-0 LoadingSkeleton-sc-695d630a-0 kHfwUD kRBfod"></div></div></div><pre class="color-fg-muted d-flex flex-items-center">1 parent <a class="color-fg-default Link--inTextBlock prc-Link-Link-85e08" data-hotkey="p" data-hovercard-url="/FighterLYL/GraphNeuralNetwork/commit/125acbaddd1bc69c5bd46dc0f9445ec7865edee5/hovercard" href="/FighterLYL/GraphNeuralNetwork/commit/125acbaddd1bc69c5bd46dc0f9445ec7865edee5">125acba</a> commit <span class="fgColor-default">cf0350e</span><div><button data-component="IconButton" type="button" class="prc-Button-ButtonBase-c50BI prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-describedby=":R1slebab:-loading-announcement" aria-labelledby=":R4lebab:"><svg aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="Tooltip__StyledTooltip-sc-e45c7z-0 jOyaRH CopyToClipboardButton-module__tooltip--Dq1IB" data-direction="sw" aria-label="Copy full SHA for cf0350e" aria-hidden="true" id=":R4lebab:">Copy full SHA for cf0350e</span></div></pre></div></div></div></div></div></div><div class="Box-sc-g0xbh4-0 bMUyWp"></div></header><div class="Box-sc-g0xbh4-0 kowOcT"><div class="Box-sc-g0xbh4-0 fXGBwN"><div class="Box-sc-g0xbh4-0 hPvFuC"></div><div style="--pane-width:296px" class="Box-sc-g0xbh4-0 glhAZp"><div class="d-flex flex-column gap-2" id="diff_file_tree" tabindex="-1"><div class="d-none"></div><h2 class="sr-only">File tree</h2><div class="d-md-none"><div class="d-flex flex-items-center flex-justify-between gap-2 pt-3 pt-lg-4 pb-2 position-sticky top-0 color-bg-default" style="z-index:2"><div class="d-flex flex-items-center"><span role="tooltip" aria-label="Expand file tree" id="expand-button-file-tree-button" class="Tooltip__TooltipBase-sc-17tf59c-0 hWlpPn tooltipped-se"><button data-component="IconButton" type="button" data-testid="expand-file-tree-button" aria-expanded="false" aria-controls="diff_file_tree" class="prc-Button-ButtonBase-c50BI d-md-none position-relative fgColor-muted prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="invisible" aria-describedby=":Raatdab:-loading-announcement" aria-labelledby="expand-button-file-tree-button"><svg aria-hidden="true" focusable="false" class="octicon octicon-sidebar-collapse" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M6.823 7.823a.25.25 0 0 1 0 .354l-2.396 2.396A.25.25 0 0 1 4 10.396V5.604a.25.25 0 0 1 .427-.177Z"></path><path d="M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25H9.5v-13H1.75a.25.25 0 0 0-.25.25ZM11 14.5h3.25a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H11Z"></path></svg></button></span><span role="tooltip" aria-label="Collapse file tree" id="expand-button-file-tree-button" class="Tooltip__TooltipBase-sc-17tf59c-0 hWlpPn tooltipped-se"><button data-component="IconButton" type="button" data-testid="collapse-file-tree-button" aria-expanded="true" aria-controls="diff_file_tree" class="prc-Button-ButtonBase-c50BI d-none d-md-flex position-relative fgColor-muted prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="invisible" aria-describedby=":Rcatdab:-loading-announcement" aria-labelledby="expand-button-file-tree-button"><svg aria-hidden="true" focusable="false" class="octicon octicon-sidebar-expand" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m4.177 7.823 2.396-2.396A.25.25 0 0 1 7 5.604v4.792a.25.25 0 0 1-.427.177L4.177 8.177a.25.25 0 0 1 0-.354Z"></path><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25H9.5v-13Zm12.5 13a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H11v13Z"></path></svg></button></span><h2 class="mx-2 f4 prc-Heading-Heading-6CmGO">3<!-- --> file<!-- -->s<!-- --> changed</h2><div class="ml-1 text-small text-bold fgColor-success">+<!-- -->143</div><div class="ml-1 text-small text-bold fgColor-danger">-<!-- -->75</div><span class=" ml-2 fgColor-muted text-small" style="white-space:nowrap">lines changed</span></div><div class="d-flex gap-2 flex-items-center"><button class="Button Button--iconOnly Button--invisible" aria-label="Open diff view settings" id=":R1stdab:" aria-haspopup="true" aria-expanded="false" tabindex="0"><svg aria-hidden="true" focusable="false" class="octicon octicon-gear" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z"></path></svg></button></div></div></div><div class="d-flex flex-nowrap gap-2"><span class="TextInputWrapper__StyledTextInputBaseWrapper-sc-1mqhpbi-0 jMFjfB TextInputWrapper__StyledTextInputWrapper-sc-1mqhpbi-1 GvHdV TextInput-wrapper" data-block="true" data-leading-visual="true" aria-busy="false"><span class="TextInput-icon" id=":R35dab:" aria-hidden="true"><svg aria-hidden="true" focusable="false" class="octicon octicon-search" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg></span><input type="text" aria-label="Filter files…" placeholder="Filter files…" aria-describedby=":R35dab:" data-component="input" class="UnstyledTextInput__ToggledUnstyledTextInput-sc-14ypya-0 jkNcAv" value=""/></span><button data-component="IconButton" type="button" aria-label="Filter" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-c50BI flex-shrink-0 prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-describedby=":R55dab:-loading-announcement" id=":R55dab:"><svg aria-hidden="true" focusable="false" class="octicon octicon-sliders" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path></svg></button></div><span role="status" aria-live="polite" aria-atomic="true" class="_VisuallyHidden__VisuallyHidden-sc-11jhm7a-0 brGdpi"></span><ul role="tree" aria-label="File Tree" data-truncate-text="true" class="TreeView__UlBox-sc-4ex6b6-0 jgdSGi"><li class="PRIVATE_TreeView-item" tabindex="0" id="chapter9" role="treeitem" aria-labelledby=":Rdddab:" aria-describedby=":RdddabH1:" aria-level="1" aria-expanded="true" aria-selected="false"><div class="PRIVATE_TreeView-item-container" style="--level:1"><div style="grid-area:spacer;display:flex"><div style="width:100%;display:flex"></div></div><div class="PRIVATE_TreeView-item-toggle PRIVATE_TreeView-item-toggle--end"><svg aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 12 12" width="12" height="12" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M6 8.825c-.2 0-.4-.1-.5-.2l-3.3-3.3c-.3-.3-.3-.8 0-1.1.3-.3.8-.3 1.1 0l2.7 2.7 2.7-2.7c.3-.3.8-.3 1.1 0 .3.3.3.8 0 1.1l-3.2 3.2c-.2.2-.4.3-.6.3Z"></path></svg></div><div id=":Rdddab:" class="PRIVATE_TreeView-item-content"><div class="PRIVATE_VisuallyHidden" aria-hidden="true" id=":RdddabH1:"></div><div class="PRIVATE_TreeView-item-visual" aria-hidden="true"><div class="PRIVATE_TreeView-directory-icon"><svg aria-hidden="true" focusable="false" class="octicon octicon-file-directory-open-fill" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M.513 1.513A1.75 1.75 0 0 1 1.75 1h3.5c.55 0 1.07.26 1.4.7l.9 1.2a.25.25 0 0 0 .2.1H13a1 1 0 0 1 1 1v.5H2.75a.75.75 0 0 0 0 1.5h11.978a1 1 0 0 1 .994 1.117L15 13.25A1.75 1.75 0 0 1 13.25 15H1.75A1.75 1.75 0 0 1 0 13.25V2.75c0-.464.184-.91.513-1.237Z"></path></svg></div></div><span class="PRIVATE_TreeView-item-content-text"><span>chapter9</span></span></div></div><ul role="group" style="list-style:none;padding:0;margin:0" aria-label=""><li class="PRIVATE_TreeView-item DiffFileTree-module__file-tree-row--yr73E" tabindex="0" id="chapter9/autoencoder.py" role="treeitem" aria-labelledby=":Rmtddab:" aria-describedby=":RmtddabH1:" aria-level="2" aria-selected="false"><div class="PRIVATE_TreeView-item-container" style="--level:2"><div style="grid-area:spacer;display:flex"><div style="width:100%;display:flex"><div class="PRIVATE_TreeView-item-level-line"></div></div></div><div id=":Rmtddab:" class="PRIVATE_TreeView-item-content"><div class="PRIVATE_VisuallyHidden" aria-hidden="true" id=":RmtddabH1:"></div><div class="PRIVATE_TreeView-item-visual" aria-hidden="true"><svg aria-hidden="true" focusable="false" class="fgColor-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M1 1.75C1 .784 1.784 0 2.75 0h7.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16H2.75A1.75 1.75 0 0 1 1 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25V4.664a.25.25 0 0 0-.073-.177l-2.914-2.914a.25.25 0 0 0-.177-.073ZM8 3.25a.75.75 0 0 1 .75.75v1.5h1.5a.75.75 0 0 1 0 1.5h-1.5v1.5a.75.75 0 0 1-1.5 0V7h-1.5a.75.75 0 0 1 0-1.5h1.5V4A.75.75 0 0 1 8 3.25Zm-3 8a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Z"></path></svg></div><span class="PRIVATE_TreeView-item-content-text"><a class="fgColor-default prc-Link-Link-85e08" data-muted="true" href="#diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875" muted="" role="presentation" tabindex="-1">autoencoder.py</a></span></div></div></li><li class="PRIVATE_TreeView-item DiffFileTree-module__file-tree-row--yr73E" tabindex="0" id="chapter9/dataset.py" role="treeitem" aria-labelledby=":R16tddab:" aria-describedby=":R16tddabH1:" aria-level="2" aria-selected="false"><div class="PRIVATE_TreeView-item-container" style="--level:2"><div style="grid-area:spacer;display:flex"><div style="width:100%;display:flex"><div class="PRIVATE_TreeView-item-level-line"></div></div></div><div id=":R16tddab:" class="PRIVATE_TreeView-item-content"><div class="PRIVATE_VisuallyHidden" aria-hidden="true" id=":R16tddabH1:"></div><div class="PRIVATE_TreeView-item-visual" aria-hidden="true"><svg aria-hidden="true" focusable="false" class="fgColor-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M1 1.75C1 .784 1.784 0 2.75 0h7.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16H2.75A1.75 1.75 0 0 1 1 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25V4.664a.25.25 0 0 0-.073-.177l-2.914-2.914a.25.25 0 0 0-.177-.073ZM8 3.25a.75.75 0 0 1 .75.75v1.5h1.5a.75.75 0 0 1 0 1.5h-1.5v1.5a.75.75 0 0 1-1.5 0V7h-1.5a.75.75 0 0 1 0-1.5h1.5V4A.75.75 0 0 1 8 3.25Zm-3 8a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Z"></path></svg></div><span class="PRIVATE_TreeView-item-content-text"><a class="fgColor-default prc-Link-Link-85e08" data-muted="true" href="#diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce" muted="" role="presentation" tabindex="-1">dataset.py</a></span></div></div></li><li class="PRIVATE_TreeView-item DiffFileTree-module__file-tree-row--yr73E" tabindex="0" id="chapter9/main.py" role="treeitem" aria-labelledby=":R1mtddab:" aria-describedby=":R1mtddabH1:" aria-level="2" aria-selected="false"><div class="PRIVATE_TreeView-item-container" style="--level:2"><div style="grid-area:spacer;display:flex"><div style="width:100%;display:flex"><div class="PRIVATE_TreeView-item-level-line"></div></div></div><div id=":R1mtddab:" class="PRIVATE_TreeView-item-content"><div class="PRIVATE_VisuallyHidden" aria-hidden="true" id=":R1mtddabH1:"></div><div class="PRIVATE_TreeView-item-visual" aria-hidden="true"><svg aria-hidden="true" focusable="false" class="fgColor-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M1 1.75C1 .784 1.784 0 2.75 0h7.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16H2.75A1.75 1.75 0 0 1 1 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25V4.664a.25.25 0 0 0-.073-.177l-2.914-2.914a.25.25 0 0 0-.177-.073ZM8 3.25a.75.75 0 0 1 .75.75v1.5h1.5a.75.75 0 0 1 0 1.5h-1.5v1.5a.75.75 0 0 1-1.5 0V7h-1.5a.75.75 0 0 1 0-1.5h1.5V4A.75.75 0 0 1 8 3.25Zm-3 8a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Z"></path></svg></div><span class="PRIVATE_TreeView-item-content-text"><a class="fgColor-default prc-Link-Link-85e08" data-muted="true" href="#diff-66f4719ba769eb946d051e8d0575a2693423133c016417e0a0ffc04a054587bf" muted="" role="presentation" tabindex="-1">main.py</a></span></div></div></li></ul></li></ul></div></div><div class="Box-sc-g0xbh4-0 bTBnTW"><div role="slider" aria-label="Draggable pane splitter" aria-valuemin="0" aria-valuemax="0" aria-valuenow="0" aria-valuetext="Pane width 0 pixels" tabindex="0" class="Box-sc-g0xbh4-0 bHLmSv"></div></div></div><div class="Box-sc-g0xbh4-0 sYjuB"><div class="Box-sc-g0xbh4-0"></div><div class="Box-sc-g0xbh4-0 FxAyp"><div id="diff-content-parent" tabindex="-1"><div data-hpc="true"><div class="d-flex flex-items-center flex-justify-between gap-2 pt-3 pt-lg-4 pb-2 position-sticky top-0 color-bg-default" style="z-index:2"><div class="d-flex flex-items-center"><span role="tooltip" aria-label="Expand file tree" id="expand-button-file-tree-button" class="Tooltip__TooltipBase-sc-17tf59c-0 hWlpPn tooltipped-se"><button data-component="IconButton" type="button" data-testid="expand-file-tree-button" aria-expanded="false" aria-controls="diff_file_tree" class="prc-Button-ButtonBase-c50BI d-md-none position-relative fgColor-muted prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="invisible" aria-describedby=":Rab6lab:-loading-announcement" aria-labelledby="expand-button-file-tree-button"><svg aria-hidden="true" focusable="false" class="octicon octicon-sidebar-collapse" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M6.823 7.823a.25.25 0 0 1 0 .354l-2.396 2.396A.25.25 0 0 1 4 10.396V5.604a.25.25 0 0 1 .427-.177Z"></path><path d="M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25H9.5v-13H1.75a.25.25 0 0 0-.25.25ZM11 14.5h3.25a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H11Z"></path></svg></button></span><span role="tooltip" aria-label="Collapse file tree" id="expand-button-file-tree-button" class="Tooltip__TooltipBase-sc-17tf59c-0 hWlpPn tooltipped-se"><button data-component="IconButton" type="button" data-testid="collapse-file-tree-button" aria-expanded="true" aria-controls="diff_file_tree" class="prc-Button-ButtonBase-c50BI d-none d-md-flex position-relative fgColor-muted prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="invisible" aria-describedby=":Rcb6lab:-loading-announcement" aria-labelledby="expand-button-file-tree-button"><svg aria-hidden="true" focusable="false" class="octicon octicon-sidebar-expand" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m4.177 7.823 2.396-2.396A.25.25 0 0 1 7 5.604v4.792a.25.25 0 0 1-.427.177L4.177 8.177a.25.25 0 0 1 0-.354Z"></path><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25H9.5v-13Zm12.5 13a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H11v13Z"></path></svg></button></span><h2 class="mx-2 f4 prc-Heading-Heading-6CmGO">3<!-- --> file<!-- -->s<!-- --> changed</h2><div class="ml-1 text-small text-bold fgColor-success">+<!-- -->143</div><div class="ml-1 text-small text-bold fgColor-danger">-<!-- -->75</div><span class=" ml-2 fgColor-muted text-small" style="white-space:nowrap">lines changed</span></div><div class="d-flex gap-2 flex-items-center"><button class="Button Button--iconOnly Button--invisible" aria-label="Open diff view settings" id=":R1t6lab:" aria-haspopup="true" aria-expanded="false" tabindex="0"><svg aria-hidden="true" focusable="false" class="octicon octicon-gear" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z"></path></svg></button></div></div><div class="pt-0"><div class="position-relative" style="contain:layout"><div class="Diff-module__diffHeaderWrapper--rsdD4" style="--header-sticky-offset:0px"><div class="DiffFileHeader-module__diff-file-header--TjXyn flex-wrap flex-sm-nowrap"><button class="Button Button--iconOnly Button--invisible flex-shrink-0 flex-order-1" aria-label="collapse file: chapter9/autoencoder.py"><svg aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button><div class="d-flex px-1 flex-items-center overflow-hidden flex-order-2 flex-sm-order-1"><h3 class="DiffFileHeader-module__file-name--mY1O5"><a class="Link--primary prc-Link-Link-85e08" href="#diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875"><code><!-- -->chapter9/autoencoder.py</code></a></h3><button data-component="IconButton" type="button" class="prc-Button-ButtonBase-c50BI ml-1 flex-shrink-0 prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="invisible" aria-describedby=":Rejbmlab:-loading-announcement" aria-labelledby=":Rjbmlab:"><svg aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="Tooltip__StyledTooltip-sc-e45c7z-0 jOyaRH CopyToClipboardButton-module__tooltip--Dq1IB" data-direction="s" aria-label="Copy file name to clipboard" aria-hidden="true" id=":Rjbmlab:">Copy file name to clipboard</span><button class="Button Button--iconOnly Button--invisible flex-shrink-0 js-expand-all-difflines-button" aria-label="expand all lines: chapter9/autoencoder.py" data-file-path="chapter9/autoencoder.py" aria-describedby=":R13bmlab:"><svg aria-hidden="true" focusable="false" class="octicon octicon-unfold" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m8.177.677 2.896 2.896a.25.25 0 0 1-.177.427H8.75v1.25a.75.75 0 0 1-1.5 0V4H5.104a.25.25 0 0 1-.177-.427L7.823.677a.25.25 0 0 1 .354 0ZM7.25 10.75a.75.75 0 0 1 1.5 0V12h2.146a.25.25 0 0 1 .177.427l-2.896 2.896a.25.25 0 0 1-.354 0l-2.896-2.896A.25.25 0 0 1 5.104 12H7.25v-1.25Zm-5-2a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM6 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 6 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM12 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 12 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5Z"></path></svg></button><span class="Tooltip__StyledTooltip-sc-e45c7z-0 jOyaRH" data-direction="s" role="tooltip" aria-hidden="true" id=":R13bmlab:">expand all lines: chapter9/autoencoder.py</span></div><div class="d-flex flex-row flex-justify-end flex-1 flex-order-1 flex-sm-order-2 flex-items-center"><div class="d-flex mr-2 flex-justify-end flex-items-center flex-1"><div class="d-flex flex-items-center gap-1 pl-1"><span class="f6 text-bold fgColor-success">+<!-- -->91</span><span class="f6 text-bold fgColor-danger">-<!-- -->37</span><span role="tooltip" aria-label="128 changes: 91 additions & 37 deletions" id=":R6cbmlab:" class="Tooltip__TooltipBase-sc-17tf59c-0 hWlpPn tooltipped-sw"><div class="d-flex"><div data-testid="addition diffstat" class="DiffSquares-module__diffSquare--h5kjy DiffSquares-module__addition--jeNtt"></div><div data-testid="addition diffstat" class="DiffSquares-module__diffSquare--h5kjy DiffSquares-module__addition--jeNtt"></div><div data-testid="addition diffstat" class="DiffSquares-module__diffSquare--h5kjy DiffSquares-module__addition--jeNtt"></div><div data-testid="deletion diffstat" class="DiffSquares-module__diffSquare--h5kjy DiffSquares-module__deletion--hKV3q"></div><div data-testid="neutral diffstat" class="DiffSquares-module__diffSquare--h5kjy DiffSquares-module__neutral--VlyoP"></div></div></span></div></div><button class="Button Button--iconOnly Button--invisible" aria-label="More options" id=":R14bmlab:" aria-haspopup="true" aria-expanded="false" tabindex="0"><svg aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button></div></div></div><div class="border position-relative rounded-bottom-2"><table style="--line-number-cell-width:44px;--line-number-cell-width-unified:88px" class="tab-size width-full DiffLines-module__tableLayoutFixed--YZcIJ" data-diff-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875" data-tab-size="8" data-paste-markdown-skip="true" role="grid"><thead class="sr-only"><tr><th scope="col">Original file line number</th><th scope="col">Diff line number</th><th scope="col">Diff line change</th></tr></thead><colgroup><col width="44"/><col width="44"/><col width="100%"/></colgroup><tbody><tr class="diff-line-row"> <td style="background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));flex-grow:1" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-5-5-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell" title="" colSpan="4"><div class="d-flex flex-row"><button class="Button Button--iconOnly Button--invisible ExpandableHunkHeaderDiffLine-module__expand-button-line--rnQN5 ExpandableHunkHeaderDiffLine-module__expand-button-unified--j86KQ" aria-label="Expand file up from line 6" data-direction="up" aria-hidden="true" tabindex="-1"><svg aria-hidden="true" focusable="false" class="octicon octicon-fold-up" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M7.823 1.677 4.927 4.573A.25.25 0 0 0 5.104 5H7.25v3.236a.75.75 0 1 0 1.5 0V5h2.146a.25.25 0 0 0 .177-.427L8.177 1.677a.25.25 0 0 0-.354 0ZM13.75 11a.75.75 0 0 0 0 1.5h.5a.75.75 0 0 0 0-1.5h-.5Zm-3.75.75a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75ZM7.75 11a.75.75 0 0 0 0 1.5h.5a.75.75 0 0 0 0-1.5h-.5ZM4 11.75a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75ZM1.75 11a.75.75 0 0 0 0 1.5h.5a.75.75 0 0 0 0-1.5h-.5Z"></path></svg></button><code class="diff-text-cell hunk"><div class="diff-text-inner color-fg-muted">@@ -6,8 +6,25 @@</div></code></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-6-6-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>6</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-6-6-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>6</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-6-6-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R6" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><span class=pl-k>import</span> <span class=pl-s1>torch</span>.<span class=pl-s1>nn</span>.<span class=pl-s1>init</span> <span class=pl-k>as</span> <span class=pl-s1>init</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-7-7-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>7</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-7-7-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>7</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-7-7-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R7" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-8-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>8</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-8-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>8</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-8-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R8" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-9-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-9-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>9</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-9-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R9" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"><span class=pl-k>class</span> <span class=pl-v>InputDropout</span>(<span class=pl-s1>nn</span>.<span class=pl-c1>Module</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-10-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-10-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>10</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-10-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R10" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>def</span> <span class=pl-en>__init__</span>(<span class=pl-s1>self</span>, <span class=pl-s1>keep_prob</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-11-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-11-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>11</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-11-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R11" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-en>super</span>(<span class=pl-v>InputDropout</span>, <span class=pl-s1>self</span>).<span class=pl-c1>__init__</span>()</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-12-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-12-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>12</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-12-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R12" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>p</span> <span class=pl-c1>=</span> <span class=pl-s1>keep_prob</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-13-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-13-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>13</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-13-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R13" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-14-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-14-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>14</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-14-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R14" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>def</span> <span class=pl-en>forward</span>(<span class=pl-s1>self</span>, <span class=pl-s1>inputs</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-15-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-15-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>15</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-15-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R15" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>x</span> <span class=pl-c1>=</span> <span class=pl-s1>inputs</span>.<span class=pl-c1>clone</span>()</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-16-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-16-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>16</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-16-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R16" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>if</span> <span class=pl-s1>self</span>.<span class=pl-c1>training</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-17-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-17-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>17</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-17-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R17" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>random_tensor</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>p</span> <span class=pl-c1>+</span> <span class=pl-s1>torch</span>.<span class=pl-c1>rand</span>((<span class=pl-s1>inputs</span>.<span class=pl-c1>size</span>(<span class=pl-c1>0</span>),))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-18-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-18-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>18</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-18-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R18" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>dropout_mask</span> <span class=pl-c1>=</span> <span class=pl-s1>torch</span>.<span class=pl-c1>floor</span>(<span class=pl-s1>random_tensor</span>).<span class=pl-c1>bool</span>()</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-19-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-19-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>19</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-19-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R19" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>x</span>[<span class=pl-c1>~</span><span class=pl-s1>dropout_mask</span>] <span class=pl-c1>=</span> <span class=pl-c1>0.</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-20-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-20-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>20</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-20-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R20" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>return</span> <span class=pl-s1>x</span> <span class=pl-c1>/</span> <span class=pl-s1>self</span>.<span class=pl-c1>p</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-21-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-21-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>21</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-21-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R21" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>else</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-22-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-22-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>22</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-22-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R22" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>return</span> <span class=pl-s1>x</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-23-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-23-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>23</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-23-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R23" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-24-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-24-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>24</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-8-24-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R24" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-9-25-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>9</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-9-25-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>25</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-9-25-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R25" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><span class=pl-k>class</span> <span class=pl-v>StackGCNEncoder</span>(<span class=pl-s1>nn</span>.<span class=pl-c1>Module</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-10-26-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>10</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-10-26-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>26</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-10-26-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R26" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>def</span> <span class=pl-en>__init__</span>(<span class=pl-s1>self</span>, <span class=pl-s1>input_dim</span>, <span class=pl-s1>output_dim</span>, <span class=pl-s1>num_support</span>,</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-10-27-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-10-27-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>27</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-10-27-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R27" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>dropout</span><span class=pl-c1>=</span><span class=pl-c1>0.</span>,</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-11-28-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>11</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-11-28-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>28</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-11-28-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R28" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>use_bias</span><span class=pl-c1>=</span><span class=pl-c1>False</span>, <span class=pl-s1>activation</span><span class=pl-c1>=</span><span class=pl-c1>F</span>.<span class=pl-c1>relu</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-12-29-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>12</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-12-29-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>29</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-12-29-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R29" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s>"""对得到的每类评分使用级联的方式进行聚合</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-13-30-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>13</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-13-30-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>30</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-13-30-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R30" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><span class=pl-s> </span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));flex-grow:1" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-22-39-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell" title="" colSpan="4"><div class="d-flex flex-row"><button class="Button Button--iconOnly Button--invisible ExpandableHunkHeaderDiffLine-module__expand-button-line--rnQN5 ExpandableHunkHeaderDiffLine-module__expand-button-unified--j86KQ" aria-label="Expand file from line 30 to line 40" data-direction="all" aria-hidden="true" tabindex="-1"><svg aria-hidden="true" focusable="false" class="octicon octicon-unfold" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m8.177.677 2.896 2.896a.25.25 0 0 1-.177.427H8.75v1.25a.75.75 0 0 1-1.5 0V4H5.104a.25.25 0 0 1-.177-.427L7.823.677a.25.25 0 0 1 .354 0ZM7.25 10.75a.75.75 0 0 1 1.5 0V12h2.146a.25.25 0 0 1 .177.427l-2.896 2.896a.25.25 0 0 1-.354 0l-2.896-2.896A.25.25 0 0 1 5.104 12H7.25v-1.25Zm-5-2a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM6 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 6 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM12 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 12 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5Z"></path></svg></button><code class="diff-text-cell hunk"><div class="diff-text-inner color-fg-muted">@@ -23,20 +40,21 @@ def __init__(self, input_dim, output_dim, num_support,</div></code></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-23-40-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>23</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-23-40-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>40</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-23-40-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R40" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>input_dim</span> <span class=pl-c1>=</span> <span class=pl-s1>input_dim</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-24-41-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>24</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-24-41-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>41</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-24-41-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R41" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>output_dim</span> <span class=pl-c1>=</span> <span class=pl-s1>output_dim</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-25-42-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>25</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-25-42-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>42</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-25-42-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R42" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>num_support</span> <span class=pl-c1>=</span> <span class=pl-s1>num_support</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-25-43-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-25-43-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>43</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-25-43-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R43" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>dropout</span> <span class=pl-c1>=</span> <span class=pl-s1>dropout</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-26-44-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>26</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-26-44-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>44</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-26-44-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R44" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>use_bias</span> <span class=pl-c1>=</span> <span class=pl-s1>use_bias</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-27-45-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>27</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-27-45-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>45</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-27-45-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R45" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>activation</span> <span class=pl-c1>=</span> <span class=pl-s1>activation</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-28-46-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>28</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-28-46-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>46</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-28-46-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R46" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>assert</span> <span class=pl-s1>output_dim</span> <span class=pl-c1>%</span> <span class=pl-s1>num_support</span> <span class=pl-c1>==</span> <span class=pl-c1>0</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-29-46-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>29</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-29-46-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-29-46-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L29" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>weight</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Parameter</span>(<span class=pl-s1>torch</span>.<span class=pl-c1>Tensor</span>(<span class=pl-s1>num_support</span>, </div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-30-46-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>30</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-30-46-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-30-46-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L30" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>input_dim</span>, <span class=pl-s1>output_dim</span> <span class=pl-c1>//</span> <span class=pl-s1>num_support</span>))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-30-47-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-30-47-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>47</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-30-47-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R47" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>weight</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Parameter</span>(<span class=pl-s1>torch</span>.<span class=pl-c1>Tensor</span>(<span class=pl-s1>input_dim</span>, <span class=pl-s1>output_dim</span>))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-31-48-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>31</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-31-48-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>48</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-31-48-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R48" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>if</span> <span class=pl-s1>self</span>.<span class=pl-c1>use_bias</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-32-48-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>32</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-32-48-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-32-48-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L32" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class="pl-s1">self</span>.<span class="pl-c1 x x-first x-last">bias</span> <span class="pl-c1">=</span> <span class="pl-s1">nn</span>.<span class="pl-c1">Parameter</span>(<span class="pl-s1">torch</span>.<span class="pl-c1">Tensor</span>(<span class="pl-s1">output_dim</span>, ))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-32-49-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-32-49-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>49</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-32-49-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R49" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class="pl-s1">self</span>.<span class="pl-c1 x x-first x-last">bias_user</span> <span class="pl-c1">=</span> <span class="pl-s1">nn</span>.<span class="pl-c1">Parameter</span>(<span class="pl-s1">torch</span>.<span class="pl-c1">Tensor</span>(<span class="pl-s1">output_dim</span>, ))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-33-50-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>33</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-33-50-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>50</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-33-50-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R50" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>bias_item</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Parameter</span>(<span class=pl-s1>torch</span>.<span class=pl-c1>Tensor</span>(<span class=pl-s1>output_dim</span>, ))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-33-51-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-33-51-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>51</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-33-51-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R51" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>dropout</span> <span class=pl-c1>=</span> <span class=pl-en>InputDropout</span>(<span class=pl-c1>1</span> <span class=pl-c1>-</span> <span class=pl-s1>dropout</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-34-52-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>34</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-34-52-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>52</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-34-52-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R52" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>reset_parameters</span>()</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-35-53-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>35</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-35-53-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>53</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-35-53-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R53" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-36-54-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>36</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-36-54-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>54</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-36-54-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R54" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>def</span> <span class=pl-en>reset_parameters</span>(<span class=pl-s1>self</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-37-54-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>37</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-37-54-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-37-54-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L37" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class="pl-s1">init</span>.<span class="pl-c1 x x-first x-last">kaiming_uniform_</span>(<span class="pl-s1">self</span>.<span class="pl-c1">weight</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-37-55-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-37-55-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>55</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-37-55-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R55" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class="pl-s1">init</span>.<span class="pl-c1 x x-first x-last">xavier_uniform_</span>(<span class="pl-s1">self</span>.<span class="pl-c1">weight</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-38-56-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>38</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-38-56-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>56</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-38-56-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R56" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>if</span> <span class=pl-s1>self</span>.<span class=pl-c1>use_bias</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-39-56-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>39</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-39-56-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-39-56-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L39" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class="pl-s1">init</span>.<span class="pl-c1">zeros_</span>(<span class="pl-s1">self</span>.<span class="pl-c1 x x-first x-last">bias</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-39-57-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-39-57-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>57</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-39-57-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R57" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class="pl-s1">init</span>.<span class="pl-c1">zeros_</span>(<span class="pl-s1">self</span>.<span class="pl-c1 x x-first x-last">bias_user</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-40-58-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>40</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-40-58-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>58</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-40-58-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R58" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>init</span>.<span class=pl-c1>zeros_</span>(<span class=pl-s1>self</span>.<span class=pl-c1>bias_item</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-41-59-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>41</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-41-59-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>59</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-41-59-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R59" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-42-60-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>42</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-42-60-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>60</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-42-60-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R60" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>def</span> <span class=pl-en>forward</span>(<span class=pl-s1>self</span>, <span class=pl-s1>user_supports</span>, <span class=pl-s1>item_supports</span>, <span class=pl-s1>user_inputs</span>, <span class=pl-s1>item_inputs</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));flex-grow:1" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-54-72-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell" title="" colSpan="4"><div class="d-flex flex-row"><button class="Button Button--iconOnly Button--invisible ExpandableHunkHeaderDiffLine-module__expand-button-line--rnQN5 ExpandableHunkHeaderDiffLine-module__expand-button-unified--j86KQ" aria-label="Expand file from line 60 to line 73" data-direction="all" aria-hidden="true" tabindex="-1"><svg aria-hidden="true" focusable="false" class="octicon octicon-unfold" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m8.177.677 2.896 2.896a.25.25 0 0 1-.177.427H8.75v1.25a.75.75 0 0 1-1.5 0V4H5.104a.25.25 0 0 1-.177-.427L7.823.677a.25.25 0 0 1 .354 0ZM7.25 10.75a.75.75 0 0 1 1.5 0V12h2.146a.25.25 0 0 1 .177.427l-2.896 2.896a.25.25 0 0 1-.354 0l-2.896-2.896A.25.25 0 0 1 5.104 12H7.25v-1.25Zm-5-2a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM6 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 6 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM12 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 12 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5Z"></path></svg></button><code class="diff-text-cell hunk"><div class="diff-text-inner color-fg-muted">@@ -55,11 +73,15 @@ def forward(self, user_supports, item_supports, user_inputs, item_inputs):</div></code></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-55-73-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>55</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-55-73-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>73</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-55-73-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R73" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><span class=pl-s> [torch.Tensor]: 商品的隐层特征</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-56-74-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>56</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-56-74-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>74</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-56-74-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R74" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><span class=pl-s> """</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-57-75-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>57</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-57-75-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>75</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-57-75-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R75" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>assert</span> <span class=pl-en>len</span>(<span class=pl-s1>user_supports</span>) <span class=pl-c1>==</span> <span class=pl-en>len</span>(<span class=pl-s1>item_supports</span>) <span class=pl-c1>==</span> <span class=pl-s1>self</span>.<span class=pl-c1>num_support</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-57-76-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-57-76-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>76</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-57-76-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R76" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>user_inputs</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>dropout</span>(<span class=pl-s1>user_inputs</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-57-77-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-57-77-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>77</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-57-77-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R77" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>item_inputs</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>dropout</span>(<span class=pl-s1>item_inputs</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-57-78-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-57-78-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>78</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-57-78-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R78" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-58-79-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>58</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-58-79-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>79</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-58-79-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R79" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>user_hidden</span> <span class=pl-c1>=</span> []</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-59-80-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>59</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-59-80-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>80</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-59-80-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R80" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>item_hidden</span> <span class=pl-c1>=</span> []</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-59-81-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-59-81-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>81</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-59-81-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R81" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>weights</span> <span class=pl-c1>=</span> <span class=pl-s1>torch</span>.<span class=pl-c1>split</span>(<span class=pl-s1>self</span>.<span class=pl-c1>weight</span>, <span class=pl-s1>self</span>.<span class=pl-c1>output_dim</span><span class=pl-c1>//</span><span class=pl-s1>self</span>.<span class=pl-c1>num_support</span>, <span class=pl-s1>dim</span><span class=pl-c1>=</span><span class=pl-c1>1</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-60-82-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>60</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-60-82-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>82</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-60-82-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R82" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>for</span> <span class=pl-s1>i</span> <span class=pl-c1>in</span> <span class=pl-en>range</span>(<span class=pl-s1>self</span>.<span class=pl-c1>num_support</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-61-82-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>61</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-61-82-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-61-82-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L61" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class="pl-s1">tmp_u</span> <span class="pl-c1">=</span> <span class="pl-s1">torch</span>.<span class="pl-c1">matmul</span>(<span class="pl-s1">user_inputs</span>, <span class="pl-s1 x x-first">self</span><span class="x">.</span><span class="pl-c1 x x-last">weight</span>[<span class="pl-s1">i</span>])</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-62-82-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>62</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-62-82-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-62-82-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L62" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class="pl-s1">tmp_v</span> <span class="pl-c1">=</span> <span class="pl-s1">torch</span>.<span class="pl-c1">matmul</span>(<span class="pl-s1">item_inputs</span>, <span class="pl-s1 x x-first">self</span><span class="x">.</span><span class="pl-c1 x x-last">weight</span>[<span class="pl-s1">i</span>])</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-62-83-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-62-83-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>83</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-62-83-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R83" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class="pl-s1">tmp_u</span> <span class="pl-c1">=</span> <span class="pl-s1">torch</span>.<span class="pl-c1">matmul</span>(<span class="pl-s1">user_inputs</span>, <span class="pl-s1 x x-first x-last">weights</span>[<span class="pl-s1">i</span>])</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-62-84-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-62-84-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>84</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-62-84-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R84" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class="pl-s1">tmp_v</span> <span class="pl-c1">=</span> <span class="pl-s1">torch</span>.<span class="pl-c1">matmul</span>(<span class="pl-s1">item_inputs</span>, <span class="pl-s1 x x-first x-last">weights</span>[<span class="pl-s1">i</span>])</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-63-85-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>63</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-63-85-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>85</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-63-85-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R85" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>tmp_user_hidden</span> <span class=pl-c1>=</span> <span class=pl-s1>torch</span>.<span class=pl-c1>sparse</span>.<span class=pl-c1>mm</span>(<span class=pl-s1>user_supports</span>[<span class=pl-s1>i</span>], <span class=pl-s1>tmp_v</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-64-86-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>64</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-64-86-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>86</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-64-86-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R86" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>tmp_item_hidden</span> <span class=pl-c1>=</span> <span class=pl-s1>torch</span>.<span class=pl-c1>sparse</span>.<span class=pl-c1>mm</span>(<span class=pl-s1>item_supports</span>[<span class=pl-s1>i</span>], <span class=pl-s1>tmp_u</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-65-87-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>65</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-65-87-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>87</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-65-87-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R87" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>user_hidden</span>.<span class=pl-c1>append</span>(<span class=pl-s1>tmp_user_hidden</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));flex-grow:1" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-71-93-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell" title="" colSpan="4"><div class="d-flex flex-row"><button class="Button Button--iconOnly Button--invisible ExpandableHunkHeaderDiffLine-module__expand-button-line--rnQN5 ExpandableHunkHeaderDiffLine-module__expand-button-unified--j86KQ" aria-label="Expand file from line 87 to line 94" data-direction="all" aria-hidden="true" tabindex="-1"><svg aria-hidden="true" focusable="false" class="octicon octicon-unfold" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m8.177.677 2.896 2.896a.25.25 0 0 1-.177.427H8.75v1.25a.75.75 0 0 1-1.5 0V4H5.104a.25.25 0 0 1-.177-.427L7.823.677a.25.25 0 0 1 .354 0ZM7.25 10.75a.75.75 0 0 1 1.5 0V12h2.146a.25.25 0 0 1 .177.427l-2.896 2.896a.25.25 0 0 1-.354 0l-2.896-2.896A.25.25 0 0 1 5.104 12H7.25v-1.25Zm-5-2a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM6 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 6 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM12 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 12 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5Z"></path></svg></button><code class="diff-text-cell hunk"><div class="diff-text-inner color-fg-muted">@@ -72,14 +94,15 @@ def forward(self, user_supports, item_supports, user_inputs, item_inputs):</div></code></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-72-94-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>72</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-72-94-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>94</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-72-94-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R94" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>item_outputs</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>activation</span>(<span class=pl-s1>item_hidden</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-73-95-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>73</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-73-95-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>95</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-73-95-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R95" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-74-96-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>74</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-74-96-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>96</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-74-96-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R96" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>if</span> <span class=pl-s1>self</span>.<span class=pl-c1>use_bias</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-75-96-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>75</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-75-96-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-75-96-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L75" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class="pl-s1">user_outputs</span> <span class="pl-c1">+=</span> <span class="pl-s1">self</span>.<span class="pl-c1 x x-first x-last">bias</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-75-97-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-75-97-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>97</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-75-97-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R97" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class="pl-s1">user_outputs</span> <span class="pl-c1">+=</span> <span class="pl-s1">self</span>.<span class="pl-c1 x x-first x-last">bias_user</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-76-98-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>76</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-76-98-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>98</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-76-98-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R98" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>item_outputs</span> <span class=pl-c1>+=</span> <span class=pl-s1>self</span>.<span class=pl-c1>bias_item</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-77-99-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>77</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-77-99-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>99</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-77-99-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R99" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-78-100-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>78</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-78-100-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>100</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-78-100-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R100" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>return</span> <span class=pl-s1>user_outputs</span>, <span class=pl-s1>item_outputs</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-79-101-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>79</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-79-101-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>101</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-79-101-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R101" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-80-102-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>80</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-80-102-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>102</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-80-102-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R102" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-81-103-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>81</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-81-103-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>103</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-81-103-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R103" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><span class=pl-k>class</span> <span class=pl-v>SumGCNEncoder</span>(<span class=pl-s1>nn</span>.<span class=pl-c1>Module</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-82-104-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>82</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-82-104-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>104</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-82-104-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R104" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>def</span> <span class=pl-en>__init__</span>(<span class=pl-s1>self</span>, <span class=pl-s1>input_dim</span>, <span class=pl-s1>output_dim</span>, <span class=pl-s1>num_support</span>,</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-82-105-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-82-105-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>105</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-82-105-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R105" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>dropout</span><span class=pl-c1>=</span><span class=pl-c1>0.</span>,</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-83-106-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>83</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-83-106-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>106</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-83-106-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R106" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>use_bias</span><span class=pl-c1>=</span><span class=pl-c1>False</span>, <span class=pl-s1>activation</span><span class=pl-c1>=</span><span class=pl-c1>F</span>.<span class=pl-c1>relu</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-84-107-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>84</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-84-107-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>107</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-84-107-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R107" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s>"""对得到的每类评分使用求和的方式进行聚合</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-85-108-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>85</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-85-108-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>108</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-85-108-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R108" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><span class=pl-s> </span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));flex-grow:1" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-98-121-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell" title="" colSpan="4"><div class="d-flex flex-row"><button class="Button Button--iconOnly Button--invisible ExpandableHunkHeaderDiffLine-module__expand-button-line--rnQN5 ExpandableHunkHeaderDiffLine-module__expand-button-unified--j86KQ" aria-label="Expand file from line 108 to line 122" data-direction="all" aria-hidden="true" tabindex="-1"><svg aria-hidden="true" focusable="false" class="octicon octicon-unfold" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m8.177.677 2.896 2.896a.25.25 0 0 1-.177.427H8.75v1.25a.75.75 0 0 1-1.5 0V4H5.104a.25.25 0 0 1-.177-.427L7.823.677a.25.25 0 0 1 .354 0ZM7.25 10.75a.75.75 0 0 1 1.5 0V12h2.146a.25.25 0 0 1 .177.427l-2.896 2.896a.25.25 0 0 1-.354 0l-2.896-2.896A.25.25 0 0 1 5.104 12H7.25v-1.25Zm-5-2a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM6 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 6 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM12 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 12 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5Z"></path></svg></button><code class="diff-text-cell hunk"><div class="diff-text-inner color-fg-muted">@@ -99,14 +122,16 @@ def __init__(self, input_dim, output_dim, num_support,</div></code></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-99-122-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>99</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-99-122-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>122</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-99-122-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R122" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>weight</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Parameter</span>(<span class=pl-s1>torch</span>.<span class=pl-c1>Tensor</span>(</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-100-123-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>100</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-100-123-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>123</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-100-123-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R123" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>input_dim</span>, <span class=pl-s1>output_dim</span> <span class=pl-c1>*</span> <span class=pl-s1>num_support</span>))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-101-124-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>101</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-101-124-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>124</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-101-124-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R124" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>if</span> <span class=pl-s1>self</span>.<span class=pl-c1>use_bias</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-102-124-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>102</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-102-124-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-102-124-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L102" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>bias</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Parameter</span>(<span class=pl-s1>torch</span>.<span class=pl-c1>Tensor</span>(<span class=pl-s1>output_dim</span>, ))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-102-125-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-102-125-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>125</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-102-125-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R125" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>bias_user</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Parameter</span>(<span class=pl-s1>torch</span>.<span class=pl-c1>Tensor</span>(<span class=pl-s1>output_dim</span>, ))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-102-126-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-102-126-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>126</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-102-126-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R126" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>bias_item</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Parameter</span>(<span class=pl-s1>torch</span>.<span class=pl-c1>Tensor</span>(<span class=pl-s1>output_dim</span>, ))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-102-127-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-102-127-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>127</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-102-127-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R127" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>dropout</span> <span class=pl-c1>=</span> <span class=pl-en>InputDropout</span>(<span class=pl-c1>1</span> <span class=pl-c1>-</span> <span class=pl-s1>dropout</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-103-128-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>103</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-103-128-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>128</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-103-128-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R128" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>reset_parameters</span>()</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-104-128-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>104</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-104-128-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-104-128-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L104" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>weight</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>weight</span>.<span class=pl-c1>view</span>(<span class=pl-s1>input_dim</span>, <span class=pl-s1>output_dim</span>, <span class=pl-c1>5</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-105-129-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>105</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-105-129-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>129</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-105-129-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R129" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-106-130-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>106</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-106-130-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>130</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-106-130-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R130" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>def</span> <span class=pl-en>reset_parameters</span>(<span class=pl-s1>self</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-107-130-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>107</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-107-130-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-107-130-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L107" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class="pl-s1">init</span>.<span class="pl-c1 x x-first x-last">kaiming_uniform_</span>(<span class="pl-s1">self</span>.<span class="pl-c1">weight</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-107-131-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-107-131-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>131</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-107-131-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R131" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class="pl-s1">init</span>.<span class="pl-c1 x x-first x-last">xavier_uniform_</span>(<span class="pl-s1">self</span>.<span class="pl-c1">weight</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-108-132-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>108</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-108-132-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>132</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-108-132-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R132" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>if</span> <span class=pl-s1>self</span>.<span class=pl-c1>use_bias</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-109-132-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>109</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-109-132-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-109-132-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L109" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>init</span>.<span class=pl-c1>zeros_</span>(<span class=pl-s1>self</span>.<span class=pl-c1>bias</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-109-133-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-109-133-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>133</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-109-133-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R133" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>init</span>.<span class=pl-c1>zeros_</span>(<span class=pl-s1>self</span>.<span class=pl-c1>bias_user</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-109-134-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-109-134-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>134</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-109-134-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R134" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>init</span>.<span class=pl-c1>zeros_</span>(<span class=pl-s1>self</span>.<span class=pl-c1>bias_item</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-110-135-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>110</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-110-135-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>135</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-110-135-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R135" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-111-136-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>111</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-111-136-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>136</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-111-136-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R136" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>def</span> <span class=pl-en>forward</span>(<span class=pl-s1>self</span>, <span class=pl-s1>user_supports</span>, <span class=pl-s1>item_supports</span>, <span class=pl-s1>user_inputs</span>, <span class=pl-s1>item_inputs</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-112-137-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>112</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-112-137-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>137</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-112-137-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R137" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s>"""SumGCNEncoder计算逻辑</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));flex-grow:1" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-123-148-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell" title="" colSpan="4"><div class="d-flex flex-row"><button class="Button Button--iconOnly Button--invisible ExpandableHunkHeaderDiffLine-module__expand-button-line--rnQN5 ExpandableHunkHeaderDiffLine-module__expand-button-unified--j86KQ" aria-label="Expand file from line 137 to line 149" data-direction="all" aria-hidden="true" tabindex="-1"><svg aria-hidden="true" focusable="false" class="octicon octicon-unfold" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m8.177.677 2.896 2.896a.25.25 0 0 1-.177.427H8.75v1.25a.75.75 0 0 1-1.5 0V4H5.104a.25.25 0 0 1-.177-.427L7.823.677a.25.25 0 0 1 .354 0ZM7.25 10.75a.75.75 0 0 1 1.5 0V12h2.146a.25.25 0 0 1 .177.427l-2.896 2.896a.25.25 0 0 1-.354 0l-2.896-2.896A.25.25 0 0 1 5.104 12H7.25v-1.25Zm-5-2a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM6 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 6 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM12 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 12 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5Z"></path></svg></button><code class="diff-text-cell hunk"><div class="diff-text-inner color-fg-muted">@@ -124,23 +149,27 @@ def forward(self, user_supports, item_supports, user_inputs, item_inputs):</div></code></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-124-149-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>124</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-124-149-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>149</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-124-149-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R149" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><span class=pl-s> [torch.Tensor]: 商品的隐层特征</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-125-150-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>125</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-125-150-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>150</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-125-150-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R150" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><span class=pl-s> """</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-126-151-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>126</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-126-151-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>151</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-126-151-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R151" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>assert</span> <span class=pl-en>len</span>(<span class=pl-s1>user_supports</span>) <span class=pl-c1>==</span> <span class=pl-en>len</span>(<span class=pl-s1>item_supports</span>) <span class=pl-c1>==</span> <span class=pl-s1>self</span>.<span class=pl-c1>num_support</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-127-151-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>127</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-127-151-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-127-151-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L127" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>user_hidden</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-128-151-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>128</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-128-151-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-128-151-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L128" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>item_hidden</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-151-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>129</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-151-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-151-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L129" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>w</span> <span class=pl-c1>=</span> <span class=pl-c1>0</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-152-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-152-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>152</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-152-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R152" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>user_inputs</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>dropout</span>(<span class=pl-s1>user_inputs</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-153-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-153-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>153</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-153-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R153" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>item_inputs</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>dropout</span>(<span class=pl-s1>item_inputs</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-154-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-154-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>154</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-154-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R154" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-155-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-155-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>155</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-155-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R155" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>user_hidden</span> <span class=pl-c1>=</span> []</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-156-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-156-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>156</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-156-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R156" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>item_hidden</span> <span class=pl-c1>=</span> []</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-157-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-157-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>157</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-129-157-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R157" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>weights</span> <span class=pl-c1>=</span> <span class=pl-s1>torch</span>.<span class=pl-c1>split</span>(<span class=pl-s1>self</span>.<span class=pl-c1>weight</span>, <span class=pl-s1>self</span>.<span class=pl-c1>output_dim</span>, <span class=pl-s1>dim</span><span class=pl-c1>=</span><span class=pl-c1>1</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-130-158-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>130</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-130-158-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>158</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-130-158-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R158" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>for</span> <span class=pl-s1>i</span> <span class=pl-c1>in</span> <span class=pl-en>range</span>(<span class=pl-s1>self</span>.<span class=pl-c1>num_support</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-131-158-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>131</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-131-158-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-131-158-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L131" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class="pl-s1">w</span> <span class="pl-c1 x x-first">+=</span><span class="x"> </span><span class="pl-s1 x">self</span><span class="x">.</span><span class="pl-c1 x">weight</span><span class="x">[..., </span><span class="pl-s1 x">i</span><span class="x x-last">]</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-131-159-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-131-159-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>159</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-131-159-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R159" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class="pl-s1">w</span> <span class="pl-c1 x x-first">=</span><span class="x"> </span><span class="pl-en x">sum</span><span class="x">(</span><span class="pl-s1 x">weights</span><span class="x">[:(</span><span class="pl-s1 x">i</span><span class="x"> </span><span class="pl-c1 x">+</span><span class="x"> </span><span class="pl-c1 x">1</span><span class="x x-last">)])</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-132-160-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>132</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-132-160-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>160</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-132-160-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R160" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>tmp_u</span> <span class=pl-c1>=</span> <span class=pl-s1>torch</span>.<span class=pl-c1>matmul</span>(<span class=pl-s1>user_inputs</span>, <span class=pl-s1>w</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-133-161-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>133</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-133-161-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>161</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-133-161-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R161" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>tmp_v</span> <span class=pl-c1>=</span> <span class=pl-s1>torch</span>.<span class=pl-c1>matmul</span>(<span class=pl-s1>item_inputs</span>, <span class=pl-s1>w</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-134-162-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>134</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-134-162-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>162</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-134-162-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R162" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>tmp_user_hidden</span> <span class=pl-c1>=</span> <span class=pl-s1>torch</span>.<span class=pl-c1>sparse</span>.<span class=pl-c1>mm</span>(<span class=pl-s1>user_supports</span>[<span class=pl-s1>i</span>], <span class=pl-s1>tmp_v</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-135-163-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>135</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-135-163-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>163</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-135-163-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R163" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>tmp_item_hidden</span> <span class=pl-c1>=</span> <span class=pl-s1>torch</span>.<span class=pl-c1>sparse</span>.<span class=pl-c1>mm</span>(<span class=pl-s1>item_supports</span>[<span class=pl-s1>i</span>], <span class=pl-s1>tmp_u</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-136-163-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>136</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-136-163-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-136-163-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L136" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class="pl-s1">user_hidden</span><span class="x x-first"> </span><span class="pl-c1 x">+=</span><span class="x x-last"> </span><span class="pl-s1">tmp_user_hidden</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-137-163-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>137</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-137-163-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-137-163-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L137" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class="pl-s1">item_hidden</span><span class="x x-first"> </span><span class="pl-c1 x">+=</span><span class="x x-last"> </span><span class="pl-s1">tmp_item_hidden</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-137-164-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-137-164-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>164</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-137-164-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R164" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class="pl-s1">user_hidden</span><span class="x x-first">.</span><span class="pl-c1 x">append</span><span class="x x-last">(</span><span class="pl-s1">tmp_user_hidden</span><span class="x x-first x-last">)</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-137-165-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-137-165-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>165</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-137-165-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R165" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class="pl-s1">item_hidden</span><span class="x x-first">.</span><span class="pl-c1 x">append</span><span class="x x-last">(</span><span class="pl-s1">tmp_item_hidden</span><span class="x x-first x-last">)</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-138-166-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>138</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-138-166-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>166</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-138-166-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R166" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-138-167-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-138-167-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>167</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-138-167-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R167" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>user_hidden</span>, <span class=pl-s1>item_hidden</span> <span class=pl-c1>=</span> <span class=pl-en>sum</span>(<span class=pl-s1>user_hidden</span>), <span class=pl-en>sum</span>(<span class=pl-s1>item_hidden</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-139-168-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>139</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-139-168-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>168</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-139-168-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R168" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>user_outputs</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>activation</span>(<span class=pl-s1>user_hidden</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-140-169-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>140</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-140-169-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>169</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-140-169-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R169" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>item_outputs</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>activation</span>(<span class=pl-s1>item_hidden</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-141-170-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>141</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-141-170-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>170</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-141-170-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R170" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-142-171-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>142</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-142-171-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>171</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-142-171-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R171" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>if</span> <span class=pl-s1>self</span>.<span class=pl-c1>use_bias</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-143-171-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>143</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-143-171-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-143-171-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L143" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class="pl-s1">user_outputs</span> <span class="pl-c1">+=</span> <span class="pl-s1">self</span>.<span class="pl-c1 x x-first x-last">bias</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-143-172-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-143-172-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>172</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-143-172-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R172" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class="pl-s1">user_outputs</span> <span class="pl-c1">+=</span> <span class="pl-s1">self</span>.<span class="pl-c1 x x-first x-last">bias_user</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-144-173-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>144</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-144-173-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>173</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-144-173-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R173" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>item_outputs</span> <span class=pl-c1>+=</span> <span class=pl-s1>self</span>.<span class=pl-c1>bias_item</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-145-174-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>145</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-145-174-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>174</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-145-174-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R174" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-146-175-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>146</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-146-175-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>175</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-146-175-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R175" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>return</span> <span class=pl-s1>user_outputs</span>, <span class=pl-s1>item_outputs</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));flex-grow:1" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-166-195-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell" title="" colSpan="4"><div class="d-flex flex-row"><button class="Button Button--iconOnly Button--invisible ExpandableHunkHeaderDiffLine-module__expand-button-line--rnQN5 ExpandableHunkHeaderDiffLine-module__expand-button-unified--j86KQ" aria-label="Expand file from line 175 to line 196" data-direction="all" aria-hidden="true" tabindex="-1"><svg aria-hidden="true" focusable="false" class="octicon octicon-unfold" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m8.177.677 2.896 2.896a.25.25 0 0 1-.177.427H8.75v1.25a.75.75 0 0 1-1.5 0V4H5.104a.25.25 0 0 1-.177-.427L7.823.677a.25.25 0 0 1 .354 0ZM7.25 10.75a.75.75 0 0 1 1.5 0V12h2.146a.25.25 0 0 1 .177.427l-2.896 2.896a.25.25 0 0 1-.354 0l-2.896-2.896A.25.25 0 0 1 5.104 12H7.25v-1.25Zm-5-2a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM6 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 6 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM12 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 12 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5Z"></path></svg></button><code class="diff-text-cell hunk"><div class="diff-text-inner color-fg-muted">@@ -167,12 +196,32 @@ def __init__(self, input_dim, output_dim, dropout=0.,</div></code></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-167-196-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>167</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-167-196-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>196</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-167-196-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R196" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>use_bias</span> <span class=pl-c1>=</span> <span class=pl-s1>use_bias</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-168-197-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>168</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-168-197-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>197</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-168-197-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R197" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>activation</span> <span class=pl-c1>=</span> <span class=pl-s1>activation</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-169-198-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>169</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-169-198-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>198</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-169-198-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R198" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>share_weights</span> <span class=pl-c1>=</span> <span class=pl-s1>share_weights</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-170-198-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>170</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-170-198-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-170-198-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L170" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>linear_user</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Linear</span>(<span class=pl-s1>input_dim</span>, <span class=pl-s1>output_dim</span>, <span class=pl-s1>bias</span><span class=pl-c1>=</span><span class=pl-s1>use_bias</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-171-198-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>171</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-171-198-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-171-198-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L171" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-k>if</span> <span class=pl-s1>self</span>.<span class=pl-c1>share_weights</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-198-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>172</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-198-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-198-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L172" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>linear_item</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>linear_user</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-199-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-199-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>199</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-199-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R199" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>if</span> <span class=pl-c1>not</span> <span class=pl-s1>share_weights</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-200-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-200-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>200</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-200-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R200" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>weights_u</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Parameter</span>(<span class=pl-s1>torch</span>.<span class=pl-c1>Tensor</span>(<span class=pl-s1>input_dim</span>, <span class=pl-s1>output_dim</span>))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-201-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-201-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>201</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-201-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R201" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>weights_v</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Parameter</span>(<span class=pl-s1>torch</span>.<span class=pl-c1>Tensor</span>(<span class=pl-s1>input_dim</span>, <span class=pl-s1>output_dim</span>))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-202-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-202-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>202</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-202-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R202" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>if</span> <span class=pl-s1>use_bias</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-203-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-203-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>203</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-203-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R203" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>user_bias</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Parameter</span>(<span class=pl-s1>torch</span>.<span class=pl-c1>Tensor</span>(<span class=pl-s1>output_dim</span>))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-204-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-204-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>204</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-172-204-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R204" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>item_bias</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Parameter</span>(<span class=pl-s1>torch</span>.<span class=pl-c1>Tensor</span>(<span class=pl-s1>output_dim</span>))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-173-205-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>173</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-173-205-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>205</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-173-205-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R205" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>else</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-174-205-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>174</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-174-205-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-174-205-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L174" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>linear_item</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Linear</span>(<span class=pl-s1>input_dim</span>, <span class=pl-s1>output_dim</span>, <span class=pl-s1>bias</span><span class=pl-c1>=</span><span class=pl-s1>use_bias</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-174-206-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-174-206-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>206</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-174-206-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R206" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>weights_u</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Parameter</span>(<span class=pl-s1>torch</span>.<span class=pl-c1>Tensor</span>(<span class=pl-s1>input_dim</span>, <span class=pl-s1>output_dim</span>))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-174-207-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-174-207-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>207</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-174-207-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R207" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>weights_v</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>weights_u</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-174-208-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-174-208-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>208</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-174-208-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R208" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>if</span> <span class=pl-s1>use_bias</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-174-209-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-174-209-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>209</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-174-209-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R209" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>user_bias</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Parameter</span>(<span class=pl-s1>torch</span>.<span class=pl-c1>Tensor</span>(<span class=pl-s1>output_dim</span>))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-174-210-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-174-210-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>210</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-174-210-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R210" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>item_bias</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>user_bias</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-211-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>175</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-211-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>211</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-211-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R211" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>dropout</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Dropout</span>(<span class=pl-s1>dropout</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-212-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-212-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>212</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-212-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R212" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>reset_parameters</span>()</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-213-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-213-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>213</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-213-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R213" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-214-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-214-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>214</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-214-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R214" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>def</span> <span class=pl-en>reset_parameters</span>(<span class=pl-s1>self</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-215-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-215-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>215</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-215-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R215" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>if</span> <span class=pl-c1>not</span> <span class=pl-s1>self</span>.<span class=pl-c1>share_weights</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-216-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-216-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>216</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-216-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R216" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>init</span>.<span class=pl-c1>xavier_uniform_</span>(<span class=pl-s1>self</span>.<span class=pl-c1>weights_u</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-217-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-217-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>217</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-217-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R217" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>init</span>.<span class=pl-c1>xavier_uniform_</span>(<span class=pl-s1>self</span>.<span class=pl-c1>weights_v</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-218-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-218-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>218</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-218-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R218" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>if</span> <span class=pl-s1>self</span>.<span class=pl-c1>use_bias</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-219-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-219-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>219</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-219-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R219" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>init</span>.<span class=pl-c1>normal_</span>(<span class=pl-s1>self</span>.<span class=pl-c1>user_bias</span>, <span class=pl-s1>std</span><span class=pl-c1>=</span><span class=pl-c1>0.5</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-220-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-220-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>220</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-220-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R220" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>init</span>.<span class=pl-c1>normal_</span>(<span class=pl-s1>self</span>.<span class=pl-c1>item_bias</span>, <span class=pl-s1>std</span><span class=pl-c1>=</span><span class=pl-c1>0.5</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-221-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-221-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>221</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-221-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R221" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>else</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-222-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-222-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>222</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-222-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R222" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>init</span>.<span class=pl-c1>xavier_uniform_</span>(<span class=pl-s1>self</span>.<span class=pl-c1>weights_u</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-223-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-223-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>223</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-223-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R223" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>if</span> <span class=pl-s1>self</span>.<span class=pl-c1>use_bias</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-224-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-224-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>224</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-175-224-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R224" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>init</span>.<span class=pl-c1>normal_</span>(<span class=pl-s1>self</span>.<span class=pl-c1>user_bias</span>, <span class=pl-s1>std</span><span class=pl-c1>=</span><span class=pl-c1>0.5</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-176-225-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>176</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-176-225-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>225</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-176-225-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R225" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-177-226-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>177</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-177-226-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>226</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-177-226-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R226" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>def</span> <span class=pl-en>forward</span>(<span class=pl-s1>self</span>, <span class=pl-s1>user_inputs</span>, <span class=pl-s1>item_inputs</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-178-227-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>178</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-178-227-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>227</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-178-227-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R227" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s>"""前向传播</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));flex-grow:1" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-184-233-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell" title="" colSpan="4"><div class="d-flex flex-row"><button class="Button Button--iconOnly Button--invisible ExpandableHunkHeaderDiffLine-module__expand-button-line--rnQN5 ExpandableHunkHeaderDiffLine-module__expand-button-unified--j86KQ" aria-label="Expand file from line 227 to line 234" data-direction="all" aria-hidden="true" tabindex="-1"><svg aria-hidden="true" focusable="false" class="octicon octicon-unfold" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m8.177.677 2.896 2.896a.25.25 0 0 1-.177.427H8.75v1.25a.75.75 0 0 1-1.5 0V4H5.104a.25.25 0 0 1-.177-.427L7.823.677a.25.25 0 0 1 .354 0ZM7.25 10.75a.75.75 0 0 1 1.5 0V12h2.146a.25.25 0 0 1 .177.427l-2.896 2.896a.25.25 0 0 1-.354 0l-2.896-2.896A.25.25 0 0 1 5.104 12H7.25v-1.25Zm-5-2a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM6 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 6 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM12 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 12 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5Z"></path></svg></button><code class="diff-text-cell hunk"><div class="diff-text-inner color-fg-muted">@@ -185,17 +234,20 @@ def forward(self, user_inputs, item_inputs):</div></code></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-185-234-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>185</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-185-234-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>234</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-185-234-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R234" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><span class=pl-s> [torch.Tensor]: 输出的用户特征</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-186-235-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>186</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-186-235-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>235</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-186-235-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R235" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><span class=pl-s> [torch.Tensor]: 输出的商品特征</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-187-236-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>187</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-187-236-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>236</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-187-236-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R236" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><span class=pl-s> """</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-188-236-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>188</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-188-236-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-188-236-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L188" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>user_inputs</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>dropout</span>(<span class=pl-s1>user_inputs</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-189-236-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>189</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-189-236-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-189-236-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L189" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>user_outputs</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>linear_user</span>(<span class=pl-s1>user_inputs</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-190-236-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>190</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-190-236-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-190-236-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L190" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> </div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-191-236-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>191</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-191-236-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-191-236-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L191" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>item_inputs</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>dropout</span>(<span class=pl-s1>item_inputs</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-192-236-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>192</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-192-236-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-192-236-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L192" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>item_outputs</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>linear_item</span>(<span class=pl-s1>item_inputs</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-192-237-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-192-237-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>237</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-192-237-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R237" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>x_u</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>dropout</span>(<span class=pl-s1>user_inputs</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-192-238-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-192-238-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>238</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-192-238-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R238" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>x_u</span> <span class=pl-c1>=</span> <span class=pl-s1>torch</span>.<span class=pl-c1>matmul</span>(<span class=pl-s1>x_u</span>, <span class=pl-s1>self</span>.<span class=pl-c1>weights_u</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-193-239-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>193</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-193-239-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>239</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-193-239-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R239" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-194-239-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>194</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-194-239-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-194-239-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L194" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-k>if</span> <span class=pl-s1>self</span>.<span class=pl-c1>activation</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-195-239-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>195</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-195-239-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-195-239-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L195" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>user_outputs</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>activation</span>(<span class=pl-s1>user_outputs</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-196-239-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>196</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-196-239-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-196-239-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L196" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>item_outputs</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>activation</span>(<span class=pl-s1>item_outputs</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-196-240-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-196-240-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>240</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-196-240-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R240" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>x_v</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>dropout</span>(<span class=pl-s1>item_inputs</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-196-241-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-196-241-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>241</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-196-241-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R241" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>x_v</span> <span class=pl-c1>=</span> <span class=pl-s1>torch</span>.<span class=pl-c1>matmul</span>(<span class=pl-s1>x_v</span>, <span class=pl-s1>self</span>.<span class=pl-c1>weights_v</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-197-242-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>197</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-197-242-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>242</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-197-242-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R242" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-242-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>198</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-242-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-242-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L198" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-k>return</span> <span class=pl-s1>user_outputs</span>, <span class=pl-s1>item_outputs</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-243-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-243-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>243</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-243-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R243" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>u_outputs</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>activation</span>(<span class=pl-s1>x_u</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-244-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-244-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>244</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-244-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R244" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>v_outputs</span> <span class=pl-c1>=</span> <span class=pl-s1>self</span>.<span class=pl-c1>activation</span>(<span class=pl-s1>x_v</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-245-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-245-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>245</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-245-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R245" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-246-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-246-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>246</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-246-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R246" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>if</span> <span class=pl-s1>self</span>.<span class=pl-c1>use_bias</span>:</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-247-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-247-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>247</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-247-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R247" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>u_outputs</span> <span class=pl-c1>+=</span> <span class=pl-s1>self</span>.<span class=pl-c1>user_bias</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-248-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-248-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>248</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-248-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R248" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>v_outputs</span> <span class=pl-c1>+=</span> <span class=pl-s1>self</span>.<span class=pl-c1>item_bias</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-249-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-249-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>249</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-249-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R249" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-250-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-250-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>250</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-198-250-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R250" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>return</span> <span class=pl-s1>u_outputs</span>, <span class=pl-s1>v_outputs</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-199-251-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>199</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-199-251-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>251</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-199-251-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R251" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-200-252-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>200</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-200-252-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>252</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-200-252-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R252" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-201-253-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>201</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-201-253-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>253</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-201-253-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R253" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><span class=pl-k>class</span> <span class=pl-v>Decoder</span>(<span class=pl-s1>nn</span>.<span class=pl-c1>Module</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));flex-grow:1" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-213-265-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell" title="" colSpan="4"><div class="d-flex flex-row"><button class="Button Button--iconOnly Button--invisible ExpandableHunkHeaderDiffLine-module__expand-button-line--rnQN5 ExpandableHunkHeaderDiffLine-module__expand-button-unified--j86KQ" aria-label="Expand file from line 253 to line 266" data-direction="all" aria-hidden="true" tabindex="-1"><svg aria-hidden="true" focusable="false" class="octicon octicon-unfold" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m8.177.677 2.896 2.896a.25.25 0 0 1-.177.427H8.75v1.25a.75.75 0 0 1-1.5 0V4H5.104a.25.25 0 0 1-.177-.427L7.823.677a.25.25 0 0 1 .354 0ZM7.25 10.75a.75.75 0 0 1 1.5 0V12h2.146a.25.25 0 0 1 .177.427l-2.896 2.896a.25.25 0 0 1-.354 0l-2.896-2.896A.25.25 0 0 1 5.104 12H7.25v-1.25Zm-5-2a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM6 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 6 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM12 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 12 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5Z"></path></svg></button><code class="diff-text-cell hunk"><div class="diff-text-inner color-fg-muted">@@ -214,15 +266,17 @@ def __init__(self, input_dim, num_weights, num_classes, dropout=0., activation=F</div></code></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-214-266-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>214</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-214-266-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>266</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-214-266-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R266" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>num_classes</span> <span class=pl-c1>=</span> <span class=pl-s1>num_classes</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-215-267-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>215</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-215-267-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>267</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-215-267-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R267" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>activation</span> <span class=pl-c1>=</span> <span class=pl-s1>activation</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-216-268-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>216</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-216-268-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>268</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-216-268-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R268" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-217-268-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>217</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-217-268-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-217-268-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L217" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>weight</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Parameter</span>(<span class=pl-s1>torch</span>.<span class=pl-c1>Tensor</span>(<span class=pl-s1>num_weights</span>, <span class=pl-s1>input_dim</span>, <span class=pl-s1>input_dim</span>))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-217-269-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-217-269-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>269</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-217-269-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R269" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>weight</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>ParameterList</span>([<span class=pl-s1>nn</span>.<span class=pl-c1>Parameter</span>(<span class=pl-s1>torch</span>.<span class=pl-c1>Tensor</span>(<span class=pl-s1>input_dim</span>, <span class=pl-s1>input_dim</span>))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-217-270-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-217-270-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>270</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-217-270-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R270" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>for</span> <span class=pl-s1>_</span> <span class=pl-c1>in</span> <span class=pl-en>range</span>(<span class=pl-s1>num_weights</span>)])</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-218-271-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>218</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-218-271-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>271</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-218-271-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R271" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>weight_classifier</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Parameter</span>(<span class=pl-s1>torch</span>.<span class=pl-c1>Tensor</span>(<span class=pl-s1>num_weights</span>, <span class=pl-s1>num_classes</span>))</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-219-271-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>219</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-219-271-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-219-271-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L219" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>reset_parameters</span>()</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-220-271-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>220</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-220-271-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-220-271-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L220" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> </div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-220-272-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-220-272-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>272</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-220-272-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R272" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-221-273-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>221</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-221-273-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>273</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-221-273-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R273" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>dropout</span> <span class=pl-c1>=</span> <span class=pl-s1>nn</span>.<span class=pl-c1>Dropout</span>(<span class=pl-s1>dropout</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-221-274-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-221-274-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>274</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-221-274-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R274" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>self</span>.<span class=pl-c1>reset_parameters</span>()</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-222-275-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>222</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-222-275-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>275</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-222-275-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R275" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-223-276-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>223</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-223-276-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>276</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-223-276-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R276" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>def</span> <span class=pl-en>reset_parameters</span>(<span class=pl-s1>self</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-224-276-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>224</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-224-276-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-224-276-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L224" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>init</span>.<span class=pl-c1>kaiming_uniform_</span>(<span class=pl-s1>self</span>.<span class=pl-c1>weight</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-225-276-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>225</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-225-276-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-225-276-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875L225" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> <span class=pl-s1>init</span>.<span class=pl-c1>kaiming_uniform_</span>(<span class=pl-s1>self</span>.<span class=pl-c1>weight_classifier</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-225-277-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-225-277-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>277</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-225-277-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R277" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>for</span> <span class=pl-s1>i</span> <span class=pl-c1>in</span> <span class=pl-en>range</span>(<span class=pl-en>len</span>(<span class=pl-s1>self</span>.<span class=pl-c1>weight</span>)):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-225-278-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-225-278-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>278</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-225-278-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R278" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>init</span>.<span class=pl-c1>orthogonal_</span>(<span class=pl-s1>self</span>.<span class=pl-c1>weight</span>[<span class=pl-s1>i</span>], <span class=pl-s1>gain</span><span class=pl-c1>=</span><span class=pl-c1>1.1</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-225-279-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-225-279-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>279</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-225-279-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R279" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>init</span>.<span class=pl-c1>xavier_uniform_</span>(<span class=pl-s1>self</span>.<span class=pl-c1>weight_classifier</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-226-280-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>226</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-226-280-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>280</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-226-280-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R280" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-227-281-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>227</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-227-281-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>281</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-227-281-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R281" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>def</span> <span class=pl-en>forward</span>(<span class=pl-s1>self</span>, <span class=pl-s1>user_inputs</span>, <span class=pl-s1>item_inputs</span>, <span class=pl-s1>user_indices</span>, <span class=pl-s1>item_indices</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-228-282-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>228</code></td><td style="text-align:center" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-228-282-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>282</code></td><td style="padding-right:30px" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-228-282-2" data-line-anchor="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875R282" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s>"""计算非归一化的分类输出</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));flex-grow:1" data-grid-cell-id="diff-17bf1890055fd4e35331718c85e2110fe215275e0819673a573329c806bd8875-empty-empty-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell" title="" colSpan="4"><div class="d-flex flex-row"><button class="Button Button--iconOnly Button--invisible ExpandableHunkHeaderDiffLine-module__expand-button-line--rnQN5 ExpandableHunkHeaderDiffLine-module__expand-button-unified--j86KQ" aria-label="Expand file down from line 282" data-direction="down" aria-hidden="true" tabindex="-1"><svg aria-hidden="true" focusable="false" class="octicon octicon-fold-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m8.177 14.323 2.896-2.896a.25.25 0 0 0-.177-.427H8.75V7.764a.75.75 0 1 0-1.5 0V11H5.104a.25.25 0 0 0-.177.427l2.896 2.896a.25.25 0 0 0 .354 0ZM2.25 5a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM6 4.25a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5a.75.75 0 0 1 .75.75ZM8.25 5a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM12 4.25a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5a.75.75 0 0 1 .75.75Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5Z"></path></svg></button><code class="diff-text-cell hunk"><div class="diff-text-inner color-fg-muted"></div></code></div></td></tr></tbody></table></div></div></div><div class="pt-3"><div class="position-relative" style="contain:layout"><div class="Diff-module__diffHeaderWrapper--rsdD4" style="--header-sticky-offset:0px"><div class="DiffFileHeader-module__diff-file-header--TjXyn flex-wrap flex-sm-nowrap"><button class="Button Button--iconOnly Button--invisible flex-shrink-0 flex-order-1" aria-label="collapse file: chapter9/dataset.py"><svg aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button><div class="d-flex px-1 flex-items-center overflow-hidden flex-order-2 flex-sm-order-1"><h3 class="DiffFileHeader-module__file-name--mY1O5"><a class="Link--primary prc-Link-Link-85e08" href="#diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce"><code><!-- -->chapter9/dataset.py</code></a></h3><button data-component="IconButton" type="button" class="prc-Button-ButtonBase-c50BI ml-1 flex-shrink-0 prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="invisible" aria-describedby=":Rejdmlab:-loading-announcement" aria-labelledby=":Rjdmlab:"><svg aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="Tooltip__StyledTooltip-sc-e45c7z-0 jOyaRH CopyToClipboardButton-module__tooltip--Dq1IB" data-direction="s" aria-label="Copy file name to clipboard" aria-hidden="true" id=":Rjdmlab:">Copy file name to clipboard</span><button class="Button Button--iconOnly Button--invisible flex-shrink-0 js-expand-all-difflines-button" aria-label="expand all lines: chapter9/dataset.py" data-file-path="chapter9/dataset.py" aria-describedby=":R13dmlab:"><svg aria-hidden="true" focusable="false" class="octicon octicon-unfold" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m8.177.677 2.896 2.896a.25.25 0 0 1-.177.427H8.75v1.25a.75.75 0 0 1-1.5 0V4H5.104a.25.25 0 0 1-.177-.427L7.823.677a.25.25 0 0 1 .354 0ZM7.25 10.75a.75.75 0 0 1 1.5 0V12h2.146a.25.25 0 0 1 .177.427l-2.896 2.896a.25.25 0 0 1-.354 0l-2.896-2.896A.25.25 0 0 1 5.104 12H7.25v-1.25Zm-5-2a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM6 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 6 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM12 8a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5A.75.75 0 0 1 12 8Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5Z"></path></svg></button><span class="Tooltip__StyledTooltip-sc-e45c7z-0 jOyaRH" data-direction="s" role="tooltip" aria-hidden="true" id=":R13dmlab:">expand all lines: chapter9/dataset.py</span></div><div class="d-flex flex-row flex-justify-end flex-1 flex-order-1 flex-sm-order-2 flex-items-center"><div class="d-flex mr-2 flex-justify-end flex-items-center flex-1"><div class="d-flex flex-items-center gap-1 pl-1"><span class="f6 text-bold fgColor-success">+<!-- -->10</span><span class="f6 text-bold fgColor-danger">-<!-- -->1</span><span role="tooltip" aria-label="11 changes: 10 additions & 1 deletion" id=":R6cdmlab:" class="Tooltip__TooltipBase-sc-17tf59c-0 hWlpPn tooltipped-sw"><div class="d-flex"><div data-testid="addition diffstat" class="DiffSquares-module__diffSquare--h5kjy DiffSquares-module__addition--jeNtt"></div><div data-testid="addition diffstat" class="DiffSquares-module__diffSquare--h5kjy DiffSquares-module__addition--jeNtt"></div><div data-testid="addition diffstat" class="DiffSquares-module__diffSquare--h5kjy DiffSquares-module__addition--jeNtt"></div><div data-testid="addition diffstat" class="DiffSquares-module__diffSquare--h5kjy DiffSquares-module__addition--jeNtt"></div><div data-testid="neutral diffstat" class="DiffSquares-module__diffSquare--h5kjy DiffSquares-module__neutral--VlyoP"></div></div></span></div></div><button class="Button Button--iconOnly Button--invisible" aria-label="More options" id=":R14dmlab:" aria-haspopup="true" aria-expanded="false" tabindex="0"><svg aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button></div></div></div><div class="border position-relative rounded-bottom-2"><table style="--line-number-cell-width:44px;--line-number-cell-width-unified:88px" class="tab-size width-full DiffLines-module__tableLayoutFixed--YZcIJ" data-diff-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce" data-tab-size="8" data-paste-markdown-skip="true" role="grid"><thead class="sr-only"><tr><th scope="col">Original file line number</th><th scope="col">Diff line number</th><th scope="col">Diff line change</th></tr></thead><colgroup><col width="44"/><col width="44"/><col width="100%"/></colgroup><tbody><tr class="diff-line-row"> <td style="background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));flex-grow:1" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-99-99-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell" title="" colSpan="4"><div class="d-flex flex-row"><button class="Button Button--iconOnly Button--invisible ExpandableHunkHeaderDiffLine-module__expand-button-line--rnQN5 ExpandableHunkHeaderDiffLine-module__expand-button-unified--j86KQ" aria-label="Expand file up from line 100" data-direction="up" aria-hidden="true" tabindex="-1"><svg aria-hidden="true" focusable="false" class="octicon octicon-fold-up" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M7.823 1.677 4.927 4.573A.25.25 0 0 0 5.104 5H7.25v3.236a.75.75 0 1 0 1.5 0V5h2.146a.25.25 0 0 0 .177-.427L8.177 1.677a.25.25 0 0 0-.354 0ZM13.75 11a.75.75 0 0 0 0 1.5h.5a.75.75 0 0 0 0-1.5h-.5Zm-3.75.75a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75ZM7.75 11a.75.75 0 0 0 0 1.5h.5a.75.75 0 0 0 0-1.5h-.5ZM4 11.75a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75ZM1.75 11a.75.75 0 0 0 0 1.5h.5a.75.75 0 0 0 0-1.5h-.5Z"></path></svg></button><code class="diff-text-cell hunk"><div class="diff-text-inner color-fg-muted">@@ -100,11 +100,18 @@ def convert_to_homogeneous(user_feature: np.ndarray, movie_feature: np.ndarray):</div></code></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-100-100-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>100</code></td><td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-100-100-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>100</code></td><td style="padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-100-100-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR100" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>user_feature</span> <span class=pl-c1>=</span> <span class=pl-s1>np</span>.<span class=pl-c1>concatenate</span>(</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-101-101-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>101</code></td><td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-101-101-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>101</code></td><td style="padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-101-101-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR101" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> [<span class=pl-s1>user_feature</span>, <span class=pl-s1>np</span>.<span class=pl-c1>zeros</span>((<span class=pl-s1>num_user</span>, <span class=pl-s1>movie_feature_dim</span>))], <span class=pl-s1>axis</span><span class=pl-c1>=</span><span class=pl-c1>1</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-102-102-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>102</code></td><td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-102-102-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>102</code></td><td style="padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-102-102-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR102" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>movie_feature</span> <span class=pl-c1>=</span> <span class=pl-s1>np</span>.<span class=pl-c1>concatenate</span>(</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-103-102-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>103</code></td><td style="background-color:var(--diffBlob-deletionNum-bgColor, var(--diffBlob-deletion-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-103-102-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-deletionLine-bgColor, var(--diffBlob-deletion-bgColor-line));padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-103-102-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceL103" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell left-side-diff-cell border-right left-side" title=""><code class="diff-text syntax-highlighted-line deletion"><span class="diff-text-marker">-</span><div class="diff-text-inner"> [<span class="pl-s1 x x-first">movie_feature</span><span class="x x-last">, </span><span class="pl-s1">np</span>.<span class="pl-c1">zeros</span>((<span class="pl-s1">num_movie</span>, <span class="pl-s1">user_feature_dim</span>))], <span class="pl-s1">axis</span><span class="pl-c1">=</span><span class="pl-c1">1</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-103-103-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-103-103-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>103</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-103-103-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR103" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> [<span class="pl-s1">np</span>.<span class="pl-c1">zeros</span>((<span class="pl-s1">num_movie</span>, <span class="pl-s1">user_feature_dim</span>))<span class="x x-first">, </span><span class="pl-s1 x x-last">movie_feature</span>], <span class="pl-s1">axis</span><span class="pl-c1">=</span><span class="pl-c1">1</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-104-104-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>104</code></td><td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-104-104-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>104</code></td><td style="padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-104-104-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR104" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-105-105-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>105</code></td><td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-105-105-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>105</code></td><td style="padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-105-105-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR105" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-k>return</span> <span class=pl-s1>user_feature</span>, <span class=pl-s1>movie_feature</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-106-106-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>106</code></td><td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-106-106-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>106</code></td><td style="padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-106-106-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR106" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-107-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>107</code></td><td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-107-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>107</code></td><td style="padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-107-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR107" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-108-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-108-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>108</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-108-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR108" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"><span class=pl-k>def</span> <span class=pl-en>normalize_feature</span>(<span class=pl-s1>feature</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-109-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-109-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>109</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-109-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR109" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>row_sum</span> <span class=pl-c1>=</span> <span class=pl-s1>feature</span>.<span class=pl-c1>sum</span>(<span class=pl-c1>1</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-110-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-110-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>110</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-110-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR110" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>row_sum</span>[<span class=pl-s1>row_sum</span> <span class=pl-c1>==</span> <span class=pl-c1>0</span>] <span class=pl-c1>=</span> <span class=pl-s1>np</span>.<span class=pl-c1>inf</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-111-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-111-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>111</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-111-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR111" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>normalized_feat</span> <span class=pl-c1>=</span> <span class=pl-s1>feature</span> <span class=pl-c1>/</span> <span class=pl-s1>row_sum</span>.<span class=pl-c1>reshape</span>(<span class=pl-c1>-</span><span class=pl-c1>1</span>, <span class=pl-c1>1</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-112-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-112-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>112</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-112-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR112" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-k>return</span> <span class=pl-s1>normalized_feat</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-113-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-113-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>113</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-113-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR113" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-114-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-114-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>114</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-107-114-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR114" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-108-115-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>108</code></td><td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-108-115-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>115</code></td><td style="padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-108-115-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR115" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><span class=pl-k>class</span> <span class=pl-v>MovielensDataset</span>(<span class=pl-s1>object</span>):</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-109-116-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>109</code></td><td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-109-116-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>116</code></td><td style="padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-109-116-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR116" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>url</span> <span class=pl-c1>=</span> <span class=pl-s>"http://files.grouplens.org/datasets/movielens/ml-100k.zip"</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-110-117-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>110</code></td><td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-110-117-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>117</code></td><td style="padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-110-117-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR117" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));flex-grow:1" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-136-143-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell" title="" colSpan="4"><div class="d-flex flex-row"><div class="d-flex flex-column"><button class="Button Button--iconOnly Button--invisible ExpandableHunkHeaderDiffLine-module__expand-button-line--rnQN5 ExpandableHunkHeaderDiffLine-module__expand-button-unified--j86KQ ExpandableHunkHeaderDiffLine-module__expand-up-and-down--hCan_" aria-label="Expand file down from line 117" data-direction="down" aria-hidden="true" tabindex="-1"><svg aria-hidden="true" focusable="false" class="octicon octicon-fold-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m8.177 14.323 2.896-2.896a.25.25 0 0 0-.177-.427H8.75V7.764a.75.75 0 1 0-1.5 0V11H5.104a.25.25 0 0 0-.177.427l2.896 2.896a.25.25 0 0 0 .354 0ZM2.25 5a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM6 4.25a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5a.75.75 0 0 1 .75.75ZM8.25 5a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM12 4.25a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5a.75.75 0 0 1 .75.75Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5Z"></path></svg></button><button class="Button Button--iconOnly Button--invisible ExpandableHunkHeaderDiffLine-module__expand-button-line--rnQN5 ExpandableHunkHeaderDiffLine-module__expand-button-unified--j86KQ ExpandableHunkHeaderDiffLine-module__expand-up-and-down--hCan_" aria-label="Expand file up from line 144" data-direction="up" aria-hidden="true" tabindex="-1"><svg aria-hidden="true" focusable="false" class="octicon octicon-fold-up" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M7.823 1.677 4.927 4.573A.25.25 0 0 0 5.104 5H7.25v3.236a.75.75 0 1 0 1.5 0V5h2.146a.25.25 0 0 0 .177-.427L8.177 1.677a.25.25 0 0 0-.354 0ZM13.75 11a.75.75 0 0 0 0 1.5h.5a.75.75 0 0 0 0-1.5h-.5Zm-3.75.75a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75ZM7.75 11a.75.75 0 0 0 0 1.5h.5a.75.75 0 0 0 0-1.5h-.5ZM4 11.75a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75ZM1.75 11a.75.75 0 0 0 0 1.5h.5a.75.75 0 0 0 0-1.5h-.5Z"></path></svg></button></div><code class="diff-text-cell hunk"><div class="diff-text-inner color-fg-muted">@@ -137,6 +144,8 @@ def build_graph(edge_df: pd.DataFrame, user_df: pd.DataFrame,</div></code></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-137-144-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>137</code></td><td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-137-144-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>144</code></td><td style="padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-137-144-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR144" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-c># node property feature</span></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-138-145-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>138</code></td><td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-138-145-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>145</code></td><td style="padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-138-145-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR145" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>user_side_feature</span> <span class=pl-c1>=</span> <span class=pl-en>get_user_side_feature</span>(<span class=pl-s1>node_user</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-139-146-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>139</code></td><td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-139-146-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>146</code></td><td style="padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-139-146-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR146" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>movie_side_feature</span> <span class=pl-c1>=</span> <span class=pl-en>get_movie_side_feature</span>(<span class=pl-s1>node_movie</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-139-147-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-139-147-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>147</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-139-147-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR147" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>user_side_feature</span> <span class=pl-c1>=</span> <span class=pl-en>normalize_feature</span>(<span class=pl-s1>user_side_feature</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-139-148-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code></code></td><td style="background-color:var(--diffBlob-additionNum-bgColor, var(--diffBlob-addition-bgColor-num));text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-139-148-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number left-side" title=""><code>148</code></td><td style="background-color:var(--diffBlob-additionLine-bgColor, var(--diffBlob-addition-bgColor-line));padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-139-148-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR148" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line addition"><span class="diff-text-marker">+</span><div class="diff-text-inner"> <span class=pl-s1>movie_side_feature</span> <span class=pl-c1>=</span> <span class=pl-en>normalize_feature</span>(<span class=pl-s1>movie_side_feature</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-140-149-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>140</code></td><td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-140-149-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>149</code></td><td style="padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-140-149-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR149" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>user_side_feature</span>, <span class=pl-s1>movie_side_feature</span> <span class=pl-c1>=</span> <span class=pl-en>convert_to_homogeneous</span>(<span class=pl-s1>user_side_feature</span>,</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-141-150-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>141</code></td><td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-141-150-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>150</code></td><td style="padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-141-150-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR150" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"> <span class=pl-s1>movie_side_feature</span>)</div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-142-151-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>142</code></td><td style="text-align:center" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-142-151-1" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-line-number diff-line-number-neutral left-side" title=""><code>151</code></td><td style="padding-right:30px" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-142-151-2" data-line-anchor="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ceR151" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell diff-text-cell right-side-diff-cell left-side" title=""><code class="diff-text syntax-highlighted-line"><div class="diff-text-inner"><br></div></code><div aria-hidden="true" style="right:11px" class="position-absolute top-0 d-flex user-select-none"></div></td></tr><tr class="diff-line-row"> <td style="background-color:var(--bgColor-accent-muted, var(--color-accent-subtle));flex-grow:1" data-grid-cell-id="diff-3c80eaee3678e974389b68b1b8d46970a323db2ab0e92e9a3f8c7c8a8c3e88ce-empty-empty-0" data-selected="false" role="gridcell" tabindex="-1" valign="top" class="focusable-grid-cell" title="" colSpan="4"><div class="d-flex flex-row"><button class="Button Button--iconOnly Button--invisible ExpandableHunkHeaderDiffLine-module__expand-button-line--rnQN5 ExpandableHunkHeaderDiffLine-module__expand-button-unified--j86KQ" aria-label="Expand file down from line 151" data-direction="down" aria-hidden="true" tabindex="-1"><svg aria-hidden="true" focusable="false" class="octicon octicon-fold-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m8.177 14.323 2.896-2.896a.25.25 0 0 0-.177-.427H8.75V7.764a.75.75 0 1 0-1.5 0V11H5.104a.25.25 0 0 0-.177.427l2.896 2.896a.25.25 0 0 0 .354 0ZM2.25 5a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM6 4.25a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5a.75.75 0 0 1 .75.75ZM8.25 5a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5ZM12 4.25a.75.75 0 0 1-.75.75h-.5a.75.75 0 0 1 0-1.5h.5a.75.75 0 0 1 .75.75Zm2.25.75a.75.75 0 0 0 0-1.5h-.5a.75.75 0 0 0 0 1.5h.5Z"></path></svg></button><code class="diff-text-cell hunk"><div class="diff-text-inner color-fg-muted"></div></code></div></td></tr></tbody></table></div></div></div></div><div class="d-flex flex-column gap-2 pt-3 react-comments-container Comment-module__commit-discussion-comments--WaMOe" id="comments"><div class="d-flex flex-items-center flex-justify-between"><h2 class="sr-only">0<!-- --> commit comments</h2><div class="d-flex flex-items-center"><div class="h4 pr-2">Comments</div><span aria-hidden="true" data-scheme="secondary" class="prc-CounterLabel-CounterLabel-ZwXPe">0</span><span class="VisuallyHidden__StyledVisuallyHidden-sc-1rhpuyf-0 fhNCdb"> (<!-- -->0<!-- -->)</span></div></div></div><svg aria-hidden="true" version="1.1" viewBox="0 0 340 84" xmlns="http://www.w3.org/2000/svg" class="Box-sc-g0xbh4-0 hqtbbn"><defs><clipPath id="diff-placeholder"><rect height="11.9298746" rx="2" width="67.0175439" x="0" y="0"></rect><rect height="11.9298746" rx="2" width="100.701754" x="18.9473684" y="47.7194983"></rect><rect height="11.9298746" rx="2" width="37.8947368" x="0" y="71.930126"></rect><rect height="11.9298746" rx="2" width="53.3333333" x="127.017544" y="48.0703769"></rect><rect height="11.9298746" rx="2" width="72.9824561" x="187.719298" y="48.0703769"></rect><rect height="11.9298746" rx="2" width="140.350877" x="76.8421053" y="0"></rect><rect height="11.9298746" rx="2" width="140.350877" x="17.8947368" y="23.8597491"></rect><rect height="11.9298746" rx="2" width="173.684211" x="166.315789" y="23.8597491"></rect></clipPath><linearGradient id="animated-diff-gradient" spreadMethod="reflect" x1="0" x2="0" y1="0" y2="1"><stop offset="0" stop-color="#eee"></stop><stop offset="0.2" stop-color="#eee"></stop><stop offset="0.5" stop-color="#ddd"></stop><stop offset="0.8" stop-color="#eee"></stop><stop offset="1" stop-color="#eee"></stop><animateTransform attributeName="y1" dur="1s" repeatCount="3" values="0%; 100%; 0"></animateTransform><animateTransform attributeName="y2" dur="1s" repeatCount="3" values="100%; 200%; 0"></animateTransform></linearGradient></defs></svg></div></div><div class="Box-sc-g0xbh4-0"></div></div></div></div></div> <!-- --> <script type="application/json" id="__PRIMER_DATA_:R0:__">{"resolvedServerColorMode":"day"}</script></div> </react-app> </div> </turbo-frame> </main> </div> </div> <footer class="footer pt-8 pb-6 f6 color-fg-muted p-responsive" role="contentinfo" > <h2 class='sr-only'>Footer</h2> <div class="d-flex flex-justify-center flex-items-center flex-column-reverse flex-lg-row flex-wrap flex-lg-nowrap"> <div class="d-flex flex-items-center flex-shrink-0 mx-2"> <a aria-label="Homepage" title="GitHub" class="footer-octicon mr-2" href="https://github.com"> <svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github"> <path d="M12.5.75C6.146.75 1 5.896 1 12.25c0 5.089 3.292 9.387 7.863 10.91.575.101.79-.244.79-.546 0-.273-.014-1.178-.014-2.142-2.889.532-3.636-.704-3.866-1.35-.13-.331-.69-1.352-1.18-1.625-.402-.216-.977-.748-.014-.762.906-.014 1.553.834 1.769 1.179 1.035 1.74 2.688 1.25 3.349.948.1-.747.402-1.25.733-1.538-2.559-.287-5.232-1.279-5.232-5.678 0-1.25.445-2.285 1.178-3.09-.115-.288-.517-1.467.115-3.048 0 0 .963-.302 3.163 1.179.92-.259 1.897-.388 2.875-.388.977 0 1.955.13 2.875.388 2.2-1.495 3.162-1.179 3.162-1.179.633 1.581.23 2.76.115 3.048.733.805 1.179 1.825 1.179 3.09 0 4.413-2.688 5.39-5.247 5.678.417.36.776 1.05.776 2.128 0 1.538-.014 2.774-.014 3.162 0 .302.216.662.79.547C20.709 21.637 24 17.324 24 12.25 24 5.896 18.854.75 12.5.75Z"></path> </svg> </a> <span> © 2025 GitHub, Inc. </span> </div> <nav aria-label="Footer"> <h3 class="sr-only" id="sr-footer-heading">Footer navigation</h3> <ul class="list-style-none d-flex flex-justify-center flex-wrap mb-2 mb-lg-0" aria-labelledby="sr-footer-heading"> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to Terms","label":"text:terms"}" href="https://docs.github.com/site-policy/github-terms/github-terms-of-service" data-view-component="true" class="Link--secondary Link">Terms</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to privacy","label":"text:privacy"}" href="https://docs.github.com/site-policy/privacy-policies/github-privacy-statement" data-view-component="true" class="Link--secondary Link">Privacy</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to security","label":"text:security"}" href="https://github.com/security" data-view-component="true" class="Link--secondary Link">Security</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to status","label":"text:status"}" href="https://www.githubstatus.com/" data-view-component="true" class="Link--secondary Link">Status</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to docs","label":"text:docs"}" href="https://docs.github.com/" data-view-component="true" class="Link--secondary Link">Docs</a> </li> <li class="mx-2"> <a data-analytics-event="{"category":"Footer","action":"go to contact","label":"text:contact"}" href="https://support.github.com?tags=dotcom-footer" data-view-component="true" class="Link--secondary Link">Contact</a> </li> <li class="mx-2" > <cookie-consent-link> <button type="button" class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent" data-action="click:cookie-consent-link#showConsentManagement" data-analytics-event="{"location":"footer","action":"cookies","context":"subfooter","tag":"link","label":"cookies_link_subfooter_footer"}" > Manage cookies </button> </cookie-consent-link> </li> <li class="mx-2"> <cookie-consent-link> <button type="button" class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent" data-action="click:cookie-consent-link#showConsentManagement" data-analytics-event="{"location":"footer","action":"dont_share_info","context":"subfooter","tag":"link","label":"dont_share_info_link_subfooter_footer"}" > Do not share my personal information </button> </cookie-consent-link> </li> </ul> </nav> </div> </footer> <ghcc-consent id="ghcc" class="position-fixed bottom-0 left-0" style="z-index: 999999" data-initial-cookie-consent-allowed="" data-cookie-consent-required="false"></ghcc-consent> <div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert"> <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path> </svg> <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> You can’t perform that action at this time. </div> <template id="site-details-dialog"> <details class="details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm" open> <summary role="button" aria-label="Close dialog"></summary> <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal"> <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> </button> <div class="octocat-spinner my-6 js-details-dialog-spinner"></div> </details-dialog> </details> </template> <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;"> <div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;"> </div> </div> <template id="snippet-clipboard-copy-button"> <div class="zeroclipboard-container position-absolute right-0 top-0"> <clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0" data-copy-feedback="Copied!" data-tooltip-direction="w"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2"> <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </clipboard-copy> </div> </template> <template id="snippet-clipboard-copy-button-unpositioned"> <div class="zeroclipboard-container"> <clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon"> <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path> </svg> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none"> <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path> </svg> </clipboard-copy> </div> </template> </div> <div id="js-global-screen-reader-notice" class="sr-only mt-n1" aria-live="polite" aria-atomic="true" ></div> <div id="js-global-screen-reader-notice-assertive" class="sr-only mt-n1" aria-live="assertive" aria-atomic="true"></div> </body> </html>