Skip to content

Instantly share code, notes, and snippets.

@rxwei
Created February 17, 2019 13:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rxwei/1c9992feda3462df6f6e6fe9d5a2e5e3 to your computer and use it in GitHub Desktop.
Save rxwei/1c9992feda3462df6f6e6fe9d5a2e5e3 to your computer and use it in GitHub Desktop.
// AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__adjoint_src_0_wrt_0_1
sil hidden @AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__adjoint_src_0_wrt_0_1 : $@convention(method) (@guaranteed Tensor<Float>, @guaranteed _AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__Type__src_0_wrt_0_1) -> (@owned MNISTClassifier.AllDifferentiableVariables, @owned Tensor<Float>) {
// %0 // users: %41, %4, %2
// %1 // users: %29, %25, %21, %17, %13, %11, %7, %3
bb0(%0 : $Tensor<Float>, %1 : $_AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__Type__src_0_wrt_0_1):
retain_value %0 : $Tensor<Float> // id: %2
%3 = struct_extract %1 : $_AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__Type__src_0_wrt_0_1, #_AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__Type__src_0_wrt_0_1.pullback_7 // user: %4
%4 = apply %3(%0) : $@callee_guaranteed (@guaranteed Tensor<Float>) -> (@owned Dense<Float>.AllDifferentiableVariables, @owned Tensor<Float>) // users: %6, %5
%5 = tuple_extract %4 : $(Dense<Float>.AllDifferentiableVariables, Tensor<Float>), 0 // users: %49, %33
%6 = tuple_extract %4 : $(Dense<Float>.AllDifferentiableVariables, Tensor<Float>), 1 // users: %40, %8
%7 = struct_extract %1 : $_AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__Type__src_0_wrt_0_1, #_AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__Type__src_0_wrt_0_1.pullback_6 // user: %8
%8 = apply %7(%6) : $@callee_guaranteed (@guaranteed Tensor<Float>) -> (@owned Dense<Float>.AllDifferentiableVariables, @owned Tensor<Float>) // users: %10, %9
%9 = tuple_extract %8 : $(Dense<Float>.AllDifferentiableVariables, Tensor<Float>), 0 // users: %48, %33
%10 = tuple_extract %8 : $(Dense<Float>.AllDifferentiableVariables, Tensor<Float>), 1 // users: %39, %12
%11 = struct_extract %1 : $_AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__Type__src_0_wrt_0_1, #_AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__Type__src_0_wrt_0_1.pullback_5 // user: %12
%12 = apply %11(%10) : $@callee_guaranteed (@guaranteed Tensor<Float>) -> @owned Tensor<Float> // users: %38, %14
%13 = struct_extract %1 : $_AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__Type__src_0_wrt_0_1, #_AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__Type__src_0_wrt_0_1.pullback_4 // user: %14
%14 = apply %13(%12) : $@callee_guaranteed (@guaranteed Tensor<Float>) -> (MaxPool2D<Float>.AllDifferentiableVariables, @owned Tensor<Float>) // users: %16, %15
%15 = tuple_extract %14 : $(MaxPool2D<Float>.AllDifferentiableVariables, Tensor<Float>), 0 // users: %42, %33
%16 = tuple_extract %14 : $(MaxPool2D<Float>.AllDifferentiableVariables, Tensor<Float>), 1 // users: %37, %18
%17 = struct_extract %1 : $_AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__Type__src_0_wrt_0_1, #_AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__Type__src_0_wrt_0_1.pullback_3 // user: %18
%18 = apply %17(%16) : $@callee_guaranteed (@guaranteed Tensor<Float>) -> (@owned Conv2D<Float>.AllDifferentiableVariables, @owned Tensor<Float>) // users: %20, %19
%19 = tuple_extract %18 : $(Conv2D<Float>.AllDifferentiableVariables, Tensor<Float>), 0 // users: %47, %33
%20 = tuple_extract %18 : $(Conv2D<Float>.AllDifferentiableVariables, Tensor<Float>), 1 // users: %36, %22
%21 = struct_extract %1 : $_AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__Type__src_0_wrt_0_1, #_AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__Type__src_0_wrt_0_1.pullback_2 // user: %22
%22 = apply %21(%20) : $@callee_guaranteed (@guaranteed Tensor<Float>) -> (MaxPool2D<Float>.AllDifferentiableVariables, @owned Tensor<Float>) // users: %24, %23
%23 = tuple_extract %22 : $(MaxPool2D<Float>.AllDifferentiableVariables, Tensor<Float>), 0 // users: %35, %33
%24 = tuple_extract %22 : $(MaxPool2D<Float>.AllDifferentiableVariables, Tensor<Float>), 1 // users: %44, %26
%25 = struct_extract %1 : $_AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__Type__src_0_wrt_0_1, #_AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__Type__src_0_wrt_0_1.pullback_1 // user: %26
%26 = apply %25(%24) : $@callee_guaranteed (@guaranteed Tensor<Float>) -> (@owned BatchNorm<Float>.AllDifferentiableVariables, @owned Tensor<Float>) // users: %28, %27
%27 = tuple_extract %26 : $(BatchNorm<Float>.AllDifferentiableVariables, Tensor<Float>), 0 // users: %43, %33
%28 = tuple_extract %26 : $(BatchNorm<Float>.AllDifferentiableVariables, Tensor<Float>), 1 // users: %46, %30
%29 = struct_extract %1 : $_AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__Type__src_0_wrt_0_1, #_AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__Type__src_0_wrt_0_1.pullback_0 // user: %30
%30 = apply %29(%28) : $@callee_guaranteed (@guaranteed Tensor<Float>) -> (@owned Conv2D<Float>.AllDifferentiableVariables, @owned Tensor<Float>) // users: %32, %31
%31 = tuple_extract %30 : $(Conv2D<Float>.AllDifferentiableVariables, Tensor<Float>), 0 // users: %45, %33
%32 = tuple_extract %30 : $(Conv2D<Float>.AllDifferentiableVariables, Tensor<Float>), 1 // user: %50
%33 = struct $MNISTClassifier.AllDifferentiableVariables (%23 : $MaxPool2D<Float>.AllDifferentiableVariables, %15 : $MaxPool2D<Float>.AllDifferentiableVariables, %27 : $BatchNorm<Float>.AllDifferentiableVariables, %31 : $Conv2D<Float>.AllDifferentiableVariables, %19 : $Conv2D<Float>.AllDifferentiableVariables, %9 : $Dense<Float>.AllDifferentiableVariables, %5 : $Dense<Float>.AllDifferentiableVariables) // users: %50, %34
retain_value %33 : $MNISTClassifier.AllDifferentiableVariables // id: %34
release_value %23 : $MaxPool2D<Float>.AllDifferentiableVariables // id: %35
release_value %20 : $Tensor<Float> // id: %36
release_value %16 : $Tensor<Float> // id: %37
release_value %12 : $Tensor<Float> // id: %38
release_value %10 : $Tensor<Float> // id: %39
release_value %6 : $Tensor<Float> // id: %40
release_value %0 : $Tensor<Float> // id: %41
release_value %15 : $MaxPool2D<Float>.AllDifferentiableVariables // id: %42
release_value %27 : $BatchNorm<Float>.AllDifferentiableVariables // id: %43
release_value %24 : $Tensor<Float> // id: %44
release_value %31 : $Conv2D<Float>.AllDifferentiableVariables // id: %45
release_value %28 : $Tensor<Float> // id: %46
release_value %19 : $Conv2D<Float>.AllDifferentiableVariables // id: %47
release_value %9 : $Dense<Float>.AllDifferentiableVariables // id: %48
release_value %5 : $Dense<Float>.AllDifferentiableVariables // id: %49
%50 = tuple (%33 : $MNISTClassifier.AllDifferentiableVariables, %32 : $Tensor<Float>) // user: %51
return %50 : $(MNISTClassifier.AllDifferentiableVariables, Tensor<Float>) // id: %51
} // end sil function 'AD__$s4test15MNISTClassifierV7applied2to10TensorFlow0E0VySfGAI_tF__adjoint_src_0_wrt_0_1'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment