public K210AddPaddingLayerArgument Convert(K210AddPadding layer, ConvertContext context) { return(new K210AddPaddingLayerArgument { Channels = (uint)layer.Input.Dimensions[1] }); }
public void Infer(K210AddPadding layer, K210AddPaddingLayerArgument argument, InferenceContext context) { var inputAlloc = context.MainMemoryMap[layer.Input.Connection.From]; var outputAlloc = context.KPUMemoryMap[layer.Output]; argument.Flags = K210LayerFlags.None; argument.MainMemoryInputAddress = inputAlloc.GetAddress(); argument.KPUMemoryOutputAddress = outputAlloc.GetAddress(); }
public override void Process(TransformContext context) { var upload = (K210Upload)context.MatchedLayers[0]; var addPadding = (K210AddPadding)context.MatchedLayers[1]; var input = upload.Input.Connection.From; var newAdd = new K210AddPadding(addPadding.Input.Dimensions); newAdd.Input.SetConnection(input); var oldOuts = addPadding.Output.Connections.Select(o => o.To).ToList(); foreach (var oldOut in oldOuts) { oldOut.SetConnection(newAdd.Output); } }