示例#1
0
        public AveragePool2dLayerArgument DeserializeBin(int offset, K210BinDeserializeContext context)
        {
            var sr       = context.GetReaderAt(offset);
            var argument = new AveragePool2dLayerArgument
            {
                Flags = sr.Read <K210LayerFlags>(),
                MainMemoryInputAddress  = sr.Read <uint>(),
                MainMemoryOutputAddress = sr.Read <uint>(),
                InputWidth     = sr.Read <uint>(),
                InputHeight    = sr.Read <uint>(),
                InputChannels  = sr.Read <uint>(),
                OutputWidth    = sr.Read <uint>(),
                OutputHeight   = sr.Read <uint>(),
                OutputChannels = sr.Read <uint>(),
                KernelWidth    = sr.Read <uint>(),
                KernelHeight   = sr.Read <uint>(),
                StrideWidth    = sr.Read <uint>(),
                StrideHeight   = sr.Read <uint>(),
                PaddingWidth   = sr.Read <uint>(),
                PaddingHeight  = sr.Read <uint>(),
                Activation     = sr.Read <ActivationFunctionType>()
            };

            return(argument);
        }
示例#2
0
 public K210Emulator(byte[] kmodel)
 {
     _kmodel = kmodel;
     ReadHeader();
     _deserializeContext = new K210BinDeserializeContext
     {
         WeightsBits = _weightsBits,
         KModel = _kmodel
     };
 }
示例#3
0
        public LogisticLayerArgument DeserializeBin(int offset, K210BinDeserializeContext context)
        {
            var sr       = context.GetReaderAt(offset);
            var argument = new LogisticLayerArgument();

            argument.Flags = sr.Read <K210LayerFlags>();
            argument.MainMemoryInputAddress  = sr.Read <uint>();
            argument.MainMemoryOutputAddress = sr.Read <uint>();
            argument.Channels = sr.Read <uint>();

            return(argument);
        }
示例#4
0
        public L2NormalizationLayerArgument DeserializeBin(int offset, K210BinDeserializeContext context)
        {
            var sr       = context.GetReaderAt(offset);
            var argument = new L2NormalizationLayerArgument
            {
                Flags = sr.Read <K210LayerFlags>(),
                MainMemoryInputAddress  = sr.Read <uint>(),
                MainMemoryOutputAddress = sr.Read <uint>(),
                Channels = sr.Read <uint>()
            };

            return(argument);
        }
示例#5
0
        public ConcatenationLayerArgument DeserializeBin(int offset, K210BinDeserializeContext context)
        {
            var sr       = context.GetReaderAt(offset);
            var argument = new ConcatenationLayerArgument
            {
                Flags = sr.Read <K210LayerFlags>(),
                MainMemoryOutputAddress = sr.Read <uint>(),
                InputCount = sr.Read <uint>()
            };

            argument.InputsMainMemory = sr.ReadArray <MemoryRange>((int)argument.InputCount);
            return(argument);
        }
示例#6
0
        public GlobalAveragePool2dLayerArgument DeserializeBin(int offset, K210BinDeserializeContext context)
        {
            var sr       = context.GetReaderAt(offset);
            var argument = new GlobalAveragePool2dLayerArgument();

            argument.Flags = sr.Read <K210LayerFlags>();
            argument.MainMemoryInputAddress  = sr.Read <uint>();
            argument.MainMemoryOutputAddress = sr.Read <uint>();
            argument.KernelSize = sr.Read <uint>();
            argument.Channels   = sr.Read <uint>();

            return(argument);
        }
示例#7
0
        public DequantizeLayerArgument DeserializeBin(int offset, K210BinDeserializeContext context)
        {
            var sr       = context.GetReaderAt(offset);
            var argument = new DequantizeLayerArgument();

            argument.Flags = sr.Read <K210LayerFlags>();
            argument.MainMemoryInputAddress  = sr.Read <uint>();
            argument.MainMemoryOutputAddress = sr.Read <uint>();
            argument.Count      = sr.Read <uint>();
            argument.QuantParam = sr.Read <K210QuantizationParam>();

            return(argument);
        }
示例#8
0
文件: Add.cs 项目: xiuyu999/nncase
        public AddLayerArgument DeserializeBin(int offset, K210BinDeserializeContext context)
        {
            var sr       = context.GetReaderAt(offset);
            var argument = new AddLayerArgument
            {
                Flags = sr.Read <K210LayerFlags>(),
                MainMemoryInputAAddress = sr.Read <uint>(),
                MainMemoryInputBAddress = sr.Read <uint>(),
                MainMemoryOutputAddress = sr.Read <uint>(),
                Count = sr.Read <uint>()
            };

            return(argument);
        }
