Exemple #1
0
        /// <summary>
        /// 增加全连接层,仅用于BP网络
        /// </summary>
        /// <param name="cnnFullLayer"></param>
        public void AddCnnFullLayer(int inputCount, int outputCount, CnnNode.ActivationFunctionTypes activationFunctionType, bool standardization)
        {
            CnnFullLayer cnnFullLayer = new CnnFullLayer(inputCount,
                                                         outputCount, activationFunctionType, standardization);

            CnnFullLayerList.Add(cnnFullLayer);
        }
Exemple #2
0
 /// <summary>
 /// 增加全连接层,在卷积层后,要先创建完卷积层
 /// </summary>
 /// <param name="cnnFullLayer"></param>
 public void AddCnnFullLayer(int outputCount, CnnNode.ActivationFunctionTypes activationFunctionType, bool standardization)
 {
     if (CnnFullLayerList.Count == 0)
     {
         //连接卷积层
         var          cnnConvolutionLayerLast = CnnConvolutionLayerList[CnnConvolutionLayerList.Count - 1];//最后的卷积层
         CnnFullLayer cnnFullLayer            = new CnnFullLayer(cnnConvolutionLayerLast.ConvolutionKernelCount
                                                                 * cnnConvolutionLayerLast.OutputWidth
                                                                 * cnnConvolutionLayerLast.OutputHeight,
                                                                 outputCount, activationFunctionType, standardization);
         CnnFullLayerList.Add(cnnFullLayer);
     }
     else
     {
         var          cnnFullLayerLast = CnnFullLayerList[CnnFullLayerList.Count - 1];//最后的卷积层
         CnnFullLayer cnnFullLayer     = new CnnFullLayer(cnnFullLayerLast.OutputCount,
                                                          outputCount, activationFunctionType, standardization);
         CnnFullLayerList.Add(cnnFullLayer);
     }
 }