license import { KernelConfig , ResizeNearestNeighborGrad , ResizeNearestNeighborGradAttrs , ResizeNearestNeighborGradInputs , tensor1d } from '@tensorflow/tfjs' ; import { createTensorsTypeOpAttr , NodeJSKernelBackend } from '../nodejs_kernel_backend' ; export const resizeNearestNeighborGradConfig = { kernelName : ResizeNearestNeighborGrad , backendName : 'tensorflow' , kernelFunc : ( args ) => { const { images , dy } = args . inputs as ResizeNearestNeighborGradInputs ; const backend = args . backend as NodeJSKernelBackend ; const { alignCorners } = args . attrs as { } as ResizeNearestNeighborGradAttrs ; const opAttrs = [ createTensorsTypeOpAttr ( 'T' , images . dtype ) , { name : 'align_corners' , type : backend . binding . TF_ATTR_BOOL , value : alignCorners } ] ; const [ , origHeight , origWidth , ] = images . shape ; const sizeTensor = tensor1d ( [ origHeight , origWidth ] , 'int32' ) ; const res = backend . executeSingleOutput ( ResizeNearestNeighborGrad , opAttrs , [ dy , sizeTensor ] ) ; sizeTensor . dispose ( ) ; return res ; } } ;