Skip to content

Commit a432807

Browse files
committed
Remove _layers in Layer.
1 parent 2584b68 commit a432807

File tree

11 files changed

+30
-36
lines changed

11 files changed

+30
-36
lines changed

src/TensorFlowNET.Core/Keras/Layers/ILayer.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ public interface ILayer
1313
List<INode> InboundNodes { get; }
1414
List<INode> OutboundNodes { get; }
1515
Tensors Apply(Tensors inputs, Tensor state = null, bool is_training = false);
16-
List<IVariableV1> trainable_variables { get; }
17-
List<IVariableV1> trainable_weights { get; }
18-
List<IVariableV1> non_trainable_weights { get; }
19-
Shape output_shape { get; }
16+
List<IVariableV1> TrainableVariables { get; }
17+
List<IVariableV1> TrainableWeights { get; }
18+
List<IVariableV1> NonTrainableWeights { get; }
19+
Shape OutputShape { get; }
2020
Shape BatchInputShape { get; }
2121
TF_DataType DType { get; }
2222
int count_params();

src/TensorFlowNET.Core/Operations/NnOps/RNNCell.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,11 @@ public abstract class RnnCell : ILayer, RNNArgs.IRnnArgCell
6767

6868
public bool Trainable => throw new NotImplementedException();
6969

70-
public List<IVariableV1> trainable_variables => throw new NotImplementedException();
71-
public List<IVariableV1> trainable_weights => throw new NotImplementedException();
72-
public List<IVariableV1> non_trainable_weights => throw new NotImplementedException();
70+
public List<IVariableV1> TrainableVariables => throw new NotImplementedException();
71+
public List<IVariableV1> TrainableWeights => throw new NotImplementedException();
72+
public List<IVariableV1> NonTrainableWeights => throw new NotImplementedException();
7373

74-
public Shape output_shape => throw new NotImplementedException();
74+
public Shape OutputShape => throw new NotImplementedException();
7575

7676
public Shape BatchInputShape => throw new NotImplementedException();
7777

src/TensorFlowNET.Keras/Engine/Functional.GetConfig.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ ModelConfig get_network_config()
2727
};
2828

2929
var node_conversion_map = new Dictionary<string, int>();
30-
foreach (var layer in _layers)
30+
foreach (var layer in _self_tracked_trackables)
3131
{
3232
var kept_nodes = _should_skip_first_node(layer) ? 1 : 0;
3333
foreach (var (original_node_index, node) in enumerate(layer.InboundNodes))
@@ -42,7 +42,7 @@ ModelConfig get_network_config()
4242
}
4343

4444
var layer_configs = new List<LayerConfig>();
45-
foreach (var layer in _layers)
45+
foreach (var layer in _self_tracked_trackables)
4646
{
4747
var filtered_inbound_nodes = new List<NodeConfig>();
4848
foreach (var (original_node_index, node) in enumerate(layer.InboundNodes))

src/TensorFlowNET.Keras/Engine/Functional.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,8 @@ protected void _init_graph_network(Tensors inputs, Tensors outputs)
6565
}
6666

6767
// Keep track of the network's nodes and layers.
68-
var (nodes, nodes_by_depth, layers, _) = MapGraphNetwork(inputs, outputs);
68+
(NetworkNodes, NodesByDepth, _self_tracked_trackables, _) = MapGraphNetwork(inputs, outputs);
6969

70-
NetworkNodes = nodes;
71-
NodesByDepth = nodes_by_depth;
72-
if (_layers.Count == 0)
73-
_layers = layers;
74-
_self_tracked_trackables = layers;
7570
// Build self.input_names and self.output_names.
7671
_set_output_names();
7772

