Example #1
0
        /** @copydoc Layer::dispose */
        protected override void dispose()
        {
            foreach (PoolingLayer <T> layer in m_rgPoolingLayers)
            {
                layer.Dispose();
            }

            m_rgPoolingLayers.Clear();

            if (m_colBlobSplitTopVec != null)
            {
                m_colBlobSplitTopVec.Dispose();
                m_colBlobSplitTopVec = null;
            }

            if (m_split_layer != null)
            {
                m_split_layer.Dispose();
                m_split_layer = null;
            }

            if (m_colBlobPoolingOutputs != null)
            {
                m_colBlobPoolingOutputs.Dispose();
                m_colBlobPoolingOutputs = null;
            }

            if (m_colBlobFlattenOutputs != null)
            {
                m_colBlobFlattenOutputs.Dispose();
                m_colBlobFlattenOutputs = null;
            }

            foreach (FlattenLayer <T> layer in m_rgFlattenLayers)
            {
                layer.Dispose();
            }

            m_rgFlattenLayers.Clear();

            m_rgPoolingBottomVec.Clear();
            m_rgPoolingTopVecs.Clear();
            m_rgFlattenLayerTopVecs.Clear();

            base.dispose();
        }
Example #2
0
        /** @copydoc Layer::dispose */
        protected override void dispose()
        {
            m_blobScale.Dispose();
            m_blobSquareInput.Dispose();
            m_blobSquareOutput.Dispose();
            m_blobPoolOutput.Dispose();
            m_blobPowerOutput.Dispose();
            m_blobProductInput.Dispose();

            if (m_splitLayer != null)
            {
                m_splitLayer.Dispose();
                m_splitLayer = null;
            }

            if (m_squareLayer != null)
            {
                m_squareLayer.Dispose();
                m_squareLayer = null;
            }

            if (m_poolLayer != null)
            {
                m_poolLayer.Dispose();
                m_poolLayer = null;
            }

            if (m_powerLayer != null)
            {
                m_powerLayer.Dispose();
                m_powerLayer = null;
            }

            if (m_powerLayer != null)
            {
                m_productLayer.Dispose();
                m_powerLayer = null;
            }

            if (m_hNormDesc != 0)
            {
                m_cuda.FreeLRNDesc(m_hNormDesc);
                m_hNormDesc = 0;
            }

            if (m_hBottomDesc != 0)
            {
                m_cuda.FreeTensorDesc(m_hBottomDesc);
                m_hBottomDesc = 0;
            }

            if (m_hTopDesc != 0)
            {
                m_cuda.FreeTensorDesc(m_hTopDesc);
                m_hTopDesc = 0;
            }

            if (m_hCuDnn != 0)
            {
                m_cuda.FreeCuDNN(m_hCuDnn);
                m_hCuDnn = 0;
            }

            if (m_hTempData1 != 0)
            {
                m_cuda.FreeMemory(m_hTempData1);
                m_hTempData1 = 0;
            }

            if (m_hTempData2 != 0)
            {
                m_cuda.FreeMemory(m_hTempData2);
                m_hTempData2 = 0;
            }

            base.dispose();
        }