[LAB 08 · 图像重建:遮挡损失与表示评价](/course/notebooks/b5ba27f2c5ba4ec0922208a7d5dc80a4.html) # 索引热身仍然有用,但不能叫学到了语义 · 实现代码 [独立阅读](/course/notebook-blocks/70b5b57303494570a973d1cf27053299.html) 按问题继续 索引恢复、去噪/遮挡ConvAE训练、PCA基线、独立冻结评价 展开完整实现代码 ``` import os, tempfile LAB_WORKDIR = tempfile.mkdtemp(prefix='lecture03-') os.chdir(LAB_WORKDIR) print('Ephemeral experiment workspace ready') import numpy as np x=np.arange(16,dtype=float).reshape(4,4) for visible in ([0,3,9,14],[0,5,10,15,3,6,9,12]): mask=np.ones(16,bool); mask[list(visible)]=False pred=np.full(16,x.ravel()[list(visible)].mean()) mse=((pred[mask]-x.ravel()[mask])**2).mean() print('visible',len(visible),'masked',mask.sum(),'masked MSE',round(float(mse),3)) rng=np.random.default_rng(7);ids_shuffle=rng.permutation(16) ids_restore=np.argsort(ids_shuffle);visible=ids_shuffle[:4] shuffled=np.concatenate([x.ravel()[visible],np.full(12,-1.)]) restored=shuffled[ids_restore] assert np.array_equal(restored[visible],x.ravel()[visible]) print('shuffle',ids_shuffle,'restore',ids_restore,'restored',restored) ```