def testBasicQuantileBucketsMultipleResources(self): with self.cached_session() as sess: quantile_accumulator_handle_0 = self.create_resource("float_0", self.eps, self.max_elements) quantile_accumulator_handle_1 = self.create_resource("float_1", self.eps, self.max_elements) resources.initialize_resources(resources.shared_resources()).run() summaries = boosted_trees_ops.make_quantile_summaries( [self._feature_0, self._feature_1], self._example_weights, epsilon=self.eps) summary_op_0 = boosted_trees_ops.quantile_add_summaries( quantile_accumulator_handle_0, [summaries[0]]) summary_op_1 = boosted_trees_ops.quantile_add_summaries( quantile_accumulator_handle_1, [summaries[1]]) flush_op_0 = boosted_trees_ops.quantile_flush( quantile_accumulator_handle_0, self.num_quantiles) flush_op_1 = boosted_trees_ops.quantile_flush( quantile_accumulator_handle_1, self.num_quantiles) bucket_0 = boosted_trees_ops.get_bucket_boundaries( quantile_accumulator_handle_0, num_features=1) bucket_1 = boosted_trees_ops.get_bucket_boundaries( quantile_accumulator_handle_1, num_features=1) quantiles = boosted_trees_ops.boosted_trees_bucketize( [self._feature_0, self._feature_1], bucket_0 + bucket_1) sess.run([summary_op_0, summary_op_1]) sess.run([flush_op_0, flush_op_1]) self.assertAllClose(self._feature_0_boundaries, bucket_0[0].eval()) self.assertAllClose(self._feature_1_boundaries, bucket_1[0].eval()) self.assertAllClose(self._feature_0_quantiles, quantiles[0].eval()) self.assertAllClose(self._feature_1_quantiles, quantiles[1].eval())
def testBasicQuantileBucketsMultipleResources(self): with self.test_session() as sess: quantile_accumulator_handle_0 = self.create_resource("float_0", self.eps, self.max_elements) quantile_accumulator_handle_1 = self.create_resource("float_1", self.eps, self.max_elements) resources.initialize_resources(resources.shared_resources()).run() summaries = boosted_trees_ops.make_quantile_summaries( [self._feature_0, self._feature_1], self._example_weights, epsilon=self.eps) summary_op_0 = boosted_trees_ops.quantile_add_summaries( quantile_accumulator_handle_0, [summaries[0]]) summary_op_1 = boosted_trees_ops.quantile_add_summaries( quantile_accumulator_handle_1, [summaries[1]]) flush_op_0 = boosted_trees_ops.quantile_flush( quantile_accumulator_handle_0, self.num_quantiles) flush_op_1 = boosted_trees_ops.quantile_flush( quantile_accumulator_handle_1, self.num_quantiles) bucket_0 = boosted_trees_ops.get_bucket_boundaries( quantile_accumulator_handle_0, num_features=1) bucket_1 = boosted_trees_ops.get_bucket_boundaries( quantile_accumulator_handle_1, num_features=1) quantiles = boosted_trees_ops.boosted_trees_bucketize( [self._feature_0, self._feature_1], bucket_0 + bucket_1) sess.run([summary_op_0, summary_op_1]) sess.run([flush_op_0, flush_op_1]) self.assertAllClose(self._feature_0_boundaries, bucket_0[0].eval()) self.assertAllClose(self._feature_1_boundaries, bucket_1[0].eval()) self.assertAllClose(self._feature_0_quantiles, quantiles[0].eval()) self.assertAllClose(self._feature_1_quantiles, quantiles[1].eval())
def testBasicQuantileBucketsSingleResourcesAddFlushed(self): with self.cached_session(): quantile_accumulator_handle = self.create_resource( "floats_0", self.eps, self.max_elements, 2) resources.initialize_resources(resources.shared_resources()).run() summaries = boosted_trees_ops.make_quantile_summaries( [self._feature_0, self._feature_1], self._example_weights, epsilon=self.eps) summary_op = boosted_trees_ops.quantile_add_summaries( quantile_accumulator_handle, summaries) flushed_summaries = flush_quantile_summaries( quantile_accumulator_handle, num_features=2) # We are testing whether the flushed summaries output at the previous step # will give the same expected results by inputing it to add_summaries summary_op_2 = boosted_trees_ops.quantile_add_summaries( quantile_accumulator_handle, flushed_summaries) flush_op = boosted_trees_ops.quantile_flush( quantile_accumulator_handle, self.num_quantiles) buckets = boosted_trees_ops.get_bucket_boundaries( quantile_accumulator_handle, num_features=2) quantiles = boosted_trees_ops.boosted_trees_bucketize( [self._feature_0, self._feature_1], buckets) self.evaluate(summary_op) self.evaluate(summary_op_2) self.evaluate(flush_op) self.assertAllClose(self._feature_0_boundaries, buckets[0].eval()) self.assertAllClose(self._feature_1_boundaries, buckets[1].eval()) self.assertAllClose(self._feature_0_quantiles, quantiles[0].eval()) self.assertAllClose(self._feature_1_quantiles, quantiles[1].eval())
def testBasicQuantileBucketsSingleResource(self): with self.cached_session() as sess: quantile_accumulator_handle = self.create_resource("floats", self.eps, self.max_elements, 2) resources.initialize_resources(resources.shared_resources()).run() summaries = boosted_trees_ops.make_quantile_summaries( [self._feature_0, self._feature_1], self._example_weights, epsilon=self.eps) summary_op = boosted_trees_ops.quantile_add_summaries( quantile_accumulator_handle, summaries) flush_op = boosted_trees_ops.quantile_flush( quantile_accumulator_handle, self.num_quantiles) buckets = boosted_trees_ops.get_bucket_boundaries( quantile_accumulator_handle, num_features=2) quantiles = boosted_trees_ops.boosted_trees_bucketize( [self._feature_0, self._feature_1], buckets) sess.run(summary_op) sess.run(flush_op) self.assertAllClose(self._feature_0_boundaries, buckets[0].eval()) self.assertAllClose(self._feature_1_boundaries, buckets[1].eval()) self.assertAllClose(self._feature_0_quantiles, quantiles[0].eval()) self.assertAllClose(self._feature_1_quantiles, quantiles[1].eval())
def testBasicQuantileBucketsSingleResource(self): with self.test_session() as sess: quantile_accumulator_handle = self.create_resource("floats", self.eps, self.max_elements, 2) resources.initialize_resources(resources.shared_resources()).run() summaries = boosted_trees_ops.make_quantile_summaries( [self._feature_0, self._feature_1], self._example_weights, epsilon=self.eps) summary_op = boosted_trees_ops.quantile_add_summaries( quantile_accumulator_handle, summaries) flush_op = boosted_trees_ops.quantile_flush( quantile_accumulator_handle, self.num_quantiles) buckets = boosted_trees_ops.get_bucket_boundaries( quantile_accumulator_handle, num_features=2) quantiles = boosted_trees_ops.boosted_trees_bucketize( [self._feature_0, self._feature_1], buckets) sess.run(summary_op) sess.run(flush_op) self.assertAllClose(self._feature_0_boundaries, buckets[0].eval()) self.assertAllClose(self._feature_1_boundaries, buckets[1].eval()) self.assertAllClose(self._feature_0_quantiles, quantiles[0].eval()) self.assertAllClose(self._feature_1_quantiles, quantiles[1].eval())