Browse Source

DefaultGraphStack: Perf-ops

tags/v0.12
Eli Belash 6 years ago
parent
commit
f433c32c44
1 changed files with 14 additions and 13 deletions
  1. +14
    -13
      src/TensorFlowNET.Core/Graphs/DefaultGraphStack.cs

+ 14
- 13
src/TensorFlowNET.Core/Graphs/DefaultGraphStack.cs View File

@@ -21,29 +21,30 @@ using static Tensorflow.Binding;


namespace Tensorflow namespace Tensorflow
{ {

/// <summary> /// <summary>
/// Serves as a stack for determining current default graph. /// Serves as a stack for determining current default graph.
/// </summary> /// </summary>
public class DefaultGraphStack
public class DefaultGraphStack
{ {
private readonly List<StackModel> _stack = new List<StackModel>();
private readonly List<StackModel> stack = new List<StackModel>();


public void set_controller(Graph @default) public void set_controller(Graph @default)
{ {
if (!_stack.Exists(x => x.Graph == @default))
_stack.Add(new StackModel {Graph = @default, IsDefault = true});
if (!stack.Exists(x => x.Graph == @default))
stack.Add(new StackModel {Graph = @default, IsDefault = true});


foreach (var s in _stack)
foreach (var s in stack)
s.IsDefault = s.Graph == @default; s.IsDefault = s.Graph == @default;
} }


public Graph get_controller() public Graph get_controller()
{ {
if (_stack.Count(x => x.IsDefault) == 0)
_stack.Add(new StackModel {Graph = tf.Graph(), IsDefault = true});
for (var i = _stack.Count - 1; i >= 0; i--)
if (stack.Count(x => x.IsDefault) == 0)
stack.Add(new StackModel {Graph = tf.Graph(), IsDefault = true});
for (var i = stack.Count - 1; i >= 0; i--)
{ {
var x = _stack[i];
var x = stack[i];
if (x.IsDefault) if (x.IsDefault)
return x.Graph; return x.Graph;
} }
@@ -53,16 +54,16 @@ namespace Tensorflow


public bool remove(Graph g) public bool remove(Graph g)
{ {
if (_stack.Count == 0)
if (stack.Count == 0)
return false; return false;


var sm = _stack.Find(model => model.Graph == g);
return sm != null && _stack.Remove(sm);
var sm = stack.Find(model => model.Graph == g);
return sm != null && stack.Remove(sm);
} }


public void reset() public void reset()
{ {
_stack.Clear();
stack.Clear();
} }


private class StackModel private class StackModel


Loading…
Cancel
Save