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

Method doTestBasic

tensorflow/python/training/adam_test.py:158–240  ·  view source on GitHub ↗
(self, use_resource=False, use_callable_params=False)

Source from the content-addressed store, hash-verified

156 self.evaluate(repeated_index_update_var))
157
158 def doTestBasic(self, use_resource=False, use_callable_params=False):
159 if context.executing_eagerly() and not use_resource:
160 self.skipTest(
161 "Skipping test with use_resource=False and executing eagerly.")
162 for i, dtype in enumerate([dtypes.half, dtypes.float32, dtypes.float64]):
163 with self.session(graph=ops.Graph()):
164 # Initialize variables for numpy implementation.
165 m0, v0, m1, v1 = 0.0, 0.0, 0.0, 0.0
166 var0_np = np.array([1.0, 2.0], dtype=dtype.as_numpy_dtype)
167 grads0_np = np.array([0.1, 0.1], dtype=dtype.as_numpy_dtype)
168 var1_np = np.array([3.0, 4.0], dtype=dtype.as_numpy_dtype)
169 grads1_np = np.array([0.01, 0.01], dtype=dtype.as_numpy_dtype)
170
171 if use_resource:
172 var0 = resource_variable_ops.ResourceVariable(
173 var0_np, name="var0_%d" % i)
174 var1 = resource_variable_ops.ResourceVariable(
175 var1_np, name="var1_%d" % i)
176 else:
177 var0 = variables.RefVariable(var0_np)
178 var1 = variables.RefVariable(var1_np)
179 grads0 = constant_op.constant(grads0_np)
180 grads1 = constant_op.constant(grads1_np)
181
182 learning_rate = lambda: 0.001
183 beta1 = lambda: 0.9
184 beta2 = lambda: 0.999
185 epsilon = lambda: 1e-8
186 if not use_callable_params:
187 learning_rate = learning_rate()
188 beta1 = beta1()
189 beta2 = beta2()
190 epsilon = epsilon()
191
192 opt = adam.AdamOptimizer(learning_rate=learning_rate)
193 update = opt.apply_gradients(zip([grads0, grads1], [var0, var1]))
194 opt_variables = opt.variables()
195 beta1_power, beta2_power = opt._get_beta_accumulators()
196 self.assertTrue(beta1_power is not None)
197 self.assertTrue(beta2_power is not None)
198 self.assertIn(beta1_power, opt_variables)
199 self.assertIn(beta2_power, opt_variables)
200 # Ensure that non-slot variables are the same type as the requested
201 # variables.
202 self.assertEqual(
203 use_resource,
204 resource_variable_ops.is_resource_variable(beta1_power))
205 self.assertEqual(
206 use_resource,
207 resource_variable_ops.is_resource_variable(beta2_power))
208
209 if not context.executing_eagerly():
210 with ops.Graph().as_default():
211 # Shouldn't return non-slot variables from other graphs.
212 self.assertEqual(0, len(opt.variables()))
213 self.evaluate(variables.global_variables_initializer())
214 # Fetch params to validate initial values
215 self.assertAllClose([1.0, 2.0], self.evaluate(var0))

Callers 3

testBasicMethod · 0.95
testResourceBasicMethod · 0.95

Calls 15

apply_gradientsMethod · 0.95
epsilonFunction · 0.85
executing_eagerlyMethod · 0.80
AdamOptimizerMethod · 0.80
adam_update_numpyFunction · 0.70
rangeFunction · 0.50
sessionMethod · 0.45
GraphMethod · 0.45
ResourceVariableMethod · 0.45
constantMethod · 0.45

Tested by

no test coverage detected