UNPKG

tfjs-runway

Version:
60 lines 5.38 kB
var concat = function (buffers) { var totalByteLength = 0; buffers.forEach(function (buffer) { totalByteLength += buffer.byteLength; }); var temp = new Uint8Array(totalByteLength); var offset = 0; buffers.forEach(function (buffer) { temp.set(new Uint8Array(buffer), offset); offset += buffer.byteLength; }); return temp.buffer; }; var loadAll = function (weightsFilePaths, toolbox) { var fs = toolbox.filesystem; var shardBuffers = []; for (var i = 0; i < weightsFilePaths.length; i++) { var f = weightsFilePaths[i]; var g = fs.read(f, 'buffer'); shardBuffers.push(g); } return shardBuffers; }; module.exports = function (toolbox) { function convertModel(modelPath) { var fs = toolbox.filesystem; var modelConfigFile = fs.read(modelPath + "/model.json"); var modelConfig = JSON.parse(modelConfigFile); var modelTopology = modelConfig['modelTopology']; var weightsManifest = modelConfig['weightsManifest']; var weightSpecs = []; // We do not allow both modelTopology and weightsManifest to be missing. if (modelTopology == null && weightsManifest == null) { throw new Error("The JSON from contains neither model " + "topology or manifest for weights."); } for (var _i = 0, weightsManifest_1 = weightsManifest; _i < weightsManifest_1.length; _i++) { var entry = weightsManifest_1[_i]; weightSpecs.push.apply(weightSpecs, entry.weights); } var shardPaths = []; weightsManifest.forEach(function (weightsGroup) { weightsGroup.paths.forEach(function (path) { shardPaths.push(modelPath + "/" + path); }); }); var arrayBuffers = loadAll(shardPaths, toolbox); var monobuffer = concat(arrayBuffers); var weightDataString64 = Buffer.from(monobuffer).toString('base64'); var modelArtifacts = { modelTopology: modelTopology, weightSpecs: weightSpecs, weightData: weightDataString64 }; var modelArtifactsJSON = JSON.stringify(modelArtifacts); fs.write('model-artifacts.json', modelArtifactsJSON); } toolbox.runway = { convertModel: convertModel }; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC1tb2RlbC1leHRlbnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXh0ZW5zaW9ucy9jb252ZXJ0LW1vZGVsLWV4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxJQUFNLE1BQU0sR0FBRyxVQUFBLE9BQU87SUFDcEIsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZCLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBQSxNQUFNO1FBQ3BCLGVBQWUsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFBO0lBQ3RDLENBQUMsQ0FBQyxDQUFBO0lBRUYsSUFBTSxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDNUMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFBO0lBQ2QsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFBLE1BQU07UUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUN4QyxNQUFNLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQTtJQUM3QixDQUFDLENBQUMsQ0FBQTtJQUNGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQTtBQUNwQixDQUFDLENBQUE7QUFFRCxJQUFNLE9BQU8sR0FBRyxVQUFDLGdCQUFnQixFQUFFLE9BQU87SUFDaEMsSUFBQSx1QkFBYyxDQUFZO0lBQ2xDLElBQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQTtJQUN2QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ2hELElBQU0sQ0FBQyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRTdCLElBQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBRTlCLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7S0FDckI7SUFDRCxPQUFPLFlBQVksQ0FBQTtBQUNyQixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLFVBQUMsT0FBTztJQUN2QixTQUFTLFlBQVksQ0FBQyxTQUFpQjtRQUM3QixJQUFBLHVCQUFjLENBQVk7UUFDbEMsSUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBSSxTQUFTLGdCQUFhLENBQUMsQ0FBQTtRQUMxRCxJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQy9DLElBQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUNsRCxJQUFNLGVBQWUsR0FBRyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN0RCxJQUFNLFdBQVcsR0FBRyxFQUFFLENBQUE7UUFFdEIsd0VBQXdFO1FBQ3hFLElBQUksYUFBYSxJQUFJLElBQUksSUFBSSxlQUFlLElBQUksSUFBSSxFQUFFO1lBQ3BELE1BQU0sSUFBSSxLQUFLLENBQ2IsdUNBQXVDO2dCQUNyQyxtQ0FBbUMsQ0FDdEMsQ0FBQTtTQUNGO1FBRUQsS0FBb0IsVUFBZSxFQUFmLG1DQUFlLEVBQWYsNkJBQWUsRUFBZixJQUFlLEVBQUU7WUFBaEMsSUFBTSxLQUFLLHdCQUFBO1lBQ2QsV0FBVyxDQUFDLElBQUksT0FBaEIsV0FBVyxFQUFTLEtBQUssQ0FBQyxPQUFPLEVBQUM7U0FDbkM7UUFFRCxJQUFNLFVBQVUsR0FBRyxFQUFFLENBQUE7UUFDckIsZUFBZSxDQUFDLE9BQU8sQ0FBQyxVQUFBLFlBQVk7WUFDbEMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBQSxJQUFJO2dCQUM3QixVQUFVLENBQUMsSUFBSSxDQUFJLFNBQVMsU0FBSSxJQUFNLENBQUMsQ0FBQTtZQUN6QyxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO1FBRUYsSUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUNqRCxJQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7UUFFdkMsSUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUVyRSxJQUFNLGNBQWMsR0FBRztZQUNyQixhQUFhLEVBQUUsYUFBYTtZQUM1QixXQUFXLEVBQUUsV0FBVztZQUN4QixVQUFVLEVBQUUsa0JBQWtCO1NBQy9CLENBQUE7UUFDRCxJQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUE7UUFFekQsRUFBRSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO0lBQ3RELENBQUM7SUFFRCxPQUFPLENBQUMsTUFBTSxHQUFHLEVBQUUsWUFBWSxjQUFBLEVBQUUsQ0FBQTtBQUNuQyxDQUFDLENBQUEifQ==