gx
chenyc
2025-06-12 7b72ac13a83764a662159d4a49b7fffb90476ecb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/// <amd-module name="@tensorflow/tfjs-converter/dist/operations/types" />
/**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
import { Tensor } from '@tensorflow/tfjs-core';
import * as tfOps from '@tensorflow/tfjs-core/dist/ops/ops_for_converter';
import * as tensorflow from '../data/compiled_api';
import { NamedTensorsMap } from '../data/types';
import { ExecutionContext } from '../executor/execution_context';
import { ResourceManager } from '../executor/resource_manager';
export type ParamType = 'number' | 'string' | 'string[]' | 'number[]' | 'bool' | 'bool[]' | 'shape' | 'shape[]' | 'tensor' | 'tensors' | 'dtype' | 'dtype[]' | 'func';
export type Category = 'arithmetic' | 'basic_math' | 'control' | 'convolution' | 'creation' | 'custom' | 'dynamic' | 'evaluation' | 'graph' | 'hash_table' | 'image' | 'logical' | 'matrices' | 'normalization' | 'ragged' | 'reduction' | 'slice_join' | 'sparse' | 'spectral' | 'string' | 'transformation';
export declare interface ParamMapper {
    name: string;
    type: ParamType;
    defaultValue?: ValueType;
    notSupported?: boolean;
}
export declare interface InputParamMapper extends ParamMapper {
    start: number;
    end?: number;
}
export declare interface AttrParamMapper extends ParamMapper {
    tfName?: string;
    tfDeprecatedName?: string;
}
export interface InternalOpExecutor {
    (node: Node, tensorMap: NamedTensorsMap, context: ExecutionContext, ops?: typeof tfOps): Tensor | Tensor[];
}
export interface InternalOpAsyncExecutor {
    (node: Node, tensorMap: NamedTensorsMap, context: ExecutionContext, resourceManager?: ResourceManager, ops?: typeof tfOps): Promise<Tensor[]>;
}
export declare interface OpMapper {
    tfOpName: string;
    category?: Category;
    inputs?: InputParamMapper[];
    attrs?: AttrParamMapper[];
    outputs?: string[];
    customExecutor?: OpExecutor;
}
export declare interface Node {
    signatureKey?: string;
    name: string;
    op: string;
    category: Category;
    inputNames: string[];
    inputs: Node[];
    inputParams: {
        [key: string]: InputParamValue;
    };
    attrParams: {
        [key: string]: ParamValue;
    };
    children: Node[];
    rawAttrs?: {
        [k: string]: tensorflow.IAttrValue;
    };
    defaultOutput?: number;
    outputs?: string[];
}
export declare interface Graph {
    nodes: {
        [key: string]: Node;
    };
    placeholders: Node[];
    inputs: Node[];
    outputs: Node[];
    weights: Node[];
    signature?: tensorflow.ISignatureDef;
    functions?: {
        [key: string]: Graph;
    };
    initNodes?: Node[];
}
export type ValueType = string | string[] | number | number[] | number[][] | boolean | boolean[] | Tensor | Tensor[];
export declare interface ParamValue {
    value?: ValueType;
    type: ParamType;
}
export declare interface InputParamValue extends ParamValue {
    inputIndexStart?: number;
    inputIndexEnd?: number;
}
export interface OpExecutor {
    (node: GraphNode): Tensor | Tensor[] | Promise<Tensor | Tensor[]>;
}
export interface GraphNode {
    inputs: Tensor[];
    attrs: {
        [key: string]: ValueType;
    };
}