Exemple #1
0
        //Static methods
        /// <summary>
        /// Creates the simplified configuration of the input encoder.
        /// </summary>
        /// <remarks>
        /// Supports only external input fields of the the real numbers.
        /// </remarks>
        /// <param name="feedingCfg">The configuration of the input feeding.</param>
        /// <param name="spikesCoderCfg">The configuration of the input spikes coder.</param>
        /// <param name="extFieldNameCollection">The collection of the external input field names.</param>
        /// <param name="routeToReadout">Specifies whether to route inputs to readout layer.</param>
        public static InputEncoderSettings CreateInputCfg(IFeedingSettings feedingCfg,
                                                          InputSpikesCoderSettings spikesCoderCfg,
                                                          IEnumerable <string> extFieldNameCollection,
                                                          bool routeToReadout = true
                                                          )
        {
            if (feedingCfg == null)
            {
                throw new ArgumentNullException("feedingCfg");
            }
            if (spikesCoderCfg == null)
            {
                spikesCoderCfg = new InputSpikesCoderSettings();
            }
            List <ExternalFieldSettings> extFieldCollection = new List <ExternalFieldSettings>();

            foreach (string name in extFieldNameCollection)
            {
                extFieldCollection.Add(new ExternalFieldSettings(name, new RealFeatureFilterSettings(), routeToReadout));
            }
            ExternalFieldsSettings extFieldsCfg = new ExternalFieldsSettings(extFieldCollection);
            VaryingFieldsSettings  fieldsCfg    = new VaryingFieldsSettings(spikesCoderCfg, extFieldsCfg, null, null, routeToReadout);

            return(new InputEncoderSettings(feedingCfg, fieldsCfg));
        }
Exemple #2
0
 //Constructors
 /// <summary>
 /// Creates an initialized instance
 /// </summary>
 /// <param name="feedingCfg">Input feeding settings</param>
 /// <param name="varyingFieldsCfg">Varying input fields settings</param>
 /// <param name="coordinatesCfg">Input placement in 3D space</param>
 public InputEncoderSettings(IFeedingSettings feedingCfg,
                             VaryingFieldsSettings varyingFieldsCfg,
                             CoordinatesSettings coordinatesCfg = null
                             )
 {
     FeedingCfg       = (IFeedingSettings)feedingCfg.DeepClone();
     VaryingFieldsCfg = (VaryingFieldsSettings)varyingFieldsCfg.DeepClone();
     CoordinatesCfg   = coordinatesCfg == null ? new CoordinatesSettings() : (CoordinatesSettings)coordinatesCfg.DeepClone();
     Check();
     return;
 }
Exemple #3
0
 /// <summary>
 /// Creates configuration of the InputEncoder.
 /// Contains only external input fields.
 /// </summary>
 /// <param name="feedingCfg">Input feeding configuration</param>
 /// <param name="routeToReadout">Specifies whether to route input values to readout</param>
 /// <param name="externalFieldCfg">External input field configuration</param>
 public static InputEncoderSettings CreateInputCfg(IFeedingSettings feedingCfg,
                                                   bool routeToReadout,
                                                   params ExternalFieldSettings[] externalFieldCfg
                                                   )
 {
     if (feedingCfg == null)
     {
         throw new ArgumentNullException("feedingCfg");
     }
     return(new InputEncoderSettings(feedingCfg, new VaryingFieldsSettings(new ExternalFieldsSettings(externalFieldCfg), null, null, routeToReadout)));
 }