private static LayerVertex Convert(INode node) { var layer = default(LayerVertex); if (Enum.TryParse(node.Properties[nameof(LayerVertex.Kind)].ToString(), out VertexKind kind)) { switch (kind) { case VertexKind.Input: layer = new InputLayerVertex().Deserialize(node.Properties); break; case VertexKind.Convolutional: layer = new ConvolutionalLayerVertex().Deserialize(node.Properties); break; case VertexKind.Pooling: layer = new PoolingLayerVertex().Deserialize(node.Properties); break; case VertexKind.Scaling: layer = new ScaleLayerVertex().Deserialize(node.Properties); break; case VertexKind.Dropout: layer = new DropoutLayerVertex().Deserialize(node.Properties); break; case VertexKind.BatchNormalization: layer = new BatchNormalizationLayerVertex().Deserialize(node.Properties); break; case VertexKind.Activation: layer = new ActivationLayerVertex().Deserialize(node.Properties); break; case VertexKind.Eltwise: layer = new EltwiseLayerVertex().Deserialize(node.Properties); break; case VertexKind.Concat: layer = new ConcatLayerVertex().Deserialize(node.Properties); break; case VertexKind.FullyConnected: layer = new FullyConnectedLayerVertex().Deserialize(node.Properties); break; case VertexKind.Softmax: layer = new SoftmaxLayerVertex().Deserialize(node.Properties); break; default: break; } } return(layer); }
public LayerBlockBuilder AddBatchNorm(BatchNormalizationLayerVertex layer) { base.AddVertex(layer); base.AddEdge(_layer.Identifier, layer.Identifier, cycle: true); return(this); }