@@ -269,21 +269,29 @@ public static Tensor[] fused_batch_norm_grad(FusedBatchNormParams @params)
269269 }
270270
271271 public static Tensor [ ] fused_batch_norm_grad_v3 ( FusedBatchNormParams @params )
272- {
273- var op = tf . OpDefLib . _apply_op_helper ( "FusedBatchNormGradV3" , name : @params . Name , args : new
274- {
275- y_backprop = @params . YBackprop ,
276- x = @params . X ,
277- scale = @params . Scale ,
278- reserve_space_1 = @params . ReserveSpace1 ,
279- reserve_space_2 = @params . ReserveSpace2 ,
280- reserve_space_3 = @params . ReserveSpace3 ,
281- epsilon = @params . Epsilon ,
282- data_format = @params . DataFormat ,
283- is_training = @params . IsTraining
284- } ) ;
285- return op . outputs ;
286- }
272+ => tf . Context . RunInAutoMode ( ( )
273+ => tf . OpDefLib . _apply_op_helper ( "FusedBatchNormGradV3" , name : @params . Name ,
274+ args : new
275+ {
276+ y_backprop = @params . YBackprop ,
277+ x = @params . X ,
278+ scale = @params . Scale ,
279+ reserve_space_1 = @params . ReserveSpace1 ,
280+ reserve_space_2 = @params . ReserveSpace2 ,
281+ reserve_space_3 = @params . ReserveSpace3 ,
282+ epsilon = @params . Epsilon ,
283+ data_format = @params . DataFormat ,
284+ is_training = @params . IsTraining
285+ } ) . outputs , ( )
286+ => tf . Runner . TFE_FastPathExecute ( tf . Context , tf . Context . DeviceName ,
287+ "FusedBatchNormGradV3" , @params . Name ,
288+ null ,
289+ @params . YBackprop , @params . X , @params . Scale ,
290+ @params . ReserveSpace1 , @params . ReserveSpace2 , @params . ReserveSpace3 ,
291+ "epsilon" , @params . Epsilon ,
292+ "data_format" , @params . DataFormat ,
293+ "is_training" , @params . IsTraining ) ,
294+ @params . YBackprop ) ;
287295
288296 public static Tensor [ ] fused_batch_norm ( Tensor x ,
289297 Tensor scale ,
@@ -313,9 +321,10 @@ public static Tensor[] fused_batch_norm(Tensor x,
313321 public static Tensor [ ] fused_batch_norm_v3 ( Tensor x ,
314322 Tensor scale ,
315323 Tensor offset ,
316- Tensor mean ,
317- Tensor variance ,
324+ IVariableV1 mean ,
325+ IVariableV1 variance ,
318326 float epsilon = 0.0001f ,
327+ float exponential_avg_factor = 1.0f ,
319328 string data_format = "NHWC" ,
320329 bool is_training = true ,
321330 string name = null )
@@ -328,9 +337,10 @@ public static Tensor[] fused_batch_norm_v3(Tensor x,
328337 x ,
329338 scale ,
330339 offset ,
331- mean ,
332- variance ,
340+ mean . AsTensor ( ) ,
341+ variance . AsTensor ( ) ,
333342 "epsilon" , epsilon ,
343+ "exponential_avg_factor" , exponential_avg_factor ,
334344 "data_format" , data_format ,
335345 "is_training" , is_training ) ;
336346
@@ -378,14 +388,14 @@ public static Tensor local_response_normalization(Tensor input, int depth_radius
378388 }
379389
380390 public static Tensor log_softmax ( Tensor logits , string name = null )
381- {
382- var _op = tf . OpDefLib . _apply_op_helper ( "LogSoftmax" , name : name , args : new
383- {
384- logits
385- } ) ;
386-
387- return _op . output ;
388- }
391+ => tf . Context . RunInAutoMode ( ( )
392+ => tf . OpDefLib . _apply_op_helper ( "LogSoftmax" , name : name ,
393+ args : new { logits } ) . output , ( )
394+ => tf . Runner . TFE_FastPathExecute ( tf . Context , tf . Context . DeviceName ,
395+ "LogSoftmax" , name ,
396+ null ,
397+ logits ) . FirstOrDefault ( ) ,
398+ logits ) ;
389399
390400 /// <summary>
391401 /// Says whether the targets are in the top `K` predictions.
@@ -560,6 +570,16 @@ public static Tensor softmax(Tensor logits, string name = null)
560570 /// <returns></returns>
561571 public static ( Tensor , Tensor ) softmax_cross_entropy_with_logits ( Tensor features , Tensor labels , string name = null )
562572 {
573+ if ( tf . executing_eagerly ( ) )
574+ {
575+ var results = tf . Runner . TFE_FastPathExecute ( tf . Context , tf . Context . DeviceName ,
576+ "SoftmaxCrossEntropyWithLogits" , name ,
577+ null ,
578+ features , labels ) ;
579+
580+ return ( results [ 0 ] , results [ 1 ] ) ;
581+ }
582+
563583 var _op = tf . OpDefLib . _apply_op_helper ( "SoftmaxCrossEntropyWithLogits" , name : name , args : new
564584 {
565585 features ,
0 commit comments