license import { KernelConfig , NonMaxSuppressionV3 , NonMaxSuppressionV3Attrs , NonMaxSuppressionV3Inputs , scalar } from '@tensorflow/tfjs' ; import { createTensorsTypeOpAttr , NodeJSKernelBackend } from '../nodejs_kernel_backend' ; export const nonMaxSuppressionV3Config = { kernelName : NonMaxSuppressionV3 , backendName : 'tensorflow' , kernelFunc : ( args ) => { const { boxes , scores } = args . inputs as NonMaxSuppressionV3Inputs ; const backend = args . backend as NodeJSKernelBackend ; const { maxOutputSize , iouThreshold , scoreThreshold } = args . attrs as { } as NonMaxSuppressionV3Attrs ; const opAttrs = [ createTensorsTypeOpAttr ( 'T' , boxes . dtype ) ] ; const maxOutputSizeTensor = scalar ( maxOutputSize , 'int32' ) ; const iouThresholdTensor = scalar ( iouThreshold ) ; const scoreThresholdTensor = scalar ( scoreThreshold ) ; const res = backend . executeSingleOutput ( NonMaxSuppressionV3 , opAttrs , [ boxes , scores , maxOutputSizeTensor , iouThresholdTensor , scoreThresholdTensor ] ) ; maxOutputSizeTensor . dispose ( ) ; iouThresholdTensor . dispose ( ) ; scoreThresholdTensor . dispose ( ) ; return res ; } } ;