src/TensorFlowNET.Keras/Engine/Layer.Layers.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ namespace Tensorflow.Keras.Engine
55
{
66
public partial class Layer
77
{
8-
protected List<ILayer> _layers = new List<ILayer>();
9-
public virtual List<ILayer> Layers => _layers;
8+
public virtual List<ILayer> Layers => _self_tracked_trackables;
109

1110
protected void StackLayers(params ILayer[] layers)
1211
{

src/TensorFlowNET.Keras/Engine/Layer.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public abstract partial class Layer : AutoTrackable, ILayer
6363
public bool SupportsMasking { get; set; }
6464
protected List<IVariableV1> _trainable_weights;
6565

66-
public virtual List<IVariableV1> trainable_variables => _trainable_weights;
66+
public virtual List<IVariableV1> TrainableVariables => _trainable_weights;
6767

6868
protected List<IVariableV1> _non_trainable_weights;
6969
public List<IVariableV1> non_trainable_variables => _non_trainable_weights;
@@ -88,7 +88,7 @@ public abstract partial class Layer : AutoTrackable, ILayer
8888
public CallContext CallContext => callContext.Value;
8989
public Tensor[] input => inboundNodes[0].input_tensors;
9090
public Dictionary<int, List<INode>> NodesByDepth { get; set; }
91-
public Shape output_shape => inboundNodes[0].Outputs.shape;
91+
public Shape OutputShape => inboundNodes[0].Outputs.shape;
9292
protected List<ILayer> _self_tracked_trackables;
9393

9494
public Layer(LayerArgs args)
@@ -250,15 +250,15 @@ public int count_params()
250250
return layer_utils.count_params(this, weights);
251251
return 0;
252252
}
253-
List<IVariableV1> ILayer.trainable_weights
253+
List<IVariableV1> ILayer.TrainableWeights
254254
{
255255
get
256256
{
257257
return _trainable_weights;
258258
}
259259
}
260260

261-
List<IVariableV1> ILayer.non_trainable_weights
261+
List<IVariableV1> ILayer.NonTrainableWeights
262262
{
263263
get
264264
{

src/TensorFlowNET.Keras/Engine/Model.Train.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public partial class Model
3434
// self.optimizer.apply_gradients(zip(gradients, trainable_variables))
3535
// The _minimize call does a few extra steps unnecessary in most cases,
3636
// such as loss scaling and gradient clipping.
37-
_minimize(tape, optimizer, loss, trainable_variables);
37+
_minimize(tape, optimizer, loss, TrainableVariables);
3838
compiled_metrics.update_state(y, y_pred);
3939

4040
return metrics.Select(x => (x.Name, x.result())).ToList();

src/TensorFlowNET.Keras/Engine/Model.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ void _init_batch_counters()
7474
public override List<ILayer> Layers
7575
=> _flatten_layers(recursive: false, include_self: false).ToList();
7676

77-
public override List<IVariableV1> trainable_variables
77+
public override List<IVariableV1> TrainableVariables
7878
{
7979
get
8080
{
@@ -88,13 +88,13 @@ public override List<IVariableV1> trainable_variables
8888
foreach (var trackable_obj in _self_tracked_trackables)
8989
{
9090
if (trackable_obj.Trainable)
91-
variables.AddRange(trackable_obj.trainable_variables);
91+
variables.AddRange(trackable_obj.TrainableVariables);
9292
}
9393

94-
foreach (var layer in _layers)
94+
foreach (var layer in _self_tracked_trackables)
9595
{
9696
if (layer.Trainable)
97-
variables.AddRange(layer.trainable_variables);
97+
variables.AddRange(layer.TrainableVariables);
9898
}
9999

100100
// variables.AddRange(_trainable_weights);

src/TensorFlowNET.Keras/Engine/Sequential.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public void add(ILayer layer)
7575
{
7676
built = false;
7777
var set_inputs = false;
78-
if (_layers.Count == 0)
78+
if (_self_tracked_trackables.Count == 0)
7979
{
8080
if (layer is InputLayer)
8181
{
@@ -128,7 +128,7 @@ public void add(ILayer layer)
128128

129129
void _handle_deferred_layer_dependencies(params ILayer[] layers)
130130
{
131-
_layers.AddRange(layers);
131+
_self_tracked_trackables.AddRange(layers);
132132
}
133133

134134
protected override Tensors Call(Tensors inputs, Tensor state = null, bool? training = null)
@@ -156,12 +156,12 @@ void _build_graph_network_for_inferred_shape(Shape input_shape, TF_DataType inpu
156156
ops.init_scope();
157157
var inputs = keras.Input(batch_input_shape: input_shape,
158158
dtype: input_dtype,
159-
name: $"{_layers[0].Name}_input");
159+
name: $"{_self_tracked_trackables[0].Name}_input");
160160
Tensors layer_input = inputs;
161161
Tensors layer_output = null;
162162
Tensors outputs = null;
163163
List<INode> created_nodes = new List<INode>();
164-
foreach (var layer in _layers)
164+
foreach (var layer in _self_tracked_trackables)
165165
{
166166
clear_previously_created_nodes(layer, _created_nodes);
167167
layer_output = layer.Apply(layer_input);

src/TensorFlowNET.Keras/Saving/hdf5_format.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -338,8 +338,8 @@ public static void load_attributes_from_hdf5_group(long filepath = -1, Dictionar
338338

339339
public static List<IVariableV1> _legacy_weights(ILayer layer)
340340
{
341-
var weights = layer.trainable_weights.Select(x => x).ToList();
342-
weights.AddRange(layer.non_trainable_weights);
341+
var weights = layer.TrainableWeights.Select(x => x).ToList();
342+
weights.AddRange(layer.NonTrainableWeights);
343343
return weights;
344344
}
345345
}

src/TensorFlowNET.Keras/Utils/layer_utils.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public static void print_summary(Model model, int line_length = -1, float[] posi
103103
print(string.Join("", range(line_length).Select(x => "_")));
104104
}
105105

106-
var trainable_count = count_params(model, model.trainable_variables);
106+
var trainable_count = count_params(model, model.TrainableVariables);
107107
var non_trainable_count = count_params(model, model.non_trainable_variables);
108108

109109
print($"Total params: {trainable_count + non_trainable_count}");
@@ -137,7 +137,7 @@ static void print_layer_summary(ILayer layer, int[] positions)
137137
var fields = new string[]
138138
{
139139
$"{name} ({layer.GetType().Name})",
140-
$"{layer.output_shape}",
140+
$"{layer.OutputShape}",
141141
$"{layer.count_params()}"
142142
};
143143

@@ -164,7 +164,7 @@ static void print_layer_summary_with_connections(ILayer layer, int[] positions,
164164
var fields = new string[]
165165
{
166166
$"{name}({layer.GetType().Name})",
167-
$"{layer.output_shape}",
167+
$"{layer.OutputShape}",
168168
$"{layer.count_params()}",
169169
first_connection
170170
};

0 commit comments

Comments
 (0)