public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is Sigmoid)
            {
                return(new SigmoidLayer());
            }

            return(null);
        }
示例#2
0
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is Softmax)
            {
                return(new SoftmaxLayer());
            }

            return(null);
        }
示例#3
0
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is ReLu)
            {
                return(new ReLuLayer());
            }

            return(null);
        }
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is Flatten)
            {
                return(new FlattenLayer());
            }

            return(null);
        }
示例#5
0
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is TanH)
            {
                return(new TanHLayer());
            }

            return(null);
        }
示例#6
0
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is LeakyReLu)
            {
                LeakyReLu leakyrelu = descriptor as LeakyReLu;

                return(new LeakyReLuLayer(leakyrelu.Alpha));
            }

            return(null);
        }
示例#7
0
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is Bias2D)
            {
                ILayer layer = new Bias2DLayer();

                return(layer);
            }

            return(null);
        }
示例#8
0
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is ELu)
            {
                ELu elu = descriptor as ELu;

                return(new ELuLayer(elu.Alpha));
            }

            return(null);
        }
示例#9
0
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is Reshape2D)
            {
                Reshape2D reshape = descriptor as Reshape2D;

                ILayer layer = new Reshape2DLayer(reshape.Height, reshape.Width, reshape.Channel, reshape.Batch);

                return(layer);
            }

            return(null);
        }
示例#10
0
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is Convolution1D)
            {
                Convolution1D conv = descriptor as Convolution1D;

                ILayer layer = new Conv1DLayer(conv.Padding, conv.Stride);

                return(layer);
            }

            return(null);
        }
示例#11
0
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is GlobalMaxPooling1D)
            {
                GlobalMaxPooling1D pool = descriptor as GlobalMaxPooling1D;

                ILayer layer = new GlobalMaxPool1DLayer();

                return(layer);
            }

            return(null);
        }
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is Cropping1D)
            {
                Cropping1D crop = descriptor as Cropping1D;

                ILayer layer = new Cropping1DLayer(crop.TrimBegin, crop.TrimEnd);

                return(layer);
            }

            return(null);
        }
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is BatchNormalization)
            {
                BatchNormalization bnm = descriptor as BatchNormalization;

                ILayer layer = new BatchNormLayer(bnm.Epsilon);

                return(layer);
            }

            return(null);
        }
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is RepeatVector)
            {
                RepeatVector repeat = descriptor as RepeatVector;

                ILayer layer = new RepeatVectorLayer(repeat.Num);

                return(layer);
            }

            return(null);
        }
示例#15
0
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is Dropout)
            {
                Dropout dropout = descriptor as Dropout;

                ILayer layer = new DropoutLayer(dropout.Rate, dropout.NoiseShape);

                return(layer);
            }

            return(null);
        }
示例#16
0
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is Permute)
            {
                Permute permute = descriptor as Permute;

                ILayer layer = new PermuteLayer(permute.Dim1, permute.Dim2, permute.Dim3);

                return(layer);
            }

            return(null);
        }
示例#17
0
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is Cropping2D)
            {
                Cropping2D crop = descriptor as Cropping2D;

                ILayer layer = new Cropping2DLayer(crop.TopTrim, crop.BottomTrim, crop.LeftTrim, crop.RightTrim);

                return(layer);
            }

            return(null);
        }
示例#18
0
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is Dense2D)
            {
                Dense2D dens = descriptor as Dense2D;

                ILayer layer = new Dense2DLayer(dens.Units);

                return(layer);
            }

            return(null);
        }
示例#19
0
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is MaxPooling1D)
            {
                MaxPooling1D pool = descriptor as MaxPooling1D;

                ILayer layer = new MaxPool1DLayer(pool.Padding, pool.Stride, pool.KernelSize);

                return(layer);
            }

            return(null);
        }
示例#20
0
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is SimpleRNN)
            {
                SimpleRNN rnn = descriptor as SimpleRNN;

                ILayer layer = new SimpleRNNLayer(rnn.Units, rnn.InputDim, rnn.Lambda);

                return(layer);
            }

            return(null);
        }
