def testNumSteps(self): values = [[0, 1, 2, 3], [1, 2, 3, 4], [2, 3, 4, 5]] tensor = tf.constant(values, dtype=tf.float32) result_step0 = common.shift_values(tensor, 1.0, 0) result_step1 = common.shift_values(tensor, 1.0, 1) result_step3 = common.shift_values(tensor, 1.0, 3) result_step20 = common.shift_values(tensor, 1.0, 20) values = np.array(values) expected_result_step0 = values expected_result_step1 = np.pad(values[:, 1:], ((0, 0), (0, 1)), 'constant') expected_result_step3 = np.pad(values[:, 3:], ((0, 0), (0, 3)), 'constant') expected_result_step20 = np.zeros_like(values) self.assertAllClose(expected_result_step0, self.evaluate(result_step0)) self.assertAllClose(expected_result_step1, self.evaluate(result_step1)) self.assertAllClose(expected_result_step3, self.evaluate(result_step3)) self.assertAllClose(expected_result_step20, self.evaluate(result_step20))
def testGamma(self): values = [[0, 1, 2, 3], [1, 2, 3, 4], [2, 3, 4, 5]] tensor = tf.constant(values, dtype=tf.float32) result_gamma0 = common.shift_values(tensor, 0.0, 3) result_gamma09 = common.shift_values(tensor, 0.9, 3) result_gamma1 = common.shift_values(tensor, 1.0, 3) result_gamma2 = common.shift_values(tensor, 2.0, 3) values = np.array(values) values_shift3 = np.pad(values[:, 3:], ((0, 0), (0, 3)), 'constant') expected_result_gamma0 = np.zeros_like(values) expected_result_gamma09 = 0.9 ** 3 * values_shift3 expected_result_gamma1 = values_shift3 expected_result_gamma2 = 2 ** 3 * values_shift3 self.assertAllClose(expected_result_gamma0, self.evaluate(result_gamma0)) self.assertAllClose(expected_result_gamma09, self.evaluate(result_gamma09)) self.assertAllClose(expected_result_gamma1, self.evaluate(result_gamma1)) self.assertAllClose(expected_result_gamma2, self.evaluate(result_gamma2))