示例#9
0
        public RequantizeLayerArgument DeserializeBin(int offset, K210BinDeserializeContext context)
        {
            var sr       = context.GetReaderAt(offset);
            var argument = new RequantizeLayerArgument
            {
                Flags = sr.Read <K210LayerFlags>(),
                MainMemoryInputAddress  = sr.Read <uint>(),
                MainMemoryOutputAddress = sr.Read <uint>(),
                Count = sr.Read <uint>(),
                Table = sr.ReadArray <byte>(256)
            };

            return(argument);
        }
示例#10
0
        public TensorflowFlattenLayerArgument DeserializeBin(int offset, K210BinDeserializeContext context)
        {
            var sr       = context.GetReaderAt(offset);
            var argument = new TensorflowFlattenLayerArgument();

            argument.Flags = sr.Read <K210LayerFlags>();
            argument.MainMemoryInputAddress  = sr.Read <uint>();
            argument.MainMemoryOutputAddress = sr.Read <uint>();
            argument.Width    = sr.Read <uint>();
            argument.Height   = sr.Read <uint>();
            argument.Channels = sr.Read <uint>();

            return(argument);
        }
示例#11
0
        public FullyConnectedLayerArgument DeserializeBin(int offset, K210BinDeserializeContext context)
        {
            var sr = context.GetReaderAt(offset);
            var argument = new FullyConnectedLayerArgument();
            argument.Flags = sr.Read<K210LayerFlags>();
            argument.MainMemoryInputAddress = sr.Read<uint>();
            argument.MainMemoryOutputAddress = sr.Read<uint>();
            argument.InputChannels = sr.Read<uint>();
            argument.OutputChannels = sr.Read<uint>();
            argument.Activation = sr.Read<ActivationFunctionType>();
            argument.Weights = MemoryMarshal.Cast<byte, float>(sr.ReadAsSpan((int)(argument.InputChannels * argument.OutputChannels * 4))).ToArray();
            argument.Bias = MemoryMarshal.Cast<byte, float>(sr.ReadAsSpan((int)(argument.OutputChannels * 4))).ToArray();

            return argument;
        }
示例#12
0
        public K210UploadLayerArgument DeserializeBin(int offset, K210BinDeserializeContext context)
        {
            var sr       = context.GetReaderAt(offset);
            var argument = new K210UploadLayerArgument
            {
                Flags = sr.Read <K210LayerFlags>(),
                MainMemoryInputAddress = sr.Read <uint>(),
                KPUMemoryOutputAddress = sr.Read <uint>(),
                Width    = sr.Read <uint>(),
                Height   = sr.Read <uint>(),
                Channels = sr.Read <uint>()
            };

            return(argument);
        }
示例#13
0
        public ChannelwiseDequantizeLayerArgument DeserializeBin(int offset, K210BinDeserializeContext context)
        {
            var sr       = context.GetReaderAt(offset);
            var argument = new ChannelwiseDequantizeLayerArgument
            {
                Flags = sr.Read <K210LayerFlags>(),
                MainMemoryInputAddress  = sr.Read <uint>(),
                MainMemoryOutputAddress = sr.Read <uint>(),
                Channels    = sr.Read <uint>(),
                ChannelSize = sr.Read <uint>()
            };

            argument.QuantParams = sr.ReadArray <K210QuantizationParam>((int)argument.Channels);
            return(argument);
        }
示例#14
0
        public ResizeNearestNeighborLayerArgument DeserializeBin(int offset, K210BinDeserializeContext context)
        {
            var sr       = context.GetReaderAt(offset);
            var argument = new ResizeNearestNeighborLayerArgument
            {
                Flags = sr.Read <K210LayerFlags>(),
                MainMemoryInputAddress  = sr.Read <uint>(),
                MainMemoryOutputAddress = sr.Read <uint>(),
                InputWidth   = sr.Read <uint>(),
                InputHeight  = sr.Read <uint>(),
                Channels     = sr.Read <uint>(),
                OutputWidth  = sr.Read <uint>(),
                OutputHeight = sr.Read <uint>(),
                AlignCorners = sr.Read <int>()
            };

            return(argument);
        }
示例#15
0
        public K210Conv2dLayerArgument DeserializeBin(int offset, K210BinDeserializeContext context)
        {
            var sr       = context.GetReaderAt(offset);
            var argument = new K210Conv2dLayerArgument();

            argument.Flags = sr.Read <K210LayerFlags>();
            argument.MainMemoryOutputAddress = sr.Read <uint>();
            argument.ParamAddress            = new K210Conv2dParamAddress
            {
                Layer      = sr.Read <uint>(),
                Weights    = sr.Read <uint>(),
                Bn         = sr.Read <uint>(),
                Activation = sr.Read <uint>()
            };

            DeserializeBinLayer(argument, context);
            DeserializeBinWeights(argument, context);
            DeserializeBinBn(argument, context);
            DeserializeBinActivation(argument, context);

            return(argument);
        }