license import { KernelConfig , MirrorPad , MirrorPadAttrs , MirrorPadInputs , tensor2d } from '@tensorflow/tfjs' ; import { createTensorsTypeOpAttr , NodeJSKernelBackend } from '../nodejs_kernel_backend' ; export const mirrorPadConfig = { kernelName : MirrorPad , backendName : 'tensorflow' , kernelFunc : ( { inputs , backend , attrs } ) => { const { x } = inputs as MirrorPadInputs ; const { paddings , mode } = attrs as { } as MirrorPadAttrs ; const nodeBackend = backend as NodeJSKernelBackend ; const paddingsTensor = tensor2d ( paddings , [ paddings . length , 2 ] , 'int32' ) ; const opAttrs = [ createTensorsTypeOpAttr ( 'T' , x . dtype ) , createTensorsTypeOpAttr ( 'Tpaddings' , paddingsTensor . dtype ) , { name : 'mode' , type : nodeBackend . binding . TF_ATTR_STRING , value : mode . toUpperCase ( ) } ] ; const output = nodeBackend . executeSingleOutput ( 'MirrorPad' , opAttrs , [ x , paddingsTensor ] ) ; paddingsTensor . dispose ( ) ; return output ; } } ;