license import { Concat , ConcatAttrs , ConcatInputs , KernelConfig , scalar , Tensor } from '@tensorflow/tfjs' ; import { createTensorsTypeOpAttr , NodeJSKernelBackend } from '../nodejs_kernel_backend' ; export const concatConfig = { kernelName : Concat , backendName : 'tensorflow' , kernelFunc : ( args ) => { const tensors = args . inputs as { } as ConcatInputs ; const backend = args . backend as NodeJSKernelBackend ; const { axis } = args . attrs as { } as ConcatAttrs ; const opAttrs = [ { name : 'N' , type : backend . binding . TF_ATTR_INT , value : tensors . length } , { name : 'Tidx' , type : backend . binding . TF_ATTR_TYPE , value : backend . binding . TF_INT32 } , createTensorsTypeOpAttr ( 'T' , tensors as Tensor [ ] ) ] ; const inputs = Array . from ( tensors ) ; const axisTensor = scalar ( axis , 'int32' ) ; inputs . push ( axisTensor ) ; const res = backend . executeSingleOutput ( 'ConcatV2' , opAttrs , inputs ) ; axisTensor . dispose ( ) ; return res ; } } ;