public ActivationForwardLayer( ActivatorType type, MessageShape inputMessageShape) : base(inputMessageShape, inputMessageShape) { Activator = ActivatorFactory.Produce(type); }
public void AddFullyConnectedLayer(int numberOfNeurons, ActivatorType activatorType, LearningRateAnnealerType lrat) { if (!_layers.OfType <FullyConnectedLayer>().Any()) { var last = _layers.OfType <FilterLayer>().Last(); var fm = last.GetOutputFilterMeta(); _layers.Add(new FlattenLayer(fm.Channels, fm.Size, last.LayerIndex + 1)); } _layers.Add(new FullyConnectedLayer( ActivatorFactory.Produce(activatorType), numberOfNeurons, _layers.Last().GetNumberOfOutputValues(), _layers.Last().LayerIndex + 1, _weightInitializer, lrat)); }
public void AddDetectorLayer(ActivatorType activatorType) { if (_layers.Any()) { _layers.Add(new DetectorLayer( _layers.Last().LayerIndex + 1, ActivatorFactory.Produce(activatorType), _layers.OfType <FilterLayer>().Last().GetOutputFilterMeta())); } else { _layers.Add(new DetectorLayer( 1, ActivatorFactory.Produce(activatorType), new FilterMeta(_networkConfig.InputDimenision, _networkConfig.InputChannels))); } }