def recover_all(net, dir_t, idx=0):
layers = net.params.keys()
net.copy_from(dir_t + 'caffemodel%d' % idx)
codebook = pickle.load(open(dir_t + 'codebook%d' % idx))
maskCode = {}
codeDict = {}
for layer in layers:
W = net.params[layer][0].data
# ????
codes, _ = scv.vq(W.flatten(), codebook[layer])
# ????????
maskCode[layer] = np.reshape(codes, W.shape)
codeBookSize = len(codebook[layer])
a = maskCode[layer].flatten()
b = xrange(len(a))
codeDict[layer] = {}
for i in xrange(len(a)):
# codeDict????????????maskCode???????????
codeDict[layer].setdefault(a[i], []).append(b[i])
return codebook, maskCode, codeDict
评论列表
文章目录