15e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower# Copyright 2017 The TensorFlow Authors. All Rights Reserved. 25e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower# 35e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower# Licensed under the Apache License, Version 2.0 (the "License"); 45e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower# you may not use this file except in compliance with the License. 55e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower# You may obtain a copy of the License at 65e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower# 75e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower# http://www.apache.org/licenses/LICENSE-2.0 85e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower# 95e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower# Unless required by applicable law or agreed to in writing, software 105e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower# distributed under the License is distributed on an "AS IS" BASIS, 115e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 125e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower# See the License for the specific language governing permissions and 135e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower# limitations under the License. 145e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower# ============================================================================== 155e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower"""Test for checking stats accumulator related ops.""" 165e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 175e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlowerfrom __future__ import absolute_import 185e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlowerfrom __future__ import division 195e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlowerfrom __future__ import print_function 205e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 215e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlowerfrom tensorflow.contrib.boosted_trees.python.ops import stats_accumulator_ops 225e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlowerfrom tensorflow.python.framework import ops 235e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlowerfrom tensorflow.python.framework import tensor_shape 245e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlowerfrom tensorflow.python.framework import test_util 255e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlowerfrom tensorflow.python.platform import googletest 265e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 275e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 285e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlowerclass StatsAccumulatorScalarTest(test_util.TensorFlowTestCase): 295e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower """Tests for scalar gradients and hessians accumulator.""" 305e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 315e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower def testSimpleAcculumator(self): 325e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with self.test_session() as sess: 335e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower accumulator = stats_accumulator_ops.StatsAccumulator( 345e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 355e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradient_shape=tensor_shape.scalar(), 365e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessian_shape=tensor_shape.scalar()) 375e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([accumulator._create_op]): 385e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower op1 = accumulator.add( 395e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 405e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower partition_ids=[1, 2], 41bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower feature_ids=[[2, 0], [3, 0]], 425e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradients=[0.1, 0.3], 435e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians=[0.2, 0.4]) 44bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower op2 = accumulator.add(0, [1], [[2, 0]], [0.1], [0.2]) 455e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 465e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([op1, op2]): 47bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower num_updates, partition, bucket_ids, grads, hessians = accumulator.flush( 485e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, next_stamp_token=1) 49bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower num_updates, partition, bucket_ids, grads, hessians = sess.run( 50bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower [num_updates, partition, bucket_ids, grads, hessians]) 515e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 52bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower result = _AccumulatorResultToDict(partition, bucket_ids, grads, hessians) 535e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(num_updates, 2) 545e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(len(result), 2) 55bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower # Key is partion, bucket, dimension 56bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(1, 2, 0)], [0.2, 0.4]) 57bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(2, 3, 0)], [0.3, 0.4]) 58bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower 59bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower def testMultidimensionalAcculumator(self): 60bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower with self.test_session() as sess: 61bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower accumulator = stats_accumulator_ops.StatsAccumulator( 62bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower stamp_token=0, 63bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower gradient_shape=tensor_shape.scalar(), 64bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower hessian_shape=tensor_shape.scalar()) 65bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower with ops.control_dependencies([accumulator._create_op]): 66bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower op1 = accumulator.add( 67bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower stamp_token=0, 68bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower partition_ids=[1, 2, 1], 69bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower feature_ids=[[2, 2], [3, 0], [2, 2]], 70bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower gradients=[0.1, 0.3, 0.8], 71bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower hessians=[0.2, 0.4, -9]) 72bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower op2 = accumulator.add(0, [2, 1], [[3, 1], [2, 2]], [0.1, 1], [0.2, -1]) 73bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower 74bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower with ops.control_dependencies([op1, op2]): 75bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower num_updates, partition, bucket_ids, grads, hessians = accumulator.flush( 76bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower stamp_token=0, next_stamp_token=1) 77bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower num_updates, partition, bucket_ids, grads, hessians = sess.run( 78bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower [num_updates, partition, bucket_ids, grads, hessians]) 79bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower 80bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower result = _AccumulatorResultToDict(partition, bucket_ids, grads, hessians) 81bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertEqual(num_updates, 2) 82bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertEqual(len(result), 3) 83bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower # Key is partion, bucket, dimension. 84bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(1, 2, 2)], [1.9, -9.8]) 85bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(2, 3, 0)], [0.3, 0.4]) 86bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(2, 3, 1)], [0.1, 0.2]) 875e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 885e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower def testDropStaleUpdate(self): 895e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with self.test_session() as sess: 905e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower accumulator = stats_accumulator_ops.StatsAccumulator( 915e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 925e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradient_shape=tensor_shape.scalar(), 935e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessian_shape=tensor_shape.scalar()) 945e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([accumulator._create_op]): 955e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower op1 = accumulator.add( 965e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 975e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower partition_ids=[1, 2], 98bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower feature_ids=[[2, 0], [3, 0]], 995e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradients=[0.1, 0.3], 1005e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians=[0.2, 0.4]) 1015e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower op2 = accumulator.add( 1025e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=-1, 1035e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower partition_ids=[1], 104bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower feature_ids=[[2, 0]], 1055e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradients=[0.1], 1065e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians=[0.2]) 1075e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 1085e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([op1, op2]): 1095e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower num_updates, partition, feature, grads, hessians = accumulator.flush( 1105e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, next_stamp_token=1) 1115e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower num_updates, partition, feature, grads, hessians = sess.run( 1125e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower [num_updates, partition, feature, grads, hessians]) 1135e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 1145e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower result = _AccumulatorResultToDict(partition, feature, grads, hessians) 1155e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(num_updates, 1) 1165e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(len(result), 2) 117bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(1, 2, 0)], [0.1, 0.2]) 118bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(2, 3, 0)], [0.3, 0.4]) 1195e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 1205e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower def testSerialize(self): 1215e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with self.test_session() as sess: 1225e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower accumulator = stats_accumulator_ops.StatsAccumulator( 1235e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 1245e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradient_shape=tensor_shape.scalar(), 1255e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessian_shape=tensor_shape.scalar()) 1265e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([accumulator._create_op]): 1275e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower op1 = accumulator.add( 1285e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 1295e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower partition_ids=[1, 2], 130bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower feature_ids=[[2, 0], [3, 0]], 1315e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradients=[0.1, 0.3], 1325e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians=[0.2, 0.4]) 1335e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 1345e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([op1]): 1355e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower (stamp_token, num_updates, partition_1, feature_1, grads_1, 1365e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians_1) = accumulator.serialize() 1375e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower # Make sure that the accumulator hasn't changed during serialization. 1385e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([stamp_token]): 1395e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower num_updates_2, partition_2, feature_2, grads_2, hessians_2 = ( 1405e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower accumulator.flush(stamp_token=0, next_stamp_token=1)) 1415e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower (stamp_token, num_updates, partition_1, feature_1, grads_1, hessians_1, 1425e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower num_updates_2, partition_2, feature_2, grads_2, hessians_2) = sess.run( 1435e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower [ 1445e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token, num_updates, partition_1, feature_1, grads_1, 1455e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians_1, num_updates_2, partition_2, feature_2, grads_2, 1465e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians_2 1475e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower ]) 1485e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 1495e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower result_1 = _AccumulatorResultToDict(partition_1, feature_1, grads_1, 1505e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians_1) 1515e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower result_2 = _AccumulatorResultToDict(partition_2, feature_2, grads_2, 1525e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians_2) 1535e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(num_updates, 1) 1545e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(num_updates_2, 1) 1555e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(len(result_1), 2) 156bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result_1[(1, 2, 0)], [0.1, 0.2]) 157bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result_1[(2, 3, 0)], [0.3, 0.4]) 1585e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertAllEqual(result_1, result_2) 1595e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(0, stamp_token) 1605e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 1615e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower def testDeserialize(self): 1625e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with self.test_session() as sess: 1635e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower accumulator = stats_accumulator_ops.StatsAccumulator( 1645e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 1655e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradient_shape=tensor_shape.scalar(), 1665e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessian_shape=tensor_shape.scalar()) 1675e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([accumulator._create_op]): 1685e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower # These will be deleted due to deserialize call. 1695e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower op1 = accumulator.add( 1705e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 1715e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower partition_ids=[1, 2], 172bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower feature_ids=[[2, 0], [3, 1]], 1735e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradients=[0.1, 0.3], 1745e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians=[0.2, 0.4]) 1755e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 1765e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([op1]): 177bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower deserialize = ( 178bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower accumulator.deserialize( 179bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower stamp_token=2, 180bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower num_updates=3, 181bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower partition_ids=[3, 4], 182bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower feature_ids=[[5, 0], [6, 2]], 183bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower gradients=[0.4, 0.5], 184bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower hessians=[0.6, 0.7])) 1855e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([deserialize]): 1865e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower num_updates, partition, feature, grads, hessians = accumulator.flush( 1875e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=2, next_stamp_token=3) 1885e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower num_updates, partition, feature, grads, hessians = sess.run( 1895e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower [num_updates, partition, feature, grads, hessians]) 1905e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 1915e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower result = _AccumulatorResultToDict(partition, feature, grads, 1925e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians) 1935e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(num_updates, 3) 1945e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(len(result), 2) 195bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(3, 5, 0)], [0.4, 0.6]) 196bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(4, 6, 2)], [0.5, 0.7]) 1975e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 1985e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower def testMakeSummary(self): 1995e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with self.test_session() as sess: 2005e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower accumulator = stats_accumulator_ops.StatsAccumulator( 2015e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 2025e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradient_shape=tensor_shape.scalar(), 2035e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessian_shape=tensor_shape.scalar()) 2045e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower partition, feature, grads, hessians = accumulator._make_summary( 2055e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower partition_ids=[1, 2, 1], 206bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower feature_ids=[[2, 0], [3, 1], [2, 0]], 2075e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradients=[0.1, 0.3, 0.1], 2085e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians=[0.2, 0.4, 0.2]) 2095e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower partition, feature, grads, hessians = sess.run( 2105e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower [partition, feature, grads, hessians]) 2115e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower result = _AccumulatorResultToDict(partition, feature, grads, hessians) 2125e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(len(result), 2) 213bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(1, 2, 0)], [0.2, 0.4]) 214bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(2, 3, 1)], [0.3, 0.4]) 2155e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 2165e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 2175e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlowerclass StatsAccumulatorTensorTest(test_util.TensorFlowTestCase): 2185e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower """Tests for tensor gradients and hessians accumulator.""" 2195e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 2205e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower def testSimpleAcculumator(self): 2215e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with self.test_session() as sess: 2225e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower accumulator = stats_accumulator_ops.StatsAccumulator( 2235e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 2245e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradient_shape=tensor_shape.TensorShape([2]), 2255e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessian_shape=tensor_shape.TensorShape([2, 2])) 2265e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([accumulator._create_op]): 2275e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower op1 = accumulator.add( 2285e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 2295e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower partition_ids=[1, 2], 230bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower feature_ids=[[2, 0], [3, 0]], 231bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower # Two values for gradients, 232bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower gradients=[[0.1, 0.1], [0.2, 0.2]], 233bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower # A 2x2 matrix for each hessian. 234bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower hessians=[[[0.01, 0.02], [0.03, 0.04]], [[0.05, 0.06], [0.07, 235bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower 0.08]]]) 236bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower op2 = accumulator.add( 237bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower stamp_token=0, 238bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower partition_ids=[1], 239bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower feature_ids=[[2, 0]], 240bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower gradients=[[0.10, 0.11]], 241bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower hessians=[[[0.011, 0.022], [0.033, 0.044]]]) 242bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower 243bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower with ops.control_dependencies([op1, op2]): 244bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower num_updates, partition, feature, grads, hessians = accumulator.flush( 245bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower stamp_token=0, next_stamp_token=1) 246bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower num_updates, partition, feature, grads, hessians = sess.run( 247bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower [num_updates, partition, feature, grads, hessians]) 248bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower 249bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower result = _AccumulatorResultToDict(partition, feature, grads, hessians) 250bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertEqual(num_updates, 2) 251bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertEqual(len(result), 2) 252bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(1, 2, 0)][0], [0.20, 0.21]) 253bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(1, 2, 0)][1], 254bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower [[0.021, 0.042], [0.063, 0.084]]) 255bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(2, 3, 0)][0], [0.2, 0.2]) 256bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(2, 3, 0)][1], [[0.05, 0.06], [0.07, 0.08]]) 257bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower 258bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower def testMultidimensionalAcculumator(self): 259bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower with self.test_session() as sess: 260bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower accumulator = stats_accumulator_ops.StatsAccumulator( 261bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower stamp_token=0, 262bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower gradient_shape=tensor_shape.TensorShape([2]), 263bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower hessian_shape=tensor_shape.TensorShape([2, 2])) 264bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower with ops.control_dependencies([accumulator._create_op]): 265bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower op1 = accumulator.add( 266bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower stamp_token=0, 267bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower partition_ids=[1, 2], 268bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower feature_ids=[[2, 4], [3, 1]], 2695e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower # Two values for gradients, 2705e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradients=[[0.1, 0.1], [0.2, 0.2]], 2715e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower # A 2x2 matrix for each hessian. 272bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower hessians=[[[0.01, 0.02], [0.03, 0.04]], [[0.05, 0.06], [0.07, 273bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower 0.08]]]) 2745e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower op2 = accumulator.add( 2755e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 2765e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower partition_ids=[1], 277bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower feature_ids=[[2, 4]], 2785e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradients=[[0.10, 0.11]], 2795e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians=[[[0.011, 0.022], [0.033, 0.044]]]) 2805e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 2815e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([op1, op2]): 2825e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower num_updates, partition, feature, grads, hessians = accumulator.flush( 2835e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, next_stamp_token=1) 2845e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower num_updates, partition, feature, grads, hessians = sess.run( 2855e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower [num_updates, partition, feature, grads, hessians]) 2865e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 2875e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower result = _AccumulatorResultToDict(partition, feature, grads, hessians) 2885e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(num_updates, 2) 2895e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(len(result), 2) 290bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(1, 2, 4)][0], [0.20, 0.21]) 291bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(1, 2, 4)][1], 292bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower [[0.021, 0.042], [0.063, 0.084]]) 293bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(2, 3, 1)][0], [0.2, 0.2]) 294bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(2, 3, 1)][1], [[0.05, 0.06], [0.07, 0.08]]) 2955e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 2965e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower def testDropStaleUpdate(self): 2975e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with self.test_session() as sess: 2985e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower accumulator = stats_accumulator_ops.StatsAccumulator( 2995e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 3005e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradient_shape=tensor_shape.TensorShape([2]), 3015e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessian_shape=tensor_shape.TensorShape([2, 2])) 3025e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([accumulator._create_op]): 3035e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower op1 = accumulator.add( 3045e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 3055e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower partition_ids=[1, 2], 306bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower feature_ids=[[2, 5], [3, 0]], 3075e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower # Two values for gradients, 3085e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradients=[[0.1, 0.1], [0.2, 0.2]], 3095e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower # A 2x2 matrix for each hessian. 310bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower hessians=[[[0.01, 0.02], [0.03, 0.04]], [[0.05, 0.06], [0.07, 311bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower 0.08]]]) 3125e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower op2 = accumulator.add( 3135e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=-1, 3145e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower partition_ids=[1], 315bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower feature_ids=[[2, 5]], 3165e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradients=[[0.10, 0.11]], 3175e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians=[[[0.011, 0.022], [0.033, 0.044]]]) 3185e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 3195e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([op1, op2]): 3205e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower num_updates, partition, feature, grads, hessians = accumulator.flush( 3215e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, next_stamp_token=1) 3225e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower num_updates, partition, feature, grads, hessians = sess.run( 3235e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower [num_updates, partition, feature, grads, hessians]) 3245e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 3255e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower result = _AccumulatorResultToDict(partition, feature, grads, hessians) 3265e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(num_updates, 1) 3275e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(len(result), 2) 328bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(1, 2, 5)][0], [0.1, 0.1]) 329bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(1, 2, 5)][1], [[0.01, 0.02], [0.03, 0.04]]) 330bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(2, 3, 0)][0], [0.2, 0.2]) 331bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(2, 3, 0)][1], [[0.05, 0.06], [0.07, 0.08]]) 3325e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 3335e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower def testSerialize(self): 3345e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with self.test_session() as sess: 3355e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower accumulator = stats_accumulator_ops.StatsAccumulator( 3365e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 3375e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradient_shape=tensor_shape.TensorShape([2]), 3385e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessian_shape=tensor_shape.TensorShape([2, 2])) 3395e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([accumulator._create_op]): 3405e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower op1 = accumulator.add( 3415e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 3425e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower partition_ids=[1, 2], 343bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower feature_ids=[[2, 0], [3, 0]], 3445e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower # Two values for gradients, 3455e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradients=[[0.1, 0.1], [0.2, 0.2]], 3465e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower # A 2x2 matrix for each hessian. 347bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower hessians=[[[0.01, 0.02], [0.03, 0.04]], [[0.05, 0.06], [0.07, 348bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower 0.08]]]) 3495e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 3505e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([op1]): 3515e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower (stamp_token, num_updates_1, partition_1, feature_1, grads_1, 3525e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians_1) = accumulator.serialize() 3535e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower # Make sure that the accumulator hasn't changed during serialization. 3545e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([stamp_token]): 3555e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower num_updates_2, partition_2, feature_2, grads_2, hessians_2 = ( 3565e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower accumulator.flush(stamp_token=0, next_stamp_token=1)) 3575e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower (stamp_token, num_updates_1, partition_1, feature_1, grads_1, 3585e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians_1, num_updates_2, partition_2, feature_2, grads_2, 3595e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians_2) = sess.run([ 3605e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token, num_updates_1, partition_1, feature_1, grads_1, 3615e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians_1, num_updates_2, partition_2, feature_2, grads_2, 3625e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians_2 3635e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower ]) 3645e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 3655e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower result_1 = _AccumulatorResultToDict(partition_1, feature_1, grads_1, 3665e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians_1) 3675e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower result_2 = _AccumulatorResultToDict(partition_2, feature_2, grads_2, 3685e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians_2) 3695e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 3705e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(num_updates_1, 1) 3715e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(num_updates_2, 1) 3725e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(len(result_1), 2) 373bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result_1[(1, 2, 0)][0], [0.1, 0.1]) 374bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result_1[(1, 2, 0)][1], [[0.01, 0.02], [0.03, 0.04]]) 375bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result_1[(2, 3, 0)][0], [0.2, 0.2]) 376bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result_1[(2, 3, 0)][1], [[0.05, 0.06], [0.07, 0.08]]) 3775e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 378bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllEqual(result_1[1, 2, 0][0], result_2[1, 2, 0][0]) 379bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllEqual(result_1[1, 2, 0][1], result_2[1, 2, 0][1]) 380bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllEqual(result_1[2, 3, 0][0], result_2[2, 3, 0][0]) 381bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllEqual(result_1[2, 3, 0][1], result_2[2, 3, 0][1]) 3825e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 3835e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower def testDeserialize(self): 3845e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with self.test_session() as sess: 3855e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower accumulator = stats_accumulator_ops.StatsAccumulator( 3865e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 3875e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradient_shape=tensor_shape.TensorShape([2]), 3885e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessian_shape=tensor_shape.TensorShape([2, 2])) 3895e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([accumulator._create_op]): 3905e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower # These will be deleted due to deserialize call. 3915e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower op1 = accumulator.add( 3925e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 3935e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower partition_ids=[1, 2], 394bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower feature_ids=[[2, 0], [3, 0]], 3955e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower # Two values for gradients, 3965e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradients=[[0.1, 0.1], [0.2, 0.2]], 3975e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower # A 2x2 matrix for each hessian. 398bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower hessians=[[[0.01, 0.02], [0.03, 0.04]], [[0.05, 0.06], [0.07, 399bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower 0.08]]]) 4005e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 4015e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([op1]): 4025e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower deserialize = accumulator.deserialize( 4035e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=2, 4045e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower num_updates=3, 4055e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower partition_ids=[3, 4], 406bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower feature_ids=[[4, 0], [5, 0]], 4075e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower # Two values for gradients, 4085e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradients=[[0.3, 0.3], [0.5, 0.5]], 4095e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower # A 2x2 matrix for each hessian. 4105e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians=[[[0.03, 0.04], [0.05, 0.06]], [[0.07, 0.08], [0.09, 4115e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 0.10]]]) 4125e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with ops.control_dependencies([deserialize]): 4135e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower num_updates, partition, feature, grads, hessians = accumulator.flush( 4145e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=2, next_stamp_token=3) 4155e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower num_updates, partition, feature, grads, hessians = sess.run( 4165e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower [num_updates, partition, feature, grads, hessians]) 4175e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 4185e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower result = _AccumulatorResultToDict(partition, feature, grads, 4195e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians) 4205e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(num_updates, 3) 4215e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(len(result), 2) 422bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(3, 4, 0)][0], [0.3, 0.3]) 423bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(3, 4, 0)][1], [[0.03, 0.04], [0.05, 0.06]]) 424bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(4, 5, 0)][0], [0.5, 0.5]) 425bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(4, 5, 0)][1], [[0.07, 0.08], [0.09, 0.10]]) 4265e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 4275e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower def testMakeSummary(self): 4285e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower with self.test_session() as sess: 4295e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower accumulator = stats_accumulator_ops.StatsAccumulator( 4305e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower stamp_token=0, 4315e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradient_shape=tensor_shape.TensorShape([2]), 4325e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessian_shape=tensor_shape.TensorShape([2, 2])) 4335e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower partition, feature, grads, hessians = accumulator._make_summary( 4345e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower partition_ids=[1, 2, 1], 435bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower feature_ids=[[2, 0], [3, 2], [2, 0]], 4365e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower # Two values for gradients, 4375e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower gradients=[[0.1, 0.1], [0.2, 0.2], [0.10, 0.11]], 4385e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower # A 2x2 matrix for each hessian. 4395e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower hessians=[[[0.01, 0.02], [0.03, 0.04]], [[0.05, 0.06], [0.07, 0.08]], 4405e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower [[0.011, 0.022], [0.033, 0.044]]]) 4415e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower partition, feature, grads, hessians = sess.run( 4425e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower [partition, feature, grads, hessians]) 4435e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 4445e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower result = _AccumulatorResultToDict(partition, feature, grads, hessians) 4455e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower self.assertEqual(len(result), 2) 446bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(1, 2, 0)][0], [0.20, 0.21]) 447bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(1, 2, 0)][1], 448bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower [[0.021, 0.042], [0.063, 0.084]]) 449bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(2, 3, 2)][0], [0.2, 0.2]) 450bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower self.assertAllClose(result[(2, 3, 2)][1], [[0.05, 0.06], [0.07, 0.08]]) 4515e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 4525e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 4535e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlowerdef _AccumulatorResultToDict(partition, feature, grads, hessians): 4545e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower """Converts the inputs to a dictionary since the ordering changes.""" 455bf24cbb36b478fbcb8fb01216cec2052ac5d51aaA. Unique TensorFlower return {(partition[i], feature[i, 0], feature[i, 1]): (grads[i], hessians[i]) 4565e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower for i in range(len(partition))} 4575e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 4585e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower 4595e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlowerif __name__ == "__main__": 4605e25a9c215d418fb5431a2cd5ac726d0f155f77fA. Unique TensorFlower googletest.main() 461