@tensorflow/tfjs-core
Version:
Hardware-accelerated JavaScript library for machine intelligence
80 lines (79 loc) • 3.12 kB
TypeScript
/**
* @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.
* =============================================================================
*/
/// <amd-module name="@tensorflow/tfjs-core/dist/io/indexed_db" />
import '../flags';
import { IORouter } from './router_registry';
import { IOHandler, ModelArtifacts, ModelArtifactsInfo, ModelStoreManager, SaveResult } from './types';
/**
* Delete the entire database for tensorflow.js, including the models store.
*/
export declare function deleteDatabase(): Promise<void>;
/**
* IOHandler subclass: Browser IndexedDB.
*
* See the doc string of `browserIndexedDB` for more details.
*/
export declare class BrowserIndexedDB implements IOHandler {
protected readonly indexedDB: IDBFactory;
protected readonly modelPath: string;
static readonly URL_SCHEME = "indexeddb://";
constructor(modelPath: string);
save(modelArtifacts: ModelArtifacts): Promise<SaveResult>;
load(): Promise<ModelArtifacts>;
/**
* Perform database action to put model artifacts into or read model artifacts
* from IndexedDB object store.
*
* Whether the action is put or get depends on whether `modelArtifacts` is
* specified. If it is specified, the action will be put; otherwise the action
* will be get.
*
* @param modelPath A unique string path for the model.
* @param modelArtifacts If specified, it will be the model artifacts to be
* stored in IndexedDB.
* @returns A `Promise` of `SaveResult`, if the action is put, or a `Promise`
* of `ModelArtifacts`, if the action is get.
*/
private databaseAction;
}
export declare const indexedDBRouter: IORouter;
/**
* Creates a browser IndexedDB IOHandler for saving and loading models.
*
* ```js
* const model = tf.sequential();
* model.add(
* tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));
*
* const saveResult = await model.save('indexeddb://MyModel'));
* console.log(saveResult);
* ```
*
* @param modelPath A unique identifier for the model to be saved. Must be a
* non-empty string.
* @returns An instance of `BrowserIndexedDB` (subclass of `IOHandler`),
* which can be used with, e.g., `tf.Model.save`.
*/
export declare function browserIndexedDB(modelPath: string): IOHandler;
export declare class BrowserIndexedDBManager implements ModelStoreManager {
private indexedDB;
constructor();
listModels(): Promise<{
[path: string]: ModelArtifactsInfo;
}>;
removeModel(path: string): Promise<ModelArtifactsInfo>;
}