license import { CropAndResize , CropAndResizeAttrs , CropAndResizeInputs , KernelConfig , tensor1d } from '@tensorflow/tfjs' ; import { createTensorsTypeOpAttr , NodeJSKernelBackend } from '../nodejs_kernel_backend' ; export const cropAndResizeConfig = { kernelName : CropAndResize , backendName : 'tensorflow' , kernelFunc : ( args ) => { const { image , boxes , boxInd } = args . inputs as CropAndResizeInputs ; const backend = args . backend as NodeJSKernelBackend ; const { cropSize , method , extrapolationValue } = args . attrs as { } as CropAndResizeAttrs ; const opAttrs = [ createTensorsTypeOpAttr ( 'T' , image . dtype ) , { name : 'method' , type : backend . binding . TF_ATTR_STRING , value : method } , { name : 'extrapolation_value' , type : backend . binding . TF_ATTR_FLOAT , value : extrapolationValue } ] ; const cropSizeTensor = tensor1d ( cropSize , 'int32' ) ; const res = backend . executeSingleOutput ( CropAndResize , opAttrs , [ image , boxes , boxInd , cropSizeTensor ] ) ; cropSizeTensor . dispose ( ) ; return res ; } } ;