MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / testSharing

Method testSharing

tensorflow/compiler/tests/adam_test.py:140–185  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

138 self.assertAllCloseAccordingToType(var1_np, self.evaluate(var1))
139
140 def testSharing(self):
141 for dtype in self.float_types:
142 # TODO: test fails for float16 due to excessive precision requirements.
143 if dtype in [np.float16, dtypes.bfloat16.as_numpy_dtype]:
144 continue
145 with self.session(), self.test_scope():
146 variable_scope.get_variable_scope().set_use_resource(True)
147
148 # Initialize variables for numpy implementation.
149 m0, v0, m1, v1 = 0.0, 0.0, 0.0, 0.0
150 var0_np = np.array([1.0, 2.0], dtype=dtype)
151 grads0_np = np.array([0.1, 0.1], dtype=dtype)
152 var1_np = np.array([3.0, 4.0], dtype=dtype)
153 grads1_np = np.array([0.01, 0.01], dtype=dtype)
154
155 var0 = resource_variable_ops.ResourceVariable(var0_np)
156 var1 = resource_variable_ops.ResourceVariable(var1_np)
157 grads0 = array_ops.placeholder(dtype)
158 grads1 = array_ops.placeholder(dtype)
159 opt = adam.AdamOptimizer()
160 update1 = opt.apply_gradients(zip([grads0, grads1], [var0, var1]))
161 update2 = opt.apply_gradients(zip([grads0, grads1], [var0, var1]))
162 variables.global_variables_initializer().run()
163
164 beta1_power, beta2_power = opt._get_beta_accumulators()
165
166 # Fetch params to validate initial values
167 self.assertAllClose([1.0, 2.0], self.evaluate(var0))
168 self.assertAllClose([3.0, 4.0], self.evaluate(var1))
169
170 # Run 3 steps of intertwined Adam1 and Adam2.
171 for t in range(1, 4):
172 self.assertAllCloseAccordingToType(0.9**t, self.evaluate(beta1_power))
173 self.assertAllCloseAccordingToType(0.999**t,
174 self.evaluate(beta2_power))
175 if t % 2 == 0:
176 update1.run(feed_dict={grads0: grads0_np, grads1: grads1_np})
177 else:
178 update2.run(feed_dict={grads0: grads0_np, grads1: grads1_np})
179
180 var0_np, m0, v0 = adam_update_numpy(var0_np, grads0_np, t, m0, v0)
181 var1_np, m1, v1 = adam_update_numpy(var1_np, grads1_np, t, m1, v1)
182
183 # Validate updated params
184 self.assertAllCloseAccordingToType(var0_np, self.evaluate(var0))
185 self.assertAllCloseAccordingToType(var1_np, self.evaluate(var1))
186
187
188if __name__ == "__main__":

Callers

nothing calls this directly

Calls 14

apply_gradientsMethod · 0.95
set_use_resourceMethod · 0.80
AdamOptimizerMethod · 0.80
adam_update_numpyFunction · 0.70
rangeFunction · 0.50
sessionMethod · 0.45
test_scopeMethod · 0.45
ResourceVariableMethod · 0.45
placeholderMethod · 0.45
runMethod · 0.45

Tested by

no test coverage detected