update TF
This commit is contained in:
		
							
								
								
									
										46
									
								
								exps-tf/test-invH.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								exps-tf/test-invH.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| import os, sys, math, time, random, argparse | ||||
| import tensorflow as tf | ||||
| from pathlib import Path | ||||
|  | ||||
|  | ||||
| def test_a(): | ||||
|   x = tf.Variable([[1.], [2.], [4.0]]) | ||||
|   with tf.GradientTape(persistent=True) as g: | ||||
|     trn = tf.math.exp(tf.math.reduce_sum(x)) | ||||
|     val = tf.math.cos(tf.math.reduce_sum(x)) | ||||
|     dT_dx = g.gradient(trn, x) | ||||
|     dV_dx = g.gradient(val, x) | ||||
|     hess_vector = g.gradient(dT_dx, x, output_gradients=dV_dx) | ||||
|   print ('calculate ok : {:}'.format(hess_vector)) | ||||
|  | ||||
| def test_b(): | ||||
|   cce = tf.keras.losses.SparseCategoricalCrossentropy() | ||||
|   L1 = tf.convert_to_tensor([0, 1, 2]) | ||||
|   L2 = tf.convert_to_tensor([2, 0, 1]) | ||||
|   B = tf.Variable([[.9, .05, .05], [.5, .89, .6], [.05, .01, .94]]) | ||||
|   with tf.GradientTape(persistent=True) as g: | ||||
|     trn = cce(L1, B) | ||||
|     val = cce(L2, B) | ||||
|     dT_dx = g.gradient(trn, B) | ||||
|     dV_dx = g.gradient(val, B) | ||||
|     hess_vector = g.gradient(dT_dx, B, output_gradients=dV_dx) | ||||
|   print ('calculate ok : {:}'.format(hess_vector)) | ||||
|  | ||||
| def test_c(): | ||||
|   cce = tf.keras.losses.CategoricalCrossentropy() | ||||
|   L1 = tf.convert_to_tensor([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]) | ||||
|   L2 = tf.convert_to_tensor([[0., 0., 1.], [0., 1., 0.], [1., 0., 0.]]) | ||||
|   B = tf.Variable([[.9, .05, .05], [.5, .89, .6], [.05, .01, .94]]) | ||||
|   with tf.GradientTape(persistent=True) as g: | ||||
|     trn = cce(L1, B) | ||||
|     val = cce(L2, B) | ||||
|     dT_dx = g.gradient(trn, B) | ||||
|     dV_dx = g.gradient(val, B) | ||||
|     hess_vector = g.gradient(dT_dx, B, output_gradients=dV_dx) | ||||
|   print ('calculate ok : {:}'.format(hess_vector)) | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|   print(tf.__version__) | ||||
|   test_c() | ||||
|   #test_b() | ||||
|   #test_a() | ||||
		Reference in New Issue
	
	Block a user