示例#21
0
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is Convolution2D)
            {
                Convolution2D conv = descriptor as Convolution2D;

                ILayer layer = new Conv2DLayer(conv.PaddingVertical, conv.PaddingHorizontal,
                                               conv.StrideVertical, conv.StrideHorizontal);

                return(layer);
            }

            return(null);
        }
示例#22
0
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is GRU)
            {
                GRU rnn = descriptor as GRU;

                ILayer layer = new GRULayer(rnn.Units, rnn.InputDim, rnn.Activation,
                                            rnn.RecurrentActivation);

                return(layer);
            }

            return(null);
        }
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is MinPooling2D)
            {
                MinPooling2D conv = descriptor as MinPooling2D;

                ILayer layer = new MaxPool2DLayer(conv.PaddingVertical, conv.PaddingHorizontal,
                                                  conv.StrideVertical, conv.StrideHorizontal,
                                                  conv.KernelHeight, conv.KernelWidth);

                return(layer);
            }

            return(null);
        }
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            ILayer layer = null;

            foreach (var fac in factories)
            {
                layer = fac.CreateProduct(descriptor);

                if (layer != null)
                {
                    return(layer);
                }
            }

            throw new Exception("Layer type does not exist!");
        }
示例#25
0
        public ILayer CreateProduct(IKernelDescriptor descriptor)
        {
            if (descriptor is Input2D)
            {
                Input2D inputDescriptor = descriptor as Input2D;

                Data2D data = new Data2D(inputDescriptor.Height, inputDescriptor.Width,
                                         inputDescriptor.Channels, inputDescriptor.Batch);

                data.ToZeros();
                Input2DLayer layer = new Input2DLayer();
                layer.SetInput(data);

                return(layer);
            }

            return(null);
        }
示例#26
0
 public void Add(IKernelDescriptor descriptor)
 {
     descriptors.Add(descriptor);
 }
