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

Function test_LayerNorm1D

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

Source from the content-addressed store, hash-verified

798
799
800def test_LayerNorm1D(N=15):
801 from numpy_ml.neural_nets.layers import LayerNorm1D
802
803 N = np.inf if N is None else N
804
805 np.random.seed(12345)
806
807 i = 1
808 while i < N + 1:
809 n_ex = np.random.randint(2, 1000)
810 n_in = np.random.randint(1, 1000)
811 X = random_tensor((n_ex, n_in), standardize=True)
812
813 # initialize BatchNorm1D layer
814 L1 = LayerNorm1D()
815
816 # forward prop
817 y_pred = L1.forward(X)
818
819 # backprop
820 dLdy = np.ones_like(y_pred)
821 dLdX = L1.backward(dLdy)
822
823 # get gold standard gradients
824 gold_mod = TorchLayerNormLayer(n_in, L1.parameters, "1D", epsilon=L1.epsilon)
825 golds = gold_mod.extract_grads(X)
826
827 params = [
828 (L1.X[0], "X"),
829 (y_pred, "y"),
830 (L1.parameters["scaler"].T, "scaler"),
831 (L1.parameters["intercept"], "intercept"),
832 (L1.gradients["scaler"], "dLdScaler"),
833 (L1.gradients["intercept"], "dLdIntercept"),
834 (dLdX, "dLdX"),
835 ]
836
837 print("Trial {}".format(i))
838 for ix, (mine, label) in enumerate(params):
839 assert_almost_equal(
840 mine, golds[label], err_msg=err_fmt(params, golds, ix), decimal=3
841 )
842 print("\tPASSED {}".format(label))
843 i += 1
844
845
846def test_LayerNorm2D(N=15):

Callers

nothing calls this directly

Calls 7

forwardMethod · 0.95
backwardMethod · 0.95
extract_gradsMethod · 0.95
random_tensorFunction · 0.90
LayerNorm1DClass · 0.90
TorchLayerNormLayerClass · 0.85
err_fmtFunction · 0.70

Tested by

no test coverage detected