예제 #1
0
파일: HiddenLayer.cs 프로젝트: Jock96/CNN2
        /// <summary>
        /// Получить данные слоя.
        /// </summary>
        /// <param name="returnType">Тип возвращаемых значений.</param>
        /// <returns>Возвращаемые значения.</returns>
        public override dynamic GetData(LayerReturnType returnType)
        {
            switch (returnType)
            {
            case LayerReturnType.Neurons:
                return(_neurons);

            case LayerReturnType.Map:
                //TODO: Доделать.
                throw new NotImplementedException();

            default:
                throw new Exception("Неизвестный тип возвращаемого значения!");
            }
        }
예제 #2
0
파일: OutputLayer.cs 프로젝트: Jock96/CNN2
        /// <summary>
        /// Вывести данные слоя (возвращает словарь индекс/нейрон).
        /// </summary>
        public override dynamic GetData(LayerReturnType returnType)
        {
            if (!_isInitialized)
                throw new Exception("Слой не инициализирован и не может вернуть значения!");

            // Независимо от типа возвращаем словарь нейронов
            // Ключ - номер нейрона, значение - сам нейрон.

            var indexToNeuronDictionary = new Dictionary<int, Neuron>();
            var index = 0;

            foreach (var neuron in _layerNeurons)
            {
                indexToNeuronDictionary.Add(index, neuron);
                ++index;
            }

            return indexToNeuronDictionary;
        }
예제 #3
0
        /// <summary>
        /// Получить данные слоя.
        /// </summary>
        /// <param name="returnType">Тип возвращаемого значения.</param>
        /// <returns>Возвращает данные слоя.</returns>
        public override dynamic GetData(LayerReturnType returnType)
        {
            if (!_isInitialized)
            {
                throw new Exception("Слой не инициализирован и не может вернуть значения!");
            }

            switch (returnType)
            {
            case LayerReturnType.Map:
                return(FilterMatrix.DoMapFiltering(Map));

            case LayerReturnType.Neurons:
                // TODO: Реализовать возврат нейронов.
                throw new NotImplementedException();

            default:
                throw new Exception("Неизвестный тип возвращаемого значения!");
            }
        }
예제 #4
0
        /// <summary>
        /// Получить данные слоя.
        /// </summary>
        /// <param name="returnType">Тип возвращаемых значений.</param>
        /// <returns>Возвращаемые значения.</returns>
        public override dynamic GetData(LayerReturnType returnType)
        {
            if (!_isInitialized)
            {
                throw new Exception("Слой не инициализирован и не может вернуть значения!");
            }

            var figureMap = PoolingMatrix.DoMaxPooling(Map);

            switch (returnType)
            {
            case LayerReturnType.Map:
                return(figureMap);

            case LayerReturnType.Neurons:
                var output = figureMap.ToNeuronList(_isNeedActivateNeurons);
                _isNeedActivateNeurons = false;
                return(output);

            default:
                throw new Exception("Неизвестный тип возвращаемого значения!");
            }
        }
예제 #5
0
파일: Layer.cs 프로젝트: Jock96/CNN2
 /// <summary>
 /// Вернуть данные слоя.
 /// </summary>
 /// <param name="returnType">Возвращаемый тип.</param>
 /// <returns>Возвращает данные слоя.</returns>
 public abstract dynamic GetData(LayerReturnType returnType);