{"version":2,"relationshipURLBase":"https://codingai-lec03.pages.dev/course/notebook-blocks/18c1d267b0f04e81bb9b3759cd9fafa6.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/18c1d267b0f04e81bb9b3759cd9fafa6.html","markdown":"https://codingai-lec03.pages.dev/course/notebook-blocks/18c1d267b0f04e81bb9b3759cd9fafa6.md","pages":[{"id":"reading-opening","title":"数据、破坏与瓶颈 · 实现代码","unit":"数据、破坏与瓶颈 · 实现代码","unitId":"notebook-blocks/18c1d267b0f04e81bb9b3759cd9fafa6","chapter":"course","number":1}],"aliases":[{"oldId":"b-c45732b738b602544ca4f20c","targetId":"b-c45732b738b602544ca4f20c","page":"reading-opening","operation":"move","beforeSHA256":"4730e90285e279b2564c179018b9df76aafd9db5dd2729f0f687ac380af591ed","afterSHA256":"4730e90285e279b2564c179018b9df76aafd9db5dd2729f0f687ac380af591ed","reason":"Same source body in authored semantic page"},{"oldId":"b-08c7f9ef146153be0f699b91","targetId":"b-08c7f9ef146153be0f699b91","page":"reading-opening","operation":"move","beforeSHA256":"bdd920b6a3639d7c76fd750259fb95a550c423c444e31d6ad42b136b98d4eb64","afterSHA256":"bdd920b6a3639d7c76fd750259fb95a550c423c444e31d6ad42b136b98d4eb64","reason":"Same source body in authored semantic page"},{"oldId":"b-8b3f44823b63e3f6ae9625dd","targetId":"b-8b3f44823b63e3f6ae9625dd","page":"reading-opening","operation":"move","beforeSHA256":"e91f24e4e4ca40e2099a0d81d30db6568f4bf2074b499eeee6e3959617bd97ac","afterSHA256":"e91f24e4e4ca40e2099a0d81d30db6568f4bf2074b499eeee6e3959617bd97ac","reason":"Same source body in authored semantic page"},{"oldId":"b-20c91942c79cf53130cfeac7","targetId":"b-20c91942c79cf53130cfeac7","page":"reading-opening","operation":"move","beforeSHA256":"0f845ef31b98ed8c96f689fea3088b0a7482be32b2d5510c83f9fcbb05da4c9d","afterSHA256":"0f845ef31b98ed8c96f689fea3088b0a7482be32b2d5510c83f9fcbb05da4c9d","reason":"Same source body in authored semantic page"},{"oldId":"b-25623df74d117487fbebb594","targetId":"b-25623df74d117487fbebb594","page":"reading-opening","operation":"move","beforeSHA256":"e69117b96838ca54dc91ac1267742da52d685277ae4d6dc3dbbec80d69fece9c","afterSHA256":"e69117b96838ca54dc91ac1267742da52d685277ae4d6dc3dbbec80d69fece9c","reason":"Same source body in authored semantic page"}],"blocks":[{"id":"b-c45732b738b602544ca4f20c","type":"p","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/18c1d267b0f04e81bb9b3759cd9fafa6.html#b-c45732b738b602544ca4f20c","content":"[LAB 08 · 图像重建：遮挡损失与表示评价](/course/notebooks/b5ba27f2c5ba4ec0922208a7d5dc80a4.html)","sha256":"4730e90285e279b2564c179018b9df76aafd9db5dd2729f0f687ac380af591ed","chapter":{"id":"course","title":"数据、破坏与瓶颈 · 实现代码"},"unit":{"id":"notebook-blocks/18c1d267b0f04e81bb9b3759cd9fafa6","title":"数据、破坏与瓶颈 · 实现代码"},"page":{"id":"reading-opening","title":"数据、破坏与瓶颈 · 实现代码","number":1},"sectionTitle":"数据、破坏与瓶颈 · 实现代码","currentQuestion":"数据、破坏与瓶颈 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":null,"nextBlock":"b-08c7f9ef146153be0f699b91","prerequisites":[],"relatedBlocks":[]},{"id":"b-08c7f9ef146153be0f699b91","type":"h1","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/18c1d267b0f04e81bb9b3759cd9fafa6.html#b-08c7f9ef146153be0f699b91","content":"# 数据、破坏与瓶颈 · 实现代码","sha256":"bdd920b6a3639d7c76fd750259fb95a550c423c444e31d6ad42b136b98d4eb64","chapter":{"id":"course","title":"数据、破坏与瓶颈 · 实现代码"},"unit":{"id":"notebook-blocks/18c1d267b0f04e81bb9b3759cd9fafa6","title":"数据、破坏与瓶颈 · 实现代码"},"page":{"id":"reading-opening","title":"数据、破坏与瓶颈 · 实现代码","number":1},"sectionTitle":"数据、破坏与瓶颈 · 实现代码","currentQuestion":"数据、破坏与瓶颈 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-c45732b738b602544ca4f20c","nextBlock":"b-8b3f44823b63e3f6ae9625dd","prerequisites":[{"id":"b-c45732b738b602544ca4f20c","url":"#b-c45732b738b602544ca4f20c","role":"problem-context"}],"relatedBlocks":[]},{"id":"b-8b3f44823b63e3f6ae9625dd","type":"p","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/18c1d267b0f04e81bb9b3759cd9fafa6.html#b-8b3f44823b63e3f6ae9625dd","content":"按问题继续","sha256":"e91f24e4e4ca40e2099a0d81d30db6568f4bf2074b499eeee6e3959617bd97ac","chapter":{"id":"course","title":"数据、破坏与瓶颈 · 实现代码"},"unit":{"id":"notebook-blocks/18c1d267b0f04e81bb9b3759cd9fafa6","title":"数据、破坏与瓶颈 · 实现代码"},"page":{"id":"reading-opening","title":"数据、破坏与瓶颈 · 实现代码","number":1},"sectionTitle":"数据、破坏与瓶颈 · 实现代码","currentQuestion":"数据、破坏与瓶颈 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-08c7f9ef146153be0f699b91","nextBlock":"b-20c91942c79cf53130cfeac7","prerequisites":[{"id":"b-08c7f9ef146153be0f699b91","url":"#b-08c7f9ef146153be0f699b91","role":"section-title"},{"id":"b-c45732b738b602544ca4f20c","url":"#b-c45732b738b602544ca4f20c","role":"problem-context"}],"relatedBlocks":[]},{"id":"b-20c91942c79cf53130cfeac7","type":"p","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/18c1d267b0f04e81bb9b3759cd9fafa6.html#b-20c91942c79cf53130cfeac7","content":"索引恢复、去噪/遮挡ConvAE训练、PCA基线、独立冻结评价","sha256":"0f845ef31b98ed8c96f689fea3088b0a7482be32b2d5510c83f9fcbb05da4c9d","chapter":{"id":"course","title":"数据、破坏与瓶颈 · 实现代码"},"unit":{"id":"notebook-blocks/18c1d267b0f04e81bb9b3759cd9fafa6","title":"数据、破坏与瓶颈 · 实现代码"},"page":{"id":"reading-opening","title":"数据、破坏与瓶颈 · 实现代码","number":1},"sectionTitle":"数据、破坏与瓶颈 · 实现代码","currentQuestion":"数据、破坏与瓶颈 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-8b3f44823b63e3f6ae9625dd","nextBlock":"b-25623df74d117487fbebb594","prerequisites":[{"id":"b-08c7f9ef146153be0f699b91","url":"#b-08c7f9ef146153be0f699b91","role":"section-title"},{"id":"b-c45732b738b602544ca4f20c","url":"#b-c45732b738b602544ca4f20c","role":"problem-context"}],"relatedBlocks":[]},{"id":"b-25623df74d117487fbebb594","type":"pre","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/18c1d267b0f04e81bb9b3759cd9fafa6.html#b-25623df74d117487fbebb594","content":"```\ndef digit_data():\n    data=load_digits(); x=torch.tensor(data.images/16,dtype=torch.float32)[:,None]\n    train,test=train_test_split(np.arange(len(x)),test_size=.3,random_state=SEED,stratify=data.target)\n    assert set(train).isdisjoint(test)\n    return x,data.target,train,test\n\ndef noise_corrupt(x):\n    return (x*(torch.rand_like(x)>.25)+torch.randn_like(x)*.15).clamp(0,1)\n\ndef patch_mask(n,ratio=.5):\n    # Grid is 4x4 patches, each 2x2 pixels. 1 means HIDDEN.\n    order=torch.rand(n,16).argsort(dim=1)\n    keep=int(16*(1-ratio))\n    patch=torch.ones(n,16);patch.scatter_(1,order[:,:keep],0)\n    return patch.reshape(n,1,4,4).repeat_interleave(2,2).repeat_interleave(2,3)\n\nclass ConvAE(nn.Module):\n    def __init__(self,channels=1):\n        super().__init__()\n        self.encoder=nn.Sequential(nn.Conv2d(channels,8,3,stride=2,padding=1),nn.ReLU(),\n          nn.Conv2d(8,16,3,stride=2,padding=1),nn.ReLU(),nn.Flatten(),nn.Linear(64,16))\n        self.expand=nn.Linear(16,64)\n        self.decoder=nn.Sequential(nn.ConvTranspose2d(16,8,4,stride=2,padding=1),nn.ReLU(),\n          nn.ConvTranspose2d(8,1,4,stride=2,padding=1),nn.Sigmoid())\n    def forward(self,x):\n        h=self.encoder(x);return self.decoder(self.expand(h).reshape(-1,16,2,2)),h\n```","sha256":"e69117b96838ca54dc91ac1267742da52d685277ae4d6dc3dbbec80d69fece9c","chapter":{"id":"course","title":"数据、破坏与瓶颈 · 实现代码"},"unit":{"id":"notebook-blocks/18c1d267b0f04e81bb9b3759cd9fafa6","title":"数据、破坏与瓶颈 · 实现代码"},"page":{"id":"reading-opening","title":"数据、破坏与瓶颈 · 实现代码","number":1},"sectionTitle":"数据、破坏与瓶颈 · 实现代码","currentQuestion":"数据、破坏与瓶颈 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-20c91942c79cf53130cfeac7","nextBlock":null,"prerequisites":[{"id":"b-08c7f9ef146153be0f699b91","url":"#b-08c7f9ef146153be0f699b91","role":"section-title"},{"id":"b-c45732b738b602544ca4f20c","url":"#b-c45732b738b602544ca4f20c","role":"problem-context"}],"relatedBlocks":[]}]}
