def compute_grad_by_params(w, b): layer = Dense(32, 64) layer.weights = np.array(w) layer.biases = np.array(b) x = np.linspace(-1, 1, 10 * 32).reshape([10, 32]) layer.backward(x, np.ones([10, 64]), optim='gd', lr=1) return w - layer.weights, b - layer.biases
def test_dense_layer_FORWARD(self): layer = Dense(3, 4) x = np.linspace(-1, 1, 2 * 3).reshape([2, 3]) layer.weights = np.linspace(-1, 1, 3 * 4).reshape([3, 4]) layer.biases = np.linspace(-1, 1, 4) self.assertTrue( np.allclose( layer.forward(x), np.array([[0.07272727, 0.41212121, 0.75151515, 1.09090909], [-0.90909091, 0.08484848, 1.07878788, 2.07272727]])))
def compute_out_given_wb(w, b): layer = Dense(32, 64) layer.weights = np.array(w) layer.biases = np.array(b) x = np.linspace(-1, 1, 10 * 32).reshape([10, 32]) return layer.forward(x)