MCPcopy
hub / github.com/ddbourgin/numpy-ml / test_VAE_loss

Function test_VAE_loss

numpy_ml/tests/test_nn.py:147–186  ·  view source on GitHub ↗
(N=15)

Source from the content-addressed store, hash-verified

145
146
147def test_VAE_loss(N=15):
148 from numpy_ml.neural_nets.losses import VAELoss
149
150 np.random.seed(12345)
151
152 N = np.inf if N is None else N
153 eps = np.finfo(float).eps
154
155 i = 1
156 while i < N:
157 n_ex = np.random.randint(1, 10)
158 t_dim = np.random.randint(2, 10)
159 t_mean = random_tensor([n_ex, t_dim], standardize=True)
160 t_log_var = np.log(np.abs(random_tensor([n_ex, t_dim], standardize=True) + eps))
161 im_cols, im_rows = np.random.randint(2, 40), np.random.randint(2, 40)
162 X = np.random.rand(n_ex, im_rows * im_cols)
163 X_recon = np.random.rand(n_ex, im_rows * im_cols)
164
165 mine = VAELoss()
166 mine_loss = mine(X, X_recon, t_mean, t_log_var)
167 dX_recon, dLogVar, dMean = mine.grad(X, X_recon, t_mean, t_log_var)
168 golds = TorchVAELoss().extract_grads(X, X_recon, t_mean, t_log_var)
169
170 params = [
171 (mine_loss, "loss"),
172 (dX_recon, "dX_recon"),
173 (dLogVar, "dt_log_var"),
174 (dMean, "dt_mean"),
175 ]
176 print("\nTrial {}".format(i))
177 for ix, (mine, label) in enumerate(params):
178 np.testing.assert_allclose(
179 mine,
180 golds[label],
181 err_msg=err_fmt(params, golds, ix),
182 rtol=0.1,
183 atol=1e-2,
184 )
185 print("\tPASSED {}".format(label))
186 i += 1
187
188
189def test_WGAN_GP_loss(N=5):

Callers

nothing calls this directly

Calls 6

gradMethod · 0.95
random_tensorFunction · 0.90
VAELossClass · 0.90
TorchVAELossClass · 0.85
err_fmtFunction · 0.70
extract_gradsMethod · 0.45

Tested by

no test coverage detected