UNPKG

@tensorflow/tfjs-converter

Version:

Tensorflow model converter for javascript

106 lines (105 loc) 3.77 kB
/// <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; }; }