/**
|
* @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/browser_files" />
|
/**
|
* IOHandlers related to files, such as browser-triggered file downloads,
|
* user-selected files in browser.
|
*/
|
import '../flags';
|
import { IORouter } from './router_registry';
|
import { IOHandler, ModelArtifacts, SaveResult } from './types';
|
export declare class BrowserDownloads implements IOHandler {
|
private readonly modelJsonFileName;
|
private readonly weightDataFileName;
|
private readonly modelJsonAnchor;
|
private readonly weightDataAnchor;
|
static readonly URL_SCHEME = "downloads://";
|
constructor(fileNamePrefix?: string);
|
save(modelArtifacts: ModelArtifacts): Promise<SaveResult>;
|
}
|
export declare const browserDownloadsRouter: IORouter;
|
/**
|
* Creates an IOHandler that triggers file downloads from the browser.
|
*
|
* The returned `IOHandler` instance can be used as model exporting methods such
|
* as `tf.Model.save` and supports only saving.
|
*
|
* ```js
|
* const model = tf.sequential();
|
* model.add(tf.layers.dense(
|
* {units: 1, inputShape: [10], activation: 'sigmoid'}));
|
* const saveResult = await model.save('downloads://mymodel');
|
* // This will trigger downloading of two files:
|
* // 'mymodel.json' and 'mymodel.weights.bin'.
|
* console.log(saveResult);
|
* ```
|
*
|
* @param fileNamePrefix Prefix name of the files to be downloaded. For use with
|
* `tf.Model`, `fileNamePrefix` should follow either of the following two
|
* formats:
|
* 1. `null` or `undefined`, in which case the default file
|
* names will be used:
|
* - 'model.json' for the JSON file containing the model topology and
|
* weights manifest.
|
* - 'model.weights.bin' for the binary file containing the binary weight
|
* values.
|
* 2. A single string or an Array of a single string, as the file name prefix.
|
* For example, if `'foo'` is provided, the downloaded JSON
|
* file and binary weights file will be named 'foo.json' and
|
* 'foo.weights.bin', respectively.
|
* @param config Additional configuration for triggering downloads.
|
* @returns An instance of `BrowserDownloads` `IOHandler`.
|
*
|
* @doc {
|
* heading: 'Models',
|
* subheading: 'Loading',
|
* namespace: 'io',
|
* ignoreCI: true
|
* }
|
*/
|
export declare function browserDownloads(fileNamePrefix?: string): IOHandler;
|
/**
|
* Creates an IOHandler that loads model artifacts from user-selected files.
|
*
|
* This method can be used for loading from files such as user-selected files
|
* in the browser.
|
* When used in conjunction with `tf.loadLayersModel`, an instance of
|
* `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.
|
*
|
* ```js
|
* // Note: This code snippet won't run properly without the actual file input
|
* // elements in the HTML DOM.
|
*
|
* // Suppose there are two HTML file input (`<input type="file" ...>`)
|
* // elements.
|
* const uploadJSONInput = document.getElementById('upload-json');
|
* const uploadWeightsInput = document.getElementById('upload-weights');
|
* const model = await tf.loadLayersModel(tf.io.browserFiles(
|
* [uploadJSONInput.files[0], uploadWeightsInput.files[0]]));
|
* ```
|
*
|
* @param files `File`s to load from. Currently, this function supports only
|
* loading from files that contain Keras-style models (i.e., `tf.Model`s), for
|
* which an `Array` of `File`s is expected (in that order):
|
* - A JSON file containing the model topology and weight manifest.
|
* - Optionally, one or more binary files containing the binary weights.
|
* These files must have names that match the paths in the `weightsManifest`
|
* contained by the aforementioned JSON file, or errors will be thrown
|
* during loading. These weights files have the same format as the ones
|
* generated by `tensorflowjs_converter` that comes with the `tensorflowjs`
|
* Python PIP package. If no weights files are provided, only the model
|
* topology will be loaded from the JSON file above.
|
* @returns An instance of `Files` `IOHandler`.
|
*
|
* @doc {
|
* heading: 'Models',
|
* subheading: 'Loading',
|
* namespace: 'io',
|
* ignoreCI: true
|
* }
|
*/
|
export declare function browserFiles(files: File[]): IOHandler;
|