def test_model_broadcast(self): init_executor_gateway(self.sc) model = Linear(3, 2) broadcasted = broadcast_model(self.sc, model) input_data = np.random.rand(3) output = self.sc.parallelize([input_data], 1)\ .map(lambda x: broadcasted.value.forward(x)).first() expected = model.forward(input_data) assert_allclose(output, expected)
def test_model_broadcast(self): init_executor_gateway(self.sc) model = Linear(3, 2) broadcasted = broadcast_model(self.sc, model) input_data = np.random.rand(3) output = self.sc.parallelize([input_data], 1)\ .map(lambda x: broadcasted.value.forward(x)).first() expected = model.forward(input_data) assert_allclose(output, expected)
def test_forward_backward(self): from bigdl.nn.layer import Linear rng = RNG() rng.set_seed(100) linear = Linear(4, 5) input = rng.uniform(0.0, 1.0, [4]) output = linear.forward(input) assert_allclose(output, np.array([0.41366524, 0.009532653, -0.677581, 0.07945433, -0.5742568]), atol=1e-6, rtol=0) mse = MSECriterion() target = rng.uniform(0.0, 1.0, [5]) loss = mse.forward(output, target) print("loss: " + str(loss)) grad_output = mse.backward(output, rng.uniform(0.0, 1.0, [5])) l_grad_output = linear.backward(input, grad_output)
def test_forward_backward(self): from bigdl.nn.layer import Linear rng = RNG() rng.set_seed(100) linear = Linear(4, 5) input = rng.uniform(0.0, 1.0, [4]) output = linear.forward(input) assert_allclose(output, np.array([0.41366524, 0.009532653, -0.677581, 0.07945433, -0.5742568]), atol=1e-6, rtol=0) mse = MSECriterion() target = rng.uniform(0.0, 1.0, [5]) loss = mse.forward(output, target) print("loss: " + str(loss)) grad_output = mse.backward(output, rng.uniform(0.0, 1.0, [5])) l_grad_output = linear.backward(input, grad_output)