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
/**
 * @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.
 * =============================================================================
 */
export function createNumberAttr(value) {
    return { value, type: 'number' };
}
export function createNumberAttrFromIndex(inputIndex) {
    return { inputIndexStart: inputIndex, type: 'number' };
}
export function createStrAttr(str) {
    return { value: str, type: 'string' };
}
export function createStrArrayAttr(strs) {
    return { value: strs, type: 'string[]' };
}
export function createBoolAttr(value) {
    return { value, type: 'bool' };
}
export function createTensorShapeAttr(value) {
    return { value, type: 'shape' };
}
export function createShapeAttrFromIndex(inputIndex) {
    return { inputIndexStart: inputIndex, type: 'shape' };
}
export function createNumericArrayAttr(value) {
    return { value, type: 'number[]' };
}
export function createNumericArrayAttrFromIndex(inputIndex) {
    return { inputIndexStart: inputIndex, type: 'number[]' };
}
export function createBooleanArrayAttrFromIndex(inputIndex) {
    return { inputIndexStart: inputIndex, type: 'bool[]' };
}
export function createTensorAttr(index) {
    return { inputIndexStart: index, type: 'tensor' };
}
export function createTensorsAttr(index, paramLength) {
    return { inputIndexStart: index, inputIndexEnd: paramLength, type: 'tensors' };
}
export function createDtypeAttr(dtype) {
    return { value: dtype, type: 'dtype' };
}
export function validateParam(node, opMappers, tfOpName) {
    const opMapper = tfOpName != null ?
        opMappers.find(mapper => mapper.tfOpName === tfOpName) :
        opMappers.find(mapper => mapper.tfOpName === node.op);
    const matched = Object.keys(node.inputParams).every(key => {
        const value = node.inputParams[key];
        const def = opMapper.inputs.find(param => param.name === key);
        return def && def.type === value.type &&
            def.start === value.inputIndexStart && def.end === value.inputIndexEnd;
    }) &&
        Object.keys(node.attrParams).every(key => {
            const value = node.attrParams[key];
            const def = opMapper.attrs.find(param => param.name === key);
            return def && def.type === value.type;
        });
    if (!matched) {
        console.log('node = ', node);
        console.log('opMapper = ', opMapper);
    }
    return matched;
}
export function uncapitalize(name) {
    return name.charAt(0).toLowerCase() + name.slice(1);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi90ZmpzLWNvbnZlcnRlci9zcmMvb3BlcmF0aW9ucy9leGVjdXRvcnMvdGVzdF9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBS0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWE7SUFDNUMsT0FBTyxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFDLENBQUM7QUFDakMsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxVQUFrQjtJQUMxRCxPQUFPLEVBQUMsZUFBZSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsR0FBVztJQUN2QyxPQUFPLEVBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFDLENBQUM7QUFDdEMsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUFjO0lBQy9DLE9BQU8sRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUFjO0lBQzNDLE9BQU8sRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQyxDQUFDO0FBQy9CLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBZTtJQUNuRCxPQUFPLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLFVBQWtCO0lBQ3pELE9BQU8sRUFBQyxlQUFlLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQsTUFBTSxVQUFV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O0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBc0IsSUFBVTtJQUMxRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQXVCLENBQUM7QUFDNUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE4IEdvb2dsZSBMTEMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKi9cblxuaW1wb3J0IHtJbnB1dFBhcmFtVmFsdWUsIE9wTWFwcGVyLCBQYXJhbVZhbHVlfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge05vZGV9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU51bWJlckF0dHIodmFsdWU6IG51bWJlcik6IFBhcmFtVmFsdWUge1xuICByZXR1cm4ge3ZhbHVlLCB0eXBlOiAnbnVtYmVyJ307XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOdW1iZXJBdHRyRnJvbUluZGV4KGlucHV0SW5kZXg6IG51bWJlcik6IElucHV0UGFyYW1WYWx1ZSB7XG4gIHJldHVybiB7aW5wdXRJbmRleFN0YXJ0OiBpbnB1dEluZGV4LCB0eXBlOiAnbnVtYmVyJ307XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdHJBdHRyKHN0cjogc3RyaW5nKTogUGFyYW1WYWx1ZSB7XG4gIHJldHVybiB7dmFsdWU6IHN0ciwgdHlwZTogJ3N0cmluZyd9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3RyQXJyYXlBdHRyKHN0cnM6IHN0cmluZ1tdKTogUGFyYW1WYWx1ZSB7XG4gIHJldHVybiB7dmFsdWU6IHN0cnMsIHR5cGU6ICdzdHJpbmdbXSd9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQm9vbEF0dHIodmFsdWU6IGJvb2xlYW4pOiBQYXJhbVZhbHVlIHtcbiAgcmV0dXJuIHt2YWx1ZSwgdHlwZTogJ2Jvb2wnfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRlbnNvclNoYXBlQXR0cih2YWx1ZTogbnVtYmVyW10pOiBQYXJhbVZhbHVlIHtcbiAgcmV0dXJuIHt2YWx1ZSwgdHlwZTogJ3NoYXBlJ307XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTaGFwZUF0dHJGcm9tSW5kZXgoaW5wdXRJbmRleDogbnVtYmVyKTogSW5wdXRQYXJhbVZhbHVlIHtcbiAgcmV0dXJuIHtpbnB1dEluZGV4U3RhcnQ6IGlucHV0SW5kZXgsIHR5cGU6ICdzaGFwZSd9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTnVtZXJpY0FycmF5QXR0cih2YWx1ZTogbnVtYmVyW10pOiBQYXJhbVZhbHVlIHtcbiAgcmV0dXJuIHt2YWx1ZSwgdHlwZTogJ251bWJlcltdJ307XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOdW1lcmljQXJyYXlBdHRyRnJvbUluZGV4KGlucHV0SW5kZXg6IG51bWJlcik6XG4gICAgSW5wdXRQYXJhbVZhbHVlIHtcbiAgcmV0dXJuIHtpbnB1dEluZGV4U3RhcnQ6IGlucHV0SW5kZXgsIHR5cGU6ICdudW1iZXJbXSd9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQm9vbGVhbkFycmF5QXR0ckZyb21JbmRleChpbnB1dEluZGV4OiBudW1iZXIpOlxuICAgIElucHV0UGFyYW1WYWx1ZSB7XG4gIHJldHVybiB7aW5wdXRJbmRleFN0YXJ0OiBpbnB1dEluZGV4LCB0eXBlOiAnYm9vbFtdJ307XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUZW5zb3JBdHRyKGluZGV4OiBudW1iZXIpOiBJbnB1dFBhcmFtVmFsdWUge1xuICByZXR1cm4ge2lucHV0SW5kZXhTdGFydDogaW5kZXgsIHR5cGU6ICd0ZW5zb3InfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRlbnNvcnNBdHRyKFxuICAgIGluZGV4OiBudW1iZXIsIHBhcmFtTGVuZ3RoOiBudW1iZXIpOiBJbnB1dFBhcmFtVmFsdWUge1xuICByZXR1cm4ge2lucHV0SW5kZXhTdGFydDogaW5kZXgsIGlucHV0SW5kZXhFbmQ6IHBhcmFtTGVuZ3RoLCB0eXBlOiAndGVuc29ycyd9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRHR5cGVBdHRyKGR0eXBlOiBzdHJpbmcpOiBQYXJhbVZhbHVlIHtcbiAgcmV0dXJuIHt2YWx1ZTogZHR5cGUsIHR5cGU6ICdkdHlwZSd9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVQYXJhbShcbiAgICBub2RlOiBOb2RlLCBvcE1hcHBlcnM6IE9wTWFwcGVyW10sIHRmT3BOYW1lPzogc3RyaW5nKSB7XG4gIGNvbnN0IG9wTWFwcGVyID0gdGZPcE5hbWUgIT0gbnVsbCA/XG4gICAgICBvcE1hcHBlcnMuZmluZChtYXBwZXIgPT4gbWFwcGVyLnRmT3BOYW1lID09PSB0Zk9wTmFtZSkgOlxuICAgICAgb3BNYXBwZXJzLmZpbmQobWFwcGVyID0+IG1hcHBlci50Zk9wTmFtZSA9PT0gbm9kZS5vcCk7XG4gIGNvbnN0IG1hdGNoZWQgPSBPYmplY3Qua2V5cyhub2RlLmlucHV0UGFyYW1zKS5ldmVyeShrZXkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gbm9kZS5pbnB1dFBhcmFtc1trZXldO1xuICAgIGNvbnN0IGRlZiA9IG9wTWFwcGVyLmlucHV0cy5maW5kKHBhcmFtID0+IHBhcmFtLm5hbWUgPT09IGtleSk7XG4gICAgcmV0dXJuIGRlZiAmJiBkZWYudHlwZSA9PT0gdmFsdWUudHlwZSAmJlxuICAgICAgICBkZWYuc3RhcnQgPT09IHZhbHVlLmlucHV0SW5kZXhTdGFydCAmJiBkZWYuZW5kID09PSB2YWx1ZS5pbnB1dEluZGV4RW5kO1xuICB9KSAmJlxuICAgICAgT2JqZWN0LmtleXMobm9kZS5hdHRyUGFyYW1zKS5ldmVyeShrZXkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IG5vZGUuYXR0clBhcmFtc1trZXldO1xuICAgICAgICBjb25zdCBkZWYgPSBvcE1hcHBlci5hdHRycy5maW5kKHBhcmFtID0+IHBhcmFtLm5hbWUgPT09IGtleSk7XG4gICAgICAgIHJldHVybiBkZWYgJiYgZGVmLnR5cGUgPT09IHZhbHVlLnR5cGU7XG4gICAgICB9KTtcbiAgaWYgKCFtYXRjaGVkKSB7XG4gICAgY29uc29sZS5sb2coJ25vZGUgPSAnLCBub2RlKTtcbiAgICBjb25zb2xlLmxvZygnb3BNYXBwZXIgPSAnLCBvcE1hcHBlcik7XG4gIH1cbiAgcmV0dXJuIG1hdGNoZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmNhcGl0YWxpemU8TmFtZSBleHRlbmRzIHN0cmluZz4obmFtZTogTmFtZSk6IFVuY2FwaXRhbGl6ZTxOYW1lPiB7XG4gIHJldHVybiBuYW1lLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpICsgbmFtZS5zbGljZSgxKSBhcyBVbmNhcGl0YWxpemU8TmFtZT47XG59XG4iXX0=