MCPcopy Create free account
hub / github.com/dblalock/bolt / _insert_zeros

Function _insert_zeros

experiments/python/datasets.py:147–183  ·  view source on GitHub ↗
(X, nzeros)

Source from the content-addressed store, hash-verified

145# XXX: not clear whether this function is correct in general, but works for
146# 784D with the nzeros we get for 32 and 64 codebooks
147def _insert_zeros(X, nzeros):
148 N, D = X.shape
149 D_new = D + nzeros
150 X_new = np.zeros((N, D_new), dtype=X.dtype)
151
152 step = int(D / (nzeros + 1)) - 1
153
154 for i in range(nzeros):
155 in_start = step * i
156 in_end = in_start + step
157 # out_start = in_start + i + 1
158 out_start = (step + 1) * i
159 out_end = out_start + step
160 X_new[:, out_start:out_end] = X[:, in_start:in_end]
161
162 # out_start = out_end
163 # out_end += step
164
165 out_end += 1 # account for the last 0
166 remaining_len = D - in_end
167 out_remaining_len = D_new - out_end
168 # print "step", step
169 # print "in_start, in_end", in_start, in_end
170 # print "out_start, out_end", out_start, out_end
171 # print "D, D_new", D, D_new
172 # print "remaining_len, out_remaining_len", remaining_len, out_remaining_len
173 assert remaining_len == out_remaining_len
174
175 assert remaining_len >= 0
176 if remaining_len:
177 # X_new[:, out_end:out_end+remaining_len] = X[:, in_end:D]
178 X_new[:, out_end:] = X[:, in_end:]
179
180 assert np.array_equal(X[:, 0], X_new[:, 0])
181 assert np.array_equal(X[:, -1], X_new[:, -1])
182
183 return X_new
184
185
186def ensure_num_cols_multiple_of(X, multiple_of):

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected