diff --git a/src/TensorFlowNET.Core/Gradients/Tape.ComputeGradient.cs b/src/TensorFlowNET.Core/Gradients/Tape.ComputeGradient.cs index 0d0ecbe2..3a5f4efa 100644 --- a/src/TensorFlowNET.Core/Gradients/Tape.ComputeGradient.cs +++ b/src/TensorFlowNET.Core/Gradients/Tape.ComputeGradient.cs @@ -26,6 +26,7 @@ namespace Tensorflow.Gradients tensor_tape_, state.op_tape); + int gcCollectFlag = 0; while (!op_stack.empty()) { var op = op_stack.Dequeue(); @@ -154,6 +155,9 @@ namespace Tensorflow.Gradients op_stack.Enqueue(op_id); } } + + if (gcCollectFlag++ % 10 == 0) + GC.Collect(); } if (state.op_tape.Count > 0)