MCPcopy Create free account
hub / github.com/tensorflow/tfjs / getCustomModuleString

Function getCustomModuleString

tfjs/tools/custom_module/custom_module.ts:21–75  ·  view source on GitHub ↗
(
    config: CustomTFJSBundleConfig,
    moduleProvider: ImportProvider,
    )

Source from the content-addressed store, hash-verified

19import {getPreamble} from './util';
20
21export function getCustomModuleString(
22 config: CustomTFJSBundleConfig,
23 moduleProvider: ImportProvider,
24 ): CustomModuleFiles {
25 const {kernels, backends, forwardModeOnly, models} = config;
26 const tfjs: string[] = [getPreamble()];
27
28 // A custom tfjs module
29 addLine(tfjs, moduleProvider.importCoreStr(forwardModeOnly));
30 if (models.length > 0) {
31 // A model.json has been passed.
32 addLine(tfjs, moduleProvider.importConverterStr());
33 }
34
35 for (const backend of backends) {
36 addLine(tfjs, `\n//backend = ${backend}`);
37 addLine(tfjs, moduleProvider.importBackendStr(backend));
38 for (const kernelName of kernels) {
39 const kernelImport = moduleProvider.importKernelStr(kernelName, backend);
40 if (!moduleProvider.validateImportPath(kernelImport.importPath)) {
41 console.warn(
42 'WARNING:',
43 `Import path '${
44 kernelImport.importPath}' cannot be resolved. Skipping...`);
45 continue;
46 }
47 addLine(tfjs, kernelImport.importStatement);
48 addLine(tfjs, registerKernelStr(kernelImport.kernelConfigId));
49 }
50 }
51
52 if (!forwardModeOnly) {
53 addLine(tfjs, `\n//Gradients`);
54 for (const kernelName of kernels) {
55 const gradImport = moduleProvider.importGradientConfigStr(kernelName);
56 if (!moduleProvider.validateImportPath(gradImport.importPath)) {
57 console.warn(
58 'WARNING:',
59 `Import path '${
60 gradImport.importPath}' cannot be resolved. Skipping...`);
61 continue;
62 }
63 addLine(tfjs, gradImport.importStatement);
64 addLine(tfjs, registerGradientConfigStr(gradImport.gradConfigId));
65 }
66 }
67
68 // A custom tfjs core module for imports within tfjs packages
69 const core: string[] = [getPreamble()];
70 addLine(core, moduleProvider.importCoreStr(forwardModeOnly));
71 return {
72 core: core.join('\n'),
73 tfjs: tfjs.join('\n'),
74 };
75}
76
77export function getCustomConverterOpsModule(
78 ops: string[], moduleProvider: ImportProvider): string {

Callers 2

Calls 5

getPreambleFunction · 0.90
addLineFunction · 0.85
registerKernelStrFunction · 0.85
joinMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…