示例#27
0
        private List <IKernelDescriptor> ReadDescriptors(JObject model)
        {
            List <IKernelDescriptor> dscps = model.SelectToken("descriptors").Select(layer => {
                IKernelDescriptor descriptor = null;

                String layerName = (String)layer.SelectToken("layer");

                switch (layerName)
                {
                case "AvgPooling1D":
                    descriptor = new AvgPooling1D(
                        (int)layer.SelectToken("padding"),
                        (int)layer.SelectToken("stride"),
                        (int)layer.SelectToken("kernel_size"));
                    break;

                case "GlobalAveragePooling1D":
                    descriptor = new GlobalAvgPooling1D();
                    break;

                case "AvgPooling2D":
                    descriptor = new AvgPooling2D((int)layer.SelectToken("padding_vl"), (int)layer.SelectToken("padding_hz"),
                                                  (int)layer.SelectToken("stride_vl"), (int)layer.SelectToken("stride_hz"),
                                                  (int)layer.SelectToken("kernel_height"), (int)layer.SelectToken("kernel_width"));
                    break;

                case "GlobalAveragePooling2D":
                    descriptor = new GlobalAvgPooling2D();
                    break;

                case "BatchNormalization":
                    descriptor = new BatchNormalization(
                        (int)layer.SelectToken("epsilon"));
                    break;

                case "Cropping1D":
                    descriptor = new Cropping1D(
                        (int)layer.SelectToken("trimBegin"),
                        (int)layer.SelectToken("trimEnd"));
                    break;

                case "Cropping2D":
                    descriptor = new Cropping2D(
                        (int)layer.SelectToken("topTrim"),
                        (int)layer.SelectToken("bottomTrim"),
                        (int)layer.SelectToken("leftTrim"),
                        (int)layer.SelectToken("rightTrim"));
                    break;

                case "MaxPooling1D":
                    descriptor = new MaxPooling1D(
                        (int)layer.SelectToken("padding"),
                        (int)layer.SelectToken("stride"),
                        (int)layer.SelectToken("kernel_size"));
                    break;

                case "GlobalMaxPooling1D":
                    descriptor = new GlobalMaxPooling1D();
                    break;

                case "MaxPooling2D":
                    descriptor = new MaxPooling2D((int)layer.SelectToken("padding_vl"), (int)layer.SelectToken("padding_hz"),
                                                  (int)layer.SelectToken("stride_vl"), (int)layer.SelectToken("stride_hz"),
                                                  (int)layer.SelectToken("kernel_height"), (int)layer.SelectToken("kernel_width"));
                    break;

                case "GlobalMaxPooling2D":
                    descriptor = new GlobalMaxPooling2D();
                    break;

                case "Convolution1D":
                    descriptor = new Convolution1D(
                        (int)layer.SelectToken("padding"),
                        (int)layer.SelectToken("stride"),
                        (int)layer.SelectToken("kernel_size"),
                        (int)layer.SelectToken("kernel_num"));
                    break;

                case "Convolution2D":
                    descriptor = new Convolution2D((int)layer.SelectToken("padding_vl"), (int)layer.SelectToken("padding_hz"),
                                                   (int)layer.SelectToken("stride_vl"), (int)layer.SelectToken("stride_hz"),
                                                   (int)layer.SelectToken("kernel_height"), (int)layer.SelectToken("kernel_width"),
                                                   (int)layer.SelectToken("kernel_num"));
                    break;

                case "Dense2D":
                    descriptor = new Dense2D((int)layer.SelectToken("units"));
                    break;

                case "Input2D":
                    descriptor = new Input2D((int)layer.SelectToken("height"), (int)layer.SelectToken("width"),
                                             (int)layer.SelectToken("channel"), (int)layer.SelectToken("batch"));
                    break;

                case "Bias2D":
                    descriptor = new Bias2D();
                    break;

                case "Permute":
                    descriptor = new Permute(
                        (int)layer.SelectToken("dim1"),
                        (int)layer.SelectToken("dim2"),
                        (int)layer.SelectToken("dim3"));
                    break;

                case "Reshape":
                    descriptor = new Reshape2D(
                        (int)layer.SelectToken("height"),
                        (int)layer.SelectToken("width"),
                        (int)layer.SelectToken("channel"),
                        1);
                    break;

                case "RepeatVector":
                    descriptor = new RepeatVector(
                        (int)layer.SelectToken("num"));
                    break;

                case "SimpleRNN":
                    descriptor = new SimpleRNN(
                        (int)layer.SelectToken("units"),
                        (int)layer.SelectToken("input_dim"),
                        ANR((string)layer.SelectToken("activation")));
                    break;

                case "LSTM":
                    descriptor = new LSTM(
                        (int)layer.SelectToken("units"),
                        (int)layer.SelectToken("input_dim"),
                        ANR((string)layer.SelectToken("activation")),
                        ANR((string)layer.SelectToken("rec_act")));
                    break;

                case "GRU":
                    descriptor = new GRU(
                        (int)layer.SelectToken("units"),
                        (int)layer.SelectToken("input_dim"),
                        ANR((string)layer.SelectToken("activation")),
                        ANR((string)layer.SelectToken("rec_act")));
                    break;

                case "ELu":
                    descriptor = new ELu(1);
                    break;

                case "HardSigmoid":
                    descriptor = new HardSigmoid();
                    break;

                case "ReLu":
                    descriptor = new ReLu();
                    break;

                case "Sigmoid":
                    descriptor = new Sigmoid();
                    break;

                case "Flatten":
                    descriptor = new Flatten();
                    break;

                case "Softmax":
                    descriptor = new Softmax();
                    break;

                case "SoftPlus":
                    descriptor = new SoftPlus();
                    break;

                case "SoftSign":
                    descriptor = new Softsign();
                    break;

                case "TanH":
                    descriptor = new TanH();
                    break;

                default:
                    throw new Exception("Unknown layer type!");
                }

                return(descriptor);
            }).ToList();

            return(dscps);
        }