Пример #1
0
 public ConcatenationLayerArgument Convert(QuantizedConcatenation layer, ConvertContext context)
 {
     return(new ConcatenationLayerArgument
     {
         InputCount = (uint)layer.Inputs.Count
     });
 }
        public override void Process(TransformContext context)
        {
            var concat = (Concatenation)context.MatchedLayers[0];
            var output = concat.Output;

            var exConcat = new QuantizedConcatenation(concat.Inputs.Select(x => new ReadOnlyMemory <int>(x.Dimensions.ToArray())));

            for (int i = 0; i < exConcat.Inputs.Count; i++)
            {
                var input      = concat.Inputs[i].Connection.From;
                var quantize   = new Quantize(input.Dimensions);
                var requantize = new Requantize(quantize.Output.Dimensions);
                quantize.Input.SetConnection(input);
                requantize.Input.SetConnection(quantize.Output);
                exConcat.Inputs[i].SetConnection(requantize.Output);
            }

            var dequantize = new Dequantize(exConcat.Output.Dimensions);

            dequantize.Input.SetConnection(exConcat.Output);

            var oldOuts = output.Connections.Select(o => o.To).ToList();

            foreach (var oldOut in oldOuts)
            {
                oldOut.SetConnection(dequantize.Output);
            }
        }
Пример #3
0
        public void Infer(QuantizedConcatenation layer, ConcatenationLayerArgument argument, InferenceContext context)
        {
            var outputAlloc = context.MainMemoryMap[layer.Output];

            argument.Flags = K210LayerFlags.MainMemoryOutput;
            argument.MainMemoryOutputAddress = outputAlloc.GetAddress();
            argument.InputsMainMemory        = (from i in layer.Inputs
                                                let a = context.MainMemoryMap[i.Connection.From]
                                                        select new MemoryRange
            {
                Start = a.GetAddress(),
                Size = a.Size
            }).ToList();
        }