{"version":2,"relationshipURLBase":"https://codingai-lec03.pages.dev/course/notebook-blocks/afef202950ec4c049f8eeff5abc1af7e.html","relationshipResolution":"Resolve relative relationship URLs against relationshipURLBase; complete records and absolute URLs are in blocks.","title":"运行准备与结果身份 · 实现代码","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/afef202950ec4c049f8eeff5abc1af7e.html","markdown":"https://codingai-lec03.pages.dev/course/notebook-blocks/afef202950ec4c049f8eeff5abc1af7e.md","pages":[{"id":"reading-opening","title":"运行准备与结果身份 · 实现代码","unit":"运行准备与结果身份 · 实现代码","unitId":"notebook-blocks/afef202950ec4c049f8eeff5abc1af7e","chapter":"course","number":1}],"aliases":[{"oldId":"b-3dc3f1afa0a590eb12a21e46","targetId":"b-3dc3f1afa0a590eb12a21e46","page":"reading-opening","operation":"move","beforeSHA256":"88a04c9ecb442ccaa48afb715979a4f7ec256d11b69e583a238c98ab9d60e977","afterSHA256":"88a04c9ecb442ccaa48afb715979a4f7ec256d11b69e583a238c98ab9d60e977","reason":"Same source body in authored semantic page"},{"oldId":"b-72476642ff6dbc07e56be324","targetId":"b-72476642ff6dbc07e56be324","page":"reading-opening","operation":"move","beforeSHA256":"64e0a911bed15226b4c1020da8c8fabd32e53ab4f0e735df28d2a05dd9d14850","afterSHA256":"64e0a911bed15226b4c1020da8c8fabd32e53ab4f0e735df28d2a05dd9d14850","reason":"Same source body in authored semantic page"},{"oldId":"b-7f698ce6998333da0384df3d","targetId":"b-7f698ce6998333da0384df3d","page":"reading-opening","operation":"move","beforeSHA256":"e91f24e4e4ca40e2099a0d81d30db6568f4bf2074b499eeee6e3959617bd97ac","afterSHA256":"e91f24e4e4ca40e2099a0d81d30db6568f4bf2074b499eeee6e3959617bd97ac","reason":"Same source body in authored semantic page"},{"oldId":"b-a95007ca03d1ebdd6ab9f443","targetId":"b-a95007ca03d1ebdd6ab9f443","page":"reading-opening","operation":"move","beforeSHA256":"2a269d38480454fbc554b17f926927738416555e36045ec5fe468ba056454f5d","afterSHA256":"2a269d38480454fbc554b17f926927738416555e36045ec5fe468ba056454f5d","reason":"Same source body in authored semantic page"},{"oldId":"b-1bac9ebb28c1465247fc0541","targetId":"b-1bac9ebb28c1465247fc0541","page":"reading-opening","operation":"move","beforeSHA256":"1c09502a0af88ecc992c812ee8a92c14817a2fea125b3fe51e4382a22823aad0","afterSHA256":"1c09502a0af88ecc992c812ee8a92c14817a2fea125b3fe51e4382a22823aad0","reason":"Same source body in authored semantic page"}],"blocks":[{"id":"b-3dc3f1afa0a590eb12a21e46","type":"p","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/afef202950ec4c049f8eeff5abc1af7e.html#b-3dc3f1afa0a590eb12a21e46","content":"[LAB 07 · MoCo：历史 key、队列与两种更新](/course/notebooks/0d1b8f6fbf6a476c93ffcc169f2ec1f4.html)","sha256":"88a04c9ecb442ccaa48afb715979a4f7ec256d11b69e583a238c98ab9d60e977","chapter":{"id":"course","title":"运行准备与结果身份 · 实现代码"},"unit":{"id":"notebook-blocks/afef202950ec4c049f8eeff5abc1af7e","title":"运行准备与结果身份 · 实现代码"},"page":{"id":"reading-opening","title":"运行准备与结果身份 · 实现代码","number":1},"sectionTitle":"运行准备与结果身份 · 实现代码","currentQuestion":"运行准备与结果身份 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":null,"nextBlock":"b-72476642ff6dbc07e56be324","prerequisites":[],"relatedBlocks":[]},{"id":"b-72476642ff6dbc07e56be324","type":"h1","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/afef202950ec4c049f8eeff5abc1af7e.html#b-72476642ff6dbc07e56be324","content":"# 运行准备与结果身份 · 实现代码","sha256":"64e0a911bed15226b4c1020da8c8fabd32e53ab4f0e735df28d2a05dd9d14850","chapter":{"id":"course","title":"运行准备与结果身份 · 实现代码"},"unit":{"id":"notebook-blocks/afef202950ec4c049f8eeff5abc1af7e","title":"运行准备与结果身份 · 实现代码"},"page":{"id":"reading-opening","title":"运行准备与结果身份 · 实现代码","number":1},"sectionTitle":"运行准备与结果身份 · 实现代码","currentQuestion":"运行准备与结果身份 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-3dc3f1afa0a590eb12a21e46","nextBlock":"b-7f698ce6998333da0384df3d","prerequisites":[{"id":"b-3dc3f1afa0a590eb12a21e46","url":"#b-3dc3f1afa0a590eb12a21e46","role":"problem-context"}],"relatedBlocks":[]},{"id":"b-7f698ce6998333da0384df3d","type":"p","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/afef202950ec4c049f8eeff5abc1af7e.html#b-7f698ce6998333da0384df3d","content":"按问题继续","sha256":"e91f24e4e4ca40e2099a0d81d30db6568f4bf2074b499eeee6e3959617bd97ac","chapter":{"id":"course","title":"运行准备与结果身份 · 实现代码"},"unit":{"id":"notebook-blocks/afef202950ec4c049f8eeff5abc1af7e","title":"运行准备与结果身份 · 实现代码"},"page":{"id":"reading-opening","title":"运行准备与结果身份 · 实现代码","number":1},"sectionTitle":"运行准备与结果身份 · 实现代码","currentQuestion":"运行准备与结果身份 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-72476642ff6dbc07e56be324","nextBlock":"b-a95007ca03d1ebdd6ab9f443","prerequisites":[{"id":"b-72476642ff6dbc07e56be324","url":"#b-72476642ff6dbc07e56be324","role":"section-title"},{"id":"b-3dc3f1afa0a590eb12a21e46","url":"#b-3dc3f1afa0a590eb12a21e46","role":"problem-context"}],"relatedBlocks":[]},{"id":"b-a95007ca03d1ebdd6ab9f443","type":"p","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/afef202950ec4c049f8eeff5abc1af7e.html#b-a95007ca03d1ebdd6ab9f443","content":"真实FIFO键、EMA、梯度更新及低于随机基线的保留结果","sha256":"2a269d38480454fbc554b17f926927738416555e36045ec5fe468ba056454f5d","chapter":{"id":"course","title":"运行准备与结果身份 · 实现代码"},"unit":{"id":"notebook-blocks/afef202950ec4c049f8eeff5abc1af7e","title":"运行准备与结果身份 · 实现代码"},"page":{"id":"reading-opening","title":"运行准备与结果身份 · 实现代码","number":1},"sectionTitle":"运行准备与结果身份 · 实现代码","currentQuestion":"运行准备与结果身份 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-7f698ce6998333da0384df3d","nextBlock":"b-1bac9ebb28c1465247fc0541","prerequisites":[{"id":"b-72476642ff6dbc07e56be324","url":"#b-72476642ff6dbc07e56be324","role":"section-title"},{"id":"b-3dc3f1afa0a590eb12a21e46","url":"#b-3dc3f1afa0a590eb12a21e46","role":"problem-context"}],"relatedBlocks":[]},{"id":"b-1bac9ebb28c1465247fc0541","type":"pre","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/afef202950ec4c049f8eeff5abc1af7e.html#b-1bac9ebb28c1465247fc0541","content":"```\n\"\"\"CPU image contrastive experiment. No class/color label enters pretraining.\"\"\"\nfrom pathlib import Path\nimport copy, hashlib, json, os, platform, time\nimport numpy as np\nimport torch\nfrom torch import nn\nfrom torch.nn import functional as F\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.pipeline import make_pipeline\nfrom sklearn.preprocessing import StandardScaler\nimport matplotlib\nmatplotlib.use('Agg')\nimport matplotlib.pyplot as plt\n\ntorch.set_num_threads(2)\nSEED=20260922\n\nSOURCE_SHA256='09bbb32bb5502db3535d89efec2045ffcd85c249b49f622390f12875060845d4'\nprint(\"source\",SOURCE_SHA256,\"torch\",torch.__version__)\n```","sha256":"1c09502a0af88ecc992c812ee8a92c14817a2fea125b3fe51e4382a22823aad0","chapter":{"id":"course","title":"运行准备与结果身份 · 实现代码"},"unit":{"id":"notebook-blocks/afef202950ec4c049f8eeff5abc1af7e","title":"运行准备与结果身份 · 实现代码"},"page":{"id":"reading-opening","title":"运行准备与结果身份 · 实现代码","number":1},"sectionTitle":"运行准备与结果身份 · 实现代码","currentQuestion":"运行准备与结果身份 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-a95007ca03d1ebdd6ab9f443","nextBlock":null,"prerequisites":[{"id":"b-72476642ff6dbc07e56be324","url":"#b-72476642ff6dbc07e56be324","role":"section-title"},{"id":"b-3dc3f1afa0a590eb12a21e46","url":"#b-3dc3f1afa0a590eb12a21e46","role":"problem-context"}],"relatedBlocks":[]}]}
