license import { backend_util , Dilation2D , Dilation2DAttrs , Dilation2DInputs , KernelConfig , KernelFunc , TensorInfo } from '@tensorflow/tfjs-core' ; import { MathBackendWebGL } from '../backend_webgl' ; import { Dilation2DProgram } from '../dilation_gpu' ; import { reshape } from './Reshape' ; export function dilation2D ( args ) { const { inputs , backend , attrs } = args ; const { x , filter } = inputs ; const { strides , pad , dilations } = attrs ; const convInfo = backend_util . computeDilation2DInfo ( x . shape as [ number , number , number , number ] , filter . shape as [ number , number , number ] , strides , pad , 'NHWC' , dilations ) ; let out ; const program = new Dilation2DProgram ( convInfo ) ; out = backend . runWebGLProgram ( program , [ x , filter ] , 'float32' ) ; const outReshaped = reshape ( { inputs : { x : out } , backend , attrs : { shape : convInfo . outShape } } ) ; backend . disposeIntermediateTensorInfo ( out ) ; return outReshaped ; } export const dilation2DConfig = { kernelName : Dilation2D , backendName : 'webgl' , kernelFunc : dilation2D as { } as KernelFunc , } ;