@myvillage/cli 2.5.0 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@myvillage/cli",
3
- "version": "2.5.0",
3
+ "version": "2.6.1",
4
4
  "description": "MyVillageOS CLI for community developers",
5
5
  "type": "module",
6
6
  "bin": {
@@ -17,16 +17,16 @@ export const DATASET_APPEND_DESCRIPTION =
17
17
  '`myvillage dataset create`). `features` is text (words datasets); for a ' +
18
18
  'table dataset, its values in column order or an object keyed by column ' +
19
19
  'name (numbers, category text, true/false, short notes); or a local image ' +
20
- 'file path (image datasets — the file is ' +
21
- 'copied into the dataset). For classification provide `label`; for ' +
20
+ 'file path (image datasets) or .wav file path (audio datasets) — the file is ' +
21
+ 'copied into the dataset. For classification provide `label`; for ' +
22
22
  'regression provide a numeric `target`. Data stays local; provenance ' +
23
23
  'is recorded automatically.';
24
24
 
25
25
  export const MODEL_PREDICT_DESCRIPTION =
26
26
  'Run a prediction with a LOCAL trained model on this machine. `input` is ' +
27
27
  'text (words models), the values of one table row as a list in column ' +
28
- 'order or an object keyed by column name (table models), or a local image file path (image ' +
29
- 'models). Returns the predicted class with per-class confidence scores ' +
28
+ 'order or an object keyed by column name (table models), a local image file path (image ' +
29
+ 'models), or a local .wav file path (sound models). Returns the predicted class with per-class confidence scores ' +
30
30
  '(classification) or a numeric value (regression). The model must already ' +
31
31
  'exist (trained in the Studio Lab or via `myvillage model train`).';
32
32
 
@@ -73,7 +73,8 @@ export function getBuiltinTools(agentName, config) {
73
73
  .describe(
74
74
  'Text content for a words dataset; for a table dataset, its values in column ' +
75
75
  'order or an object keyed by column name (numbers, category text, true/false, ' +
76
- 'short notes); or, for image datasets, an absolute path to a local image file (.jpg/.png).',
76
+ 'short notes); or, for image datasets, an absolute path to a local image file (.jpg/.png); ' +
77
+ 'or, for audio datasets, an absolute path to a local .wav file.',
77
78
  ),
78
79
  label: z.string().optional().describe('Class label (classification datasets)'),
79
80
  target: z.number().optional().describe('Numeric target (regression datasets)'),
@@ -95,16 +96,21 @@ export function getBuiltinTools(agentName, config) {
95
96
  const provenance = { source: `agent:${agentName}` };
96
97
  const agentId = config?.man?.village_agent_id;
97
98
  if (agentId) provenance.agentId = agentId;
98
- // For image datasets, the agent passes a file path; ingest each into
99
- // the dataset's assets/ and swap in the resulting AssetRef before the
100
- // shared appendRows() runs (same path the CLI --image flow takes).
99
+ // For image and audio datasets, the agent passes a file path; ingest
100
+ // each into the dataset's assets/ and swap in the resulting AssetRef
101
+ // before the shared appendRows() runs (same path as CLI --image/--audio).
101
102
  const manifest = readManifest(datasetId);
102
103
  let toAppend = rows;
103
- if (manifest?.modality === 'image') {
104
+ if (manifest?.modality === 'image' || manifest?.modality === 'audio') {
105
+ const kind = manifest.modality;
104
106
  toAppend = rows.map((r) => {
105
107
  const path = typeof r.features === 'string' ? r.features : r.features?.path;
106
- if (!path) throw new Error('Image rows need a local image file path in "features".');
107
- return { ...r, features: ingestAsset(datasetId, path, 'image') };
108
+ if (!path) {
109
+ throw new Error(kind === 'image'
110
+ ? 'Image rows need a local image file path in "features".'
111
+ : 'Sound rows need a local .wav file path in "features".');
112
+ }
113
+ return { ...r, features: ingestAsset(datasetId, path, kind) };
108
114
  });
109
115
  }
110
116
  const result = appendRows(datasetId, toAppend, provenance);
@@ -134,7 +140,8 @@ export function getBuiltinTools(agentName, config) {
134
140
  ])
135
141
  .describe(
136
142
  'Text for a words model; for a table model, its values in column order or an ' +
137
- 'object keyed by column name; or, for image models, an absolute path to a local image file (.jpg/.png).',
143
+ 'object keyed by column name; or, for image models, an absolute path to a local image file (.jpg/.png); ' +
144
+ 'or, for sound models, an absolute path to a local .wav file.',
138
145
  ),
139
146
  }),
140
147
  execute: async ({ modelId, input }) => {
@@ -89,12 +89,13 @@ export async function datasetAppendCommand(options) {
89
89
  const manifest = readManifest(slug);
90
90
 
91
91
  let rows;
92
- if (options.image) {
93
- // Copy the image into the dataset's assets/ and reference it by AssetRef.
94
- if (manifest.modality !== 'image') {
95
- throw new Error(`--image is only valid for image datasets (this one is "${manifest.modality}").`);
92
+ if (options.image || options.audio) {
93
+ // Copy the picture or sound into the dataset's assets/ and reference it by AssetRef.
94
+ const kind = options.image ? 'image' : 'audio';
95
+ if (manifest.modality !== kind) {
96
+ throw new Error(`--${options.image ? 'image' : 'audio'} is only valid for ${kind} datasets (this one is "${manifest.modality}").`);
96
97
  }
97
- const asset = ingestAsset(slug, options.image, 'image');
98
+ const asset = ingestAsset(slug, options.image || options.audio, kind);
98
99
  const row = { split: options.split || 'train', features: asset };
99
100
  if (options.label !== undefined) row.label = options.label;
100
101
  if (options.target !== undefined) row.target = Number(options.target);
@@ -108,7 +109,7 @@ export async function datasetAppendCommand(options) {
108
109
  if (options.target !== undefined) row.target = Number(options.target);
109
110
  rows = [row];
110
111
  } else {
111
- throw new Error('Provide --image <path> (image datasets), --file <jsonl>, or --text/--features (with --label or --target).');
112
+ throw new Error('Provide --image <path> (image datasets), --audio <path> (audio datasets), --file <jsonl>, or --text/--features (with --label or --target).');
112
113
  }
113
114
 
114
115
  if (options.replace && !options.file) {
@@ -257,7 +257,7 @@ async function deployThreeJsGame(projectDir, pkg, options = {}) {
257
257
  const metadata = {
258
258
  title: pkg.myvillage.name || pkg.name,
259
259
  description: pkg.description || '',
260
- category: (pkg.myvillage.gameType || 'OTHER').toUpperCase(),
260
+ category: toGameCategory(pkg.myvillage.category || pkg.myvillage.gameType),
261
261
  gameType: 'THREE_JS',
262
262
  targetAge: pkg.myvillage.targetAge || 'all',
263
263
  orientation: pkg.myvillage.orientation || 'landscape',
@@ -521,7 +521,7 @@ async function deployUnityPlatform(projectDir, mvConfig, platform, { gameIdOverr
521
521
  const metadata = {
522
522
  title: mvConfig.name,
523
523
  description: mvConfig.description || '',
524
- category: (mvConfig.category || 'OTHER').toUpperCase(),
524
+ category: toGameCategory(mvConfig.category),
525
525
  gameType,
526
526
  targetAge: mvConfig.targetAge || 'all',
527
527
  orientation: mvConfig.orientation || (platform === 'webgl' ? 'landscape' : 'portrait'),
@@ -775,6 +775,15 @@ function formatStatus(status) {
775
775
  }
776
776
  }
777
777
 
778
+ // The platform's GameCategory enum. A Three.js "custom" type (the create-game
779
+ // default) isn't one, and sending it as-is fails the deploy server-side.
780
+ const GAME_CATEGORIES = ['ACTION', 'PUZZLE', 'ADVENTURE', 'EDUCATION', 'QUIZ', 'EXPLORATION', 'NARRATIVE', 'OTHER'];
781
+
782
+ export function toGameCategory(raw) {
783
+ const v = String(raw || '').trim().toUpperCase();
784
+ return GAME_CATEGORIES.includes(v) ? v : 'OTHER';
785
+ }
786
+
778
787
  function getContentType(filePath) {
779
788
  const ext = filePath.split('.').pop()?.toLowerCase();
780
789
  const types = {
@@ -57,7 +57,7 @@ export async function modelTrainCommand(options) {
57
57
  const m = record.metrics;
58
58
  if (m.accuracy != null) info(` accuracy: ${(m.accuracy * 100).toFixed(1)}% over ${m.classes} classes`);
59
59
  if (m.mae != null) info(` MAE: ${m.mae} · R²: ${m.r2}`);
60
- const testFlag = manifest.modality === 'image' ? '--image <path>' : '--input "..."';
60
+ const testFlag = manifest.modality === 'image' ? '--image <path>' : manifest.modality === 'audio' ? '--audio <file.wav>' : '--input "..."';
61
61
  info(` test it: myvillage model predict ${manifest.slug} ${testFlag}`);
62
62
  } catch (e) {
63
63
  if (options.json) process.stdout.write(JSON.stringify({ type: 'error', error: e.message }) + '\n');
@@ -123,11 +123,16 @@ export async function modelPredictCommand(slug, options) {
123
123
  try {
124
124
  if (!modelExists(slug)) throw new Error(`Model "${slug}" not found.`);
125
125
  const record = readModelManifest(slug);
126
- // Image models take a file path (--image); text/tabular take --input.
126
+ // Image and sound models take a file path (--image / --audio); text/tabular take --input.
127
127
  const isImage = record.modality === 'image';
128
- const input = isImage ? options.image : options.input;
128
+ const isAudio = record.modality === 'audio';
129
+ const input = isImage ? options.image : isAudio ? options.audio : options.input;
129
130
  if (input === undefined) {
130
- throw new Error(isImage ? '--image <path> is required for image models.' : '--input <value> is required.');
131
+ throw new Error(
132
+ isImage ? '--image <path> is required for image models.'
133
+ : isAudio ? '--audio <file.wav> is required for sound models.'
134
+ : '--input <value> is required.',
135
+ );
131
136
  }
132
137
  const model = await loadModel(slug);
133
138
  const result = await predictWithModel(model, record, input);
package/src/index.js CHANGED
@@ -1005,6 +1005,7 @@ export function run() {
1005
1005
  .requiredOption('--dataset <slug>', 'Target dataset slug')
1006
1006
  .option('--file <path>', 'JSONL file of rows ({features,label|target,split})')
1007
1007
  .option('--image <path>', 'Image file to add (image datasets); copied into the dataset')
1008
+ .option('--audio <path>', 'WAV file to add (audio datasets); copied into the dataset')
1008
1009
  .option('--text <text>', 'Single-row text features')
1009
1010
  .option('--features <value>', 'Single-row features (string; numbers for a table, or JSON for a typed table)')
1010
1011
  .option('--label <label>', 'Class label (classification)')
@@ -1084,6 +1085,7 @@ export function run() {
1084
1085
  .description('Run a prediction with a trained model')
1085
1086
  .option('--input <value>', 'Input: text; comma-separated numbers for a table; or JSON for a typed table')
1086
1087
  .option('--image <path>', 'Image file to classify (image models)')
1088
+ .option('--audio <path>', 'WAV file to classify (sound models)')
1087
1089
  .option('--json', 'Output raw JSON')
1088
1090
  .action(modelPredictCommand);
1089
1091
 
@@ -0,0 +1,194 @@
1
+ /**
2
+ * Sound feature-extractor for the Studio "Lab" pillar.
3
+ *
4
+ * Turns a WAV file into a fixed-length embedding using YAMNet, which is
5
+ * **bundled inside this package** (vendor/backbones/yamnet/) and loaded from
6
+ * disk — never downloaded — the same way image-backbone.js bundles MobileNet.
7
+ *
8
+ * Pipeline: read the WAV (pure JS, any common PCM or float format) → mix to
9
+ * mono → keep the first MAX_SECONDS → resample to 16 kHz → YAMNet → one
10
+ * 1024-d embedding per 0.48 s frame → averaged into a single 1024-d vector.
11
+ *
12
+ * The embedding feeds the SAME dense head the other modalities train; sound
13
+ * only adds this featurization step. Studio records clips as 16-bit mono WAV,
14
+ * so WAV is the only format read here. tfjs is imported lazily.
15
+ */
16
+ import { readFileSync, existsSync } from 'fs';
17
+ import { join, dirname } from 'path';
18
+ import { fileURLToPath } from 'url';
19
+
20
+ export const BACKBONE_ID = 'yamnet';
21
+ export const SAMPLE_RATE = 16000;
22
+ export const EMBED_DIM = 1024;
23
+ /** Only the start of a long clip is used, so training and predicting stay quick. */
24
+ export const MAX_SECONDS = 10;
25
+ const EMBEDDINGS_OUTPUT = 'Identity_1';
26
+
27
+ const BACKBONE_DIR = join(dirname(fileURLToPath(import.meta.url)), '..', '..', 'vendor', 'backbones', BACKBONE_ID);
28
+
29
+ let _backbonePromise = null;
30
+
31
+ /** A GraphModel IOHandler reading the vendored files off disk (see image-backbone.js). */
32
+ function diskGraphHandler(dir) {
33
+ return {
34
+ load: async () => {
35
+ const manifestPath = join(dir, 'model.json');
36
+ if (!existsSync(manifestPath)) {
37
+ throw new Error(
38
+ `Bundled sound backbone not found at ${dir}. The YAMNet weights ship ` +
39
+ 'inside @myvillage/cli (vendor/backbones/); reinstall the CLI if this is missing.',
40
+ );
41
+ }
42
+ const j = JSON.parse(readFileSync(manifestPath, 'utf-8'));
43
+ const specs = [];
44
+ const buffers = [];
45
+ for (const grp of j.weightsManifest) {
46
+ for (const p of grp.paths) buffers.push(readFileSync(join(dir, p)));
47
+ specs.push(...grp.weights);
48
+ }
49
+ const concat = Buffer.concat(buffers);
50
+ return {
51
+ modelTopology: j.modelTopology,
52
+ weightSpecs: specs,
53
+ weightData: concat.buffer.slice(concat.byteOffset, concat.byteOffset + concat.byteLength),
54
+ format: j.format,
55
+ generatedBy: j.generatedBy,
56
+ convertedBy: j.convertedBy,
57
+ };
58
+ },
59
+ };
60
+ }
61
+
62
+ async function getBackbone() {
63
+ if (!_backbonePromise) {
64
+ _backbonePromise = (async () => {
65
+ const tf = await import('@tensorflow/tfjs');
66
+ await tf.setBackend('cpu');
67
+ await tf.ready();
68
+ return tf.loadGraphModel(diskGraphHandler(BACKBONE_DIR));
69
+ })().catch((e) => {
70
+ _backbonePromise = null;
71
+ throw e;
72
+ });
73
+ }
74
+ return _backbonePromise;
75
+ }
76
+
77
+ /**
78
+ * A WAV file's bytes → { sampleRate, samples: Float32Array (mono, [-1, 1]) }.
79
+ * Reads 8/16/24/32-bit PCM and 32/64-bit float, any number of channels
80
+ * (mixed down by averaging), including WAVE_FORMAT_EXTENSIBLE files.
81
+ */
82
+ export function decodeWav(buf) {
83
+ const bytes = buf instanceof Uint8Array ? buf : new Uint8Array(buf);
84
+ const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
85
+ const tag = (at) => String.fromCharCode(bytes[at], bytes[at + 1], bytes[at + 2], bytes[at + 3]);
86
+ if (bytes.length < 12 || tag(0) !== 'RIFF' || tag(8) !== 'WAVE') {
87
+ throw new Error('That sound isn\'t a WAV file. Record it in Studio, or save it as WAV first.');
88
+ }
89
+ let fmt = null;
90
+ let data = null;
91
+ for (let at = 12; at + 8 <= bytes.length; ) {
92
+ const id = tag(at);
93
+ const size = view.getUint32(at + 4, true);
94
+ const body = at + 8;
95
+ if (id === 'fmt ') {
96
+ let format = view.getUint16(body, true);
97
+ // WAVE_FORMAT_EXTENSIBLE: the real format is the first 2 bytes of the sub-format GUID.
98
+ if (format === 0xfffe && size >= 26) format = view.getUint16(body + 24, true);
99
+ fmt = {
100
+ format,
101
+ channels: view.getUint16(body + 2, true),
102
+ sampleRate: view.getUint32(body + 4, true),
103
+ bits: view.getUint16(body + 14, true),
104
+ };
105
+ } else if (id === 'data') {
106
+ data = { start: body, length: Math.min(size, bytes.length - body) };
107
+ }
108
+ at = body + size + (size % 2); // chunks are padded to an even length
109
+ }
110
+ if (!fmt || !data) throw new Error('That WAV file is missing its sound data.');
111
+ const { format, channels, sampleRate, bits } = fmt;
112
+ const pcm = format === 1;
113
+ const float = format === 3;
114
+ if (!(pcm && [8, 16, 24, 32].includes(bits)) && !(float && (bits === 32 || bits === 64))) {
115
+ throw new Error('That WAV file uses a format Studio can\'t read. Save it as 16-bit PCM WAV.');
116
+ }
117
+ if (!channels || !sampleRate) throw new Error('That WAV file looks damaged.');
118
+ const width = bits / 8;
119
+ const frames = Math.floor(data.length / (width * channels));
120
+ const read = (o) => {
121
+ if (float) return bits === 32 ? view.getFloat32(o, true) : view.getFloat64(o, true);
122
+ if (bits === 8) return (bytes[o] - 128) / 128;
123
+ if (bits === 16) return view.getInt16(o, true) / 32768;
124
+ if (bits === 24) {
125
+ const v = bytes[o] | (bytes[o + 1] << 8) | (bytes[o + 2] << 16);
126
+ return (v & 0x800000 ? v - 0x1000000 : v) / 8388608;
127
+ }
128
+ return view.getInt32(o, true) / 2147483648;
129
+ };
130
+ const samples = new Float32Array(frames);
131
+ for (let i = 0, o = data.start; i < frames; i++) {
132
+ let s = 0;
133
+ for (let c = 0; c < channels; c++, o += width) s += read(o);
134
+ samples[i] = s / channels;
135
+ }
136
+ return { sampleRate, samples };
137
+ }
138
+
139
+ /**
140
+ * Mono samples at any rate → the first MAX_SECONDS at 16 kHz. Going down, each
141
+ * output sample averages the input samples it covers (a box filter, so higher
142
+ * pitches don't fold back in); going up, it interpolates linearly. No trig,
143
+ * so the result is the same on every computer.
144
+ */
145
+ export function toModelRate(samples, sampleRate) {
146
+ const input = samples.subarray(0, Math.min(samples.length, Math.round(sampleRate * MAX_SECONDS)));
147
+ if (sampleRate === SAMPLE_RATE) return Float32Array.from(input);
148
+ const ratio = sampleRate / SAMPLE_RATE;
149
+ const n = Math.floor(input.length / ratio);
150
+ const out = new Float32Array(n);
151
+ if (ratio > 1) {
152
+ for (let k = 0; k < n; k++) {
153
+ const from = k * ratio;
154
+ const to = from + ratio;
155
+ let sum = 0;
156
+ for (let i = Math.floor(from); i < to && i < input.length; i++) {
157
+ const overlap = Math.min(i + 1, to) - Math.max(i, from);
158
+ sum += input[i] * overlap;
159
+ }
160
+ out[k] = sum / ratio;
161
+ }
162
+ } else {
163
+ for (let k = 0; k < n; k++) {
164
+ const x = k * ratio;
165
+ const i = Math.floor(x);
166
+ const t = x - i;
167
+ out[k] = input[i] * (1 - t) + (i + 1 < input.length ? input[i + 1] : input[i]) * t;
168
+ }
169
+ }
170
+ return out;
171
+ }
172
+
173
+ /** 16 kHz mono samples → the averaged 1024-d YAMNet embedding. */
174
+ export async function embedSamples(samples16k) {
175
+ if (!samples16k.length) throw new Error('That sound is empty.');
176
+ const tf = await import('@tensorflow/tfjs');
177
+ const model = await getBackbone();
178
+ return tf.tidy(() => {
179
+ const frames = model.execute(tf.tensor1d(samples16k), EMBEDDINGS_OUTPUT); // [frames, 1024]
180
+ return Array.from(tf.mean(frames, 0).dataSync());
181
+ });
182
+ }
183
+
184
+ /** A WAV file → Float array of length EMBED_DIM (1024). Used by training and predict. */
185
+ export async function embedAudio(path) {
186
+ if (!existsSync(path)) throw new Error(`Sound not found: ${path}`);
187
+ const { samples, sampleRate } = decodeWav(readFileSync(path));
188
+ return embedSamples(toModelRate(samples, sampleRate));
189
+ }
190
+
191
+ /** Featurization params persisted in the model record for sound models. */
192
+ export function audioFeaturization() {
193
+ return { modality: 'audio', dim: EMBED_DIM, backbone: BACKBONE_ID, sampleRate: SAMPLE_RATE, maxSeconds: MAX_SECONDS };
194
+ }
@@ -11,16 +11,18 @@
11
11
  * tables (numbers, categories, yes/no, notes) → see table-columns.js
12
12
  * - text: hashing vectorizer (pure JS) → dense head
13
13
  * - image: bundled MobileNetV3-Small backbone → 1024-d embedding → dense head
14
- * audio needs a bundled audio backbone and lands in a later slice.
14
+ * - audio: WAV → 16 kHz → bundled YAMNet backbone → averaged 1024-d embedding → dense head
15
15
  *
16
16
  * Transfer-learning-style split: featurize once, then train a small head. The
17
17
  * featurization params travel in the model record so predict() needs no data.
18
- * (For image, the backbone itself is bundled — see image-backbone.js — so the
19
- * embedding can always be recomputed at predict time from the same weights.)
18
+ * (For image and audio, the backbone itself is bundled — see image-backbone.js
19
+ * and audio-backbone.js — so the embedding can always be recomputed at predict
20
+ * time from the same weights.)
20
21
  */
21
22
  import * as tf from '@tensorflow/tfjs';
22
23
  import { readRows, getAssetPath } from './dataset-workspace.js';
23
24
  import { embedImage, imageFeaturization } from './image-backbone.js';
25
+ import { embedAudio, audioFeaturization } from './audio-backbone.js';
24
26
  import {
25
27
  columnTypesOf,
26
28
  fitTableFeaturization,
@@ -30,7 +32,7 @@ import {
30
32
  } from './table-columns.js';
31
33
 
32
34
  const TEXT_DIM = 1024;
33
- export const TRAINABLE_MODALITIES = ['tabular', 'text', 'image'];
35
+ export const TRAINABLE_MODALITIES = ['tabular', 'text', 'image', 'audio'];
34
36
 
35
37
  // ── Featurization ──────────────────────────────────────
36
38
 
@@ -46,11 +48,11 @@ function toNumericVector(features) {
46
48
  throw new Error('Tabular features must be a numeric vector.');
47
49
  }
48
50
 
49
- /** Resolve an image row's features to an absolute file path on disk. */
50
- function imagePathOf(features, slug) {
51
+ /** Resolve an image or sound row's features to an absolute file path on disk. */
52
+ function assetPathOf(features, slug, what = 'Image') {
51
53
  // Rows store an AssetRef {kind,path}; path is relative to the dataset assets/.
52
54
  const rel = typeof features === 'string' ? features : features?.path;
53
- if (!rel) throw new Error('Image rows must reference an image asset.');
55
+ if (!rel) throw new Error(`${what} rows must reference a${what === 'Image' ? 'n image' : ' sound'} asset.`);
54
56
  return getAssetPath(slug, rel);
55
57
  }
56
58
 
@@ -59,9 +61,14 @@ function imagePathOf(features, slug) {
59
61
  async function featurize(rows, modality, slug, manifest) {
60
62
  if (modality === 'image') {
61
63
  const X = [];
62
- for (const r of rows) X.push(await embedImage(imagePathOf(r.features, slug)));
64
+ for (const r of rows) X.push(await embedImage(assetPathOf(r.features, slug)));
63
65
  return { X, featurization: imageFeaturization() };
64
66
  }
67
+ if (modality === 'audio') {
68
+ const X = [];
69
+ for (const r of rows) X.push(await embedAudio(assetPathOf(r.features, slug, 'Sound')));
70
+ return { X, featurization: audioFeaturization() };
71
+ }
65
72
  if (modality === 'text') {
66
73
  return { X: rows.map((r) => vectorizeText(r.features)), featurization: { modality, dim: TEXT_DIM } };
67
74
  }
@@ -90,7 +97,7 @@ async function featurize(rows, modality, slug, manifest) {
90
97
  }
91
98
 
92
99
  /** Featurize a single input the same way (for predict). Async because the
93
- * image path runs the backbone; text/tabular resolve synchronously. */
100
+ * image and sound paths run a backbone; text/tabular resolve synchronously. */
94
101
  export async function featurizeOne(input, featurization) {
95
102
  if (featurization.modality === 'image') {
96
103
  // input is an absolute image file path (CLI --image / model_predict tool).
@@ -98,6 +105,12 @@ export async function featurizeOne(input, featurization) {
98
105
  if (!path) throw new Error('Image prediction needs an image file path.');
99
106
  return embedImage(path);
100
107
  }
108
+ if (featurization.modality === 'audio') {
109
+ // input is an absolute WAV file path (CLI --audio / model_predict tool).
110
+ const path = typeof input === 'string' ? input : input?.path;
111
+ if (!path) throw new Error('Sound prediction needs a WAV file path.');
112
+ return embedAudio(path);
113
+ }
101
114
  if (featurization.modality === 'text') return vectorizeText(input);
102
115
  if (featurization.columns) {
103
116
  const names = featurization.columns.map((c) => c.name);
@@ -146,7 +159,7 @@ export async function trainModel(slug, manifest, { epochs = 40, onProgress } = {
146
159
 
147
160
  if (!TRAINABLE_MODALITIES.includes(manifest.modality)) {
148
161
  throw new Error(
149
- `Training for "${manifest.modality}" datasets is coming soon — v1 supports ${TRAINABLE_MODALITIES.join(' and ')}.`,
162
+ `Training for "${manifest.modality}" datasets is coming soon — this version supports ${TRAINABLE_MODALITIES.join(', ')}.`,
150
163
  );
151
164
  }
152
165
  const rows = readRows(slug, {});
@@ -0,0 +1,22 @@
1
+ # YAMNet (TF.js GraphModel) — vendored backbone
2
+
3
+ Bundled sound feature-extractor for the Studio "Lab" pillar audio models.
4
+ **Never downloaded at runtime** — shipped inside `@myvillage/cli` so the Studio
5
+ stays "the only thing you install" (see ed-platform docs/architecture/studio-models-pillar.md §0b, §13).
6
+
7
+ - **Model:** YAMNet (MobileNetV1-style audio event classifier trained on AudioSet)
8
+ - **Input:** `waveform` — 1-D float32 mono samples at **16 kHz**, in `[-1, 1]`, any length
9
+ - **Outputs:** `Identity` `[frames, 521]` class scores, `Identity_1` `[frames, 1024]`
10
+ embeddings (what we use, averaged over frames), `Identity_2` log-mel spectrogram.
11
+ One frame per 0.48 s of sound (0.96 s windows); a clip shorter than one window is padded.
12
+ - **Format:** TensorFlow.js `graph-model` (model.json + 4 weight shards, ~16 MB, float32)
13
+ - **Source:** Google YAMNet TF.js (`google/tfjs-model/yamnet/tfjs/1`), TF Hub / Kaggle Models
14
+ (`google/yamnet`), converted by TensorFlow.js Converter v2.1.0
15
+ - **Downloaded:** 2026-09-24 from `https://tfhub.dev/google/tfjs-model/yamnet/tfjs/1`
16
+ - **SHA-256:**
17
+ - `model.json` 552a4e59884a7fad25dbdbc1bbe75af2a416bca44de12523081d4b55606d59d3
18
+ - `group1-shard1of4.bin` 2ba509dbfc875e0483e5e3f6935cd9be9f986dd1219796c649422fd337dde4ca
19
+ - `group1-shard2of4.bin` b789c08119ef33a534475b964c25447586e18328039c06322d4b5337887d1fca
20
+ - `group1-shard3of4.bin` 464a4a19cfb207c81bbd6ba079d2f36402902c07faa8b6d305f438dc0ab74212
21
+ - `group1-shard4of4.bin` 311fcb65f9985e825a9f162b7ef82bdc81a745bff11f90bd7b1eaabbd1f55e6b
22
+ - **License:** Apache-2.0 (TensorFlow Hub / Google)
@@ -0,0 +1 @@
1
+ {"format": "graph-model", "generatedBy": "2.3.0", "convertedBy": "TensorFlow.js Converter v2.1.0", "userDefinedMetadata": {"signature": {"inputs": {"waveform:0": {"name": "waveform:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "-1"}]}}}, "outputs": {"Identity:0": {"name": "Identity:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "-1"}, {"size": "521"}]}}, "Identity_1:0": {"name": "Identity_1:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "-1"}, {"size": "1024"}]}}, "Identity_2:0": {"name": "Identity_2:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "-1"}, {"size": "64"}]}}}}}, "modelTopology": {"node": [{"name": "unknown_134", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1024"}, {"size": "521"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_135", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "521"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_12/Mul_12/y", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_9/concat_9/axis", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_8/FloorDiv_8/y", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_10/values_1/concat_10/values_1/1", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_10/concat_10/axis", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Range_3/Range_3/start", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Range_3/Range_3/delta", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_14/shape/Reshape_14/shape/1", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_11/AddV2_11/y", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_GatherV2_3/GatherV2_3/axis", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_7/Maximum_7/x", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_10/AddV2_10/x", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_12/Reshape_12/shape", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_12/Sub_12/y", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_7/FloorDiv_7/y", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_11/values_1/Sub_12/y", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_3/split_3/size_splits", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "3"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_3/split_3/split_dim", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_11/concat_11/axis", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/reshape_1/strided_slice/stack", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/reshape_1/strided_slice/stack_1", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/reshape_1/strided_slice/stack_2", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/reshape_1/Reshape/shape/1", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/reshape_1/Reshape/shape/2", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/reshape_1/Reshape/shape/3", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/global_average_pooling2d_1/Mean/reduction_indices", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "2"}]}}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_MatMul_1/MatMul_1/b", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}, {"size": "257"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_3/paddings/Pad_3/paddings/0_1", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_10/Sub_10/x", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_9/Sub_9/x", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_7/Mul_7/y", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_6/concat_6/axis", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_5/FloorDiv_5/y", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_7/values_1/concat_7/values_1/1", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_7/concat_7/axis", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Range_2/Range_2/start", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Range_2/Range_2/delta", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_8/Mul_8/y", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_10/shape/Reshape_10/shape/1", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_8/AddV2_8/y", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}, {"size": "5"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_GatherV2_2/GatherV2_2/axis", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_6/Maximum_6/x", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_7/AddV2_7/x", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_8/Reshape_8/shape", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_8/Sub_8/y", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_4/FloorDiv_4/y", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_8/values_1/Sub_8/y", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_2/paddings/0/Pad_2/paddings/0/0", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_4/Maximum_4/x", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_5/Sub_5/x", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_6/Mul_6/x", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "ConstantFolding/StatefulPartitionedCall/yamnet_frames/tf_op_layer_RealDiv_1/RealDiv_1_recip", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_1/strided_slice_1/begin", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_1/strided_slice_1/end", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_1/strided_slice_1/strides", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_5/Sub_5/x", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_6/Sub_5/x", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_2/split_2/size_splits", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "3"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_2/split_2/split_dim", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_8/concat_8/axis", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_9/Mul_9/y", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "400"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_2/strided_slice_2/begin", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_2/strided_slice_2/end", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_2/strided_slice_2/strides", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_6/FloorDiv_6/y", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_MatMul_2/MatMul_2/b", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}, {"size": "257"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_MatMul_3/MatMul_3/b", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "257"}, {"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_9/AddV2_9/y", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "waveform", "op": "Placeholder", "attr": {"dtype": {"type": "DT_FLOAT"}, "shape": {"shape": {"dim": [{"size": "-1"}]}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer1/conv/Conv2D_weights", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "1"}, {"size": "32"}]}}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer12/pointwise_conv/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer1/conv/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer2/depthwise_conv/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer2/depthwise_conv/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer2/pointwise_conv/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "32"}, {"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer2/pointwise_conv/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer13/depthwise_conv/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "512"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer3/depthwise_conv/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "64"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer3/depthwise_conv/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer3/pointwise_conv/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "64"}, {"size": "128"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer3/pointwise_conv/Conv2D_bn_offset", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}]}}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer13/depthwise_conv/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer4/depthwise_conv/depthwise_weights", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "128"}, {"size": "1"}]}}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer4/depthwise_conv/depthwise_bn_offset", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}]}}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer4/pointwise_conv/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "128"}, {"size": "128"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer4/pointwise_conv/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer5/depthwise_conv/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "128"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer5/depthwise_conv/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer5/pointwise_conv/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "128"}, {"size": "256"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer13/pointwise_conv/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "512"}, {"size": "1024"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer5/pointwise_conv/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer6/depthwise_conv/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "256"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer6/depthwise_conv/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer6/pointwise_conv/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "256"}, {"size": "256"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer13/pointwise_conv/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1024"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer6/pointwise_conv/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer7/depthwise_conv/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "256"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer7/depthwise_conv/depthwise_bn_offset", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer7/pointwise_conv/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "256"}, {"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer7/pointwise_conv/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer14/depthwise_conv/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "1024"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer8/depthwise_conv/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "512"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer8/depthwise_conv/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer8/pointwise_conv/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "512"}, {"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer8/pointwise_conv/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer14/depthwise_conv/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1024"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer9/depthwise_conv/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "512"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer9/depthwise_conv/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer9/pointwise_conv/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "512"}, {"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer9/pointwise_conv/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer10/depthwise_conv/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "512"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer10/depthwise_conv/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer10/pointwise_conv/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "512"}, {"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer14/pointwise_conv/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "1024"}, {"size": "1024"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer10/pointwise_conv/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer11/depthwise_conv/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "512"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer11/depthwise_conv/depthwise_bn_offset", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer11/pointwise_conv/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "512"}, {"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer14/pointwise_conv/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1024"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer11/pointwise_conv/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer12/depthwise_conv/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "512"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer12/depthwise_conv/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer12/pointwise_conv/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "512"}, {"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Shape_5/Shape_5", "op": "Shape", "input": ["waveform"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_1/strided_slice_1", "op": "StridedSlice", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Shape_5/Shape_5", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_1/strided_slice_1/begin", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_1/strided_slice_1/end", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_1/strided_slice_1/strides"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_5/Sub_5", "op": "Sub", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_5/Sub_5/x", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_1/strided_slice_1"], "attr": {"T": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_5/Maximum_5", "op": "Maximum", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_1/strided_slice_1", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_5/Sub_5/x"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_4/Maximum_4", "op": "Maximum", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_4/Maximum_4/x", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_5/Sub_5"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_6/Sub_6", "op": "Sub", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_5/Maximum_5", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_6/Sub_5/x"], "attr": {"T": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Cast_2/Cast_2", "op": "Cast", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_6/Sub_6"], "attr": {"DstT": {"type": "DT_FLOAT"}, "_cloned": {"b": true}, "SrcT": {"type": "DT_INT32"}, "Truncate": {"b": false}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_RealDiv_1/RealDiv_1", "op": "Mul", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Cast_2/Cast_2", "ConstantFolding/StatefulPartitionedCall/yamnet_frames/tf_op_layer_RealDiv_1/RealDiv_1_recip"], "attr": {"T": {"type": "DT_FLOAT"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Ceil_1/Ceil_1", "op": "Ceil", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_RealDiv_1/RealDiv_1"], "attr": {"T": {"type": "DT_FLOAT"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Cast_3/Cast_3", "op": "Cast", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Ceil_1/Ceil_1"], "attr": {"SrcT": {"type": "DT_FLOAT"}, "Truncate": {"b": false}, "DstT": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_6/Mul_6", "op": "Mul", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_6/Mul_6/x", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Cast_3/Cast_3"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_7/Sub_7", "op": "Sub", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_6/Mul_6", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_6/Sub_6"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_6/AddV2_6", "op": "AddV2", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_4/Maximum_4", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_7/Sub_7"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_2/paddings/0/Pad_2/paddings/0", "op": "Pack", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_2/paddings/0/Pad_2/paddings/0/0", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_6/AddV2_6"], "attr": {"N": {"i": "2"}, "_cloned": {"b": true}, "T": {"type": "DT_INT32"}, "axis": {"i": "0"}}}, {"name": "ConstantFolding/StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_2/paddings/Pad_2/paddings_const_axis", "op": "Const", "input": ["^StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_2/paddings/0/Pad_2/paddings/0"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_2/paddings/Pad_2/paddings", "op": "ExpandDims", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_2/paddings/0/Pad_2/paddings/0", "ConstantFolding/StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_2/paddings/Pad_2/paddings_const_axis"], "attr": {"Tdim": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_2/Pad_2", "op": "Pad", "input": ["waveform", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_2/paddings/Pad_2/paddings"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "_cloned": {"b": true}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Shape_6/Shape_6", "op": "Shape", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_2/Pad_2"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_2/split_2", "op": "SplitV", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Shape_6/Shape_6", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_2/split_2/size_splits", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_2/split_2/split_dim"], "attr": {"T": {"type": "DT_INT32"}, "Tlen": {"type": "DT_INT32"}, "num_split": {"i": "3"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_ZerosLike_2/ZerosLike_2", "op": "Const", "input": ["^StatefulPartitionedCall/yamnet_frames/tf_op_layer_Shape_6/Shape_6"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_8/Reshape_8", "op": "Reshape", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_2/split_2:1", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_8/Reshape_8/shape"], "attr": {"T": {"type": "DT_INT32"}, "Tshape": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Fill_2/Fill_2", "op": "Const", "input": ["^StatefulPartitionedCall/yamnet_frames/tf_op_layer_ZerosLike_2/ZerosLike_2"], "attr": {"_cloned": {"b": true}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_5/FloorDiv_5", "op": "FloorDiv", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_8/Reshape_8", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_5/FloorDiv_5/y"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_8/Sub_8", "op": "Sub", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_8/Reshape_8", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_8/Sub_8/y"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_7/Mul_7", "op": "Mul", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_5/FloorDiv_5", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_7/Mul_7/y"], "attr": {"T": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_7/values_1/concat_7/values_1", "op": "Pack", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_5/FloorDiv_5", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_7/values_1/concat_7/values_1/1"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "2"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_4/FloorDiv_4", "op": "FloorDiv", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_8/Sub_8", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_4/FloorDiv_4/y"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "ConstantFolding/StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_6/values_1/concat_6/values_1_const_axis", "op": "Const", "input": ["^StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_7/Mul_7"], "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_7/concat_7", "op": "ConcatV2", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_2/split_2", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_7/values_1/concat_7/values_1", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_2/split_2:2", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_7/concat_7/axis"], "attr": {"N": {"i": "3"}, "_cloned": {"b": true}, "Tidx": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_7/AddV2_7", "op": "AddV2", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_7/AddV2_7/x", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_4/FloorDiv_4"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_6/values_1/concat_6/values_1", "op": "ExpandDims", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_7/Mul_7", "ConstantFolding/StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_6/values_1/concat_6/values_1_const_axis"], "attr": {"_cloned": {"b": true}, "Tdim": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_6/Maximum_6", "op": "Maximum", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_6/Maximum_6/x", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_7/AddV2_7"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_6/concat_6", "op": "ConcatV2", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_2/split_2", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_6/values_1/concat_6/values_1", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_2/split_2:2", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_6/concat_6/axis"], "attr": {"N": {"i": "3"}, "_cloned": {"b": true}, "Tidx": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Range_2/Range_2", "op": "Range", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Range_2/Range_2/start", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_6/Maximum_6", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Range_2/Range_2/delta"], "attr": {"_cloned": {"b": true}, "Tidx": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_10/shape/Reshape_10/shape", "op": "Pack", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_6/Maximum_6", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_10/shape/Reshape_10/shape/1"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "2"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_8/values_1/concat_8/values_1", "op": "Pack", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_6/Maximum_6", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_8/values_1/Sub_8/y"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "2"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_StridedSlice_2/StridedSlice_2", "op": "StridedSlice", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_2/Pad_2", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_ZerosLike_2/ZerosLike_2", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_6/concat_6", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Fill_2/Fill_2"], "attr": {"shrink_axis_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "_cloned": {"b": true}, "T": {"type": "DT_FLOAT"}, "Index": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_8/Mul_8", "op": "Mul", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Range_2/Range_2", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_8/Mul_8/y"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_8/concat_8", "op": "ConcatV2", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_2/split_2", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_8/values_1/concat_8/values_1", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_2/split_2:2", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_8/concat_8/axis"], "attr": {"Tidx": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}, "N": {"i": "3"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_9/Reshape_9", "op": "Reshape", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_StridedSlice_2/StridedSlice_2", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_7/concat_7"], "attr": {"Tshape": {"type": "DT_INT32"}, "_cloned": {"b": true}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_10/Reshape_10", "op": "Reshape", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_8/Mul_8", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_10/shape/Reshape_10/shape"], "attr": {"T": {"type": "DT_INT32"}, "Tshape": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_8/AddV2_8", "op": "AddV2", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_10/Reshape_10", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_8/AddV2_8/y"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_GatherV2_2/GatherV2_2", "op": "GatherV2", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_9/Reshape_9", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_8/AddV2_8", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_GatherV2_2/GatherV2_2/axis"], "attr": {"Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}, "_cloned": {"b": true}, "Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_11/Reshape_11", "op": "Reshape", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_GatherV2_2/GatherV2_2", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_8/concat_8"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_9/Mul_9", "op": "Mul", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_11/Reshape_11", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_9/Mul_9/y"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Shape_8/Shape_8", "op": "Shape", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_9/Mul_9"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_2/strided_slice_2", "op": "StridedSlice", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Shape_8/Shape_8", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_2/strided_slice_2/begin", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_2/strided_slice_2/end", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_2/strided_slice_2/strides"], "attr": {"shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "_cloned": {"b": true}, "Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_10/Sub_10", "op": "Sub", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_10/Sub_10/x", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_2/strided_slice_2"], "attr": {"T": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_9/Sub_9", "op": "Sub", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_9/Sub_9/x", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_2/strided_slice_2"], "attr": {"T": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_6/FloorDiv_6", "op": "FloorDiv", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_9/Sub_9", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_6/FloorDiv_6/y"], "attr": {"T": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_11/Sub_11", "op": "Sub", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_10/Sub_10", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_6/FloorDiv_6"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_3/paddings/1/Pad_3/paddings/1", "op": "Pack", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_6/FloorDiv_6", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_11/Sub_11"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "2"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_3/paddings/Pad_3/paddings", "op": "Pack", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_3/paddings/Pad_3/paddings/0_1", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_3/paddings/1/Pad_3/paddings/1"], "attr": {"N": {"i": "2"}, "_cloned": {"b": true}, "T": {"type": "DT_INT32"}, "axis": {"i": "0"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_3/Pad_3", "op": "Pad", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_9/Mul_9", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_3/paddings/Pad_3/paddings"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_MatMul_1/MatMul_1", "op": "MatMul", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_3/Pad_3", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_MatMul_1/MatMul_1/b"], "device": "/device:CPU:0", "attr": {"transpose_a": {"b": false}, "transpose_b": {"b": false}, "_cloned": {"b": true}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_MatMul_2/MatMul_2", "op": "MatMul", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_3/Pad_3", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_MatMul_2/MatMul_2/b"], "device": "/device:CPU:0", "attr": {"T": {"type": "DT_FLOAT"}, "transpose_a": {"b": false}, "transpose_b": {"b": false}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_10/ArithmeticOptimizer/ReplaceMulWithSquare_Mul_10", "op": "Square", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_MatMul_1/MatMul_1"], "attr": {"T": {"type": "DT_FLOAT"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_11/ArithmeticOptimizer/ReplaceMulWithSquare_Mul_11", "op": "Square", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_MatMul_2/MatMul_2"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Add/Add", "op": "Add", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_10/ArithmeticOptimizer/ReplaceMulWithSquare_Mul_10", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_11/ArithmeticOptimizer/ReplaceMulWithSquare_Mul_11"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sqrt/Sqrt", "op": "Sqrt", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Add/Add"], "attr": {"T": {"type": "DT_FLOAT"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_MatMul_3/MatMul_3", "op": "MatMul", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sqrt/Sqrt", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_MatMul_3/MatMul_3/b"], "device": "/device:CPU:0", "attr": {"T": {"type": "DT_FLOAT"}, "transpose_a": {"b": false}, "transpose_b": {"b": false}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_9/AddV2_9", "op": "AddV2", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_MatMul_3/MatMul_3", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_9/AddV2_9/y"], "attr": {"T": {"type": "DT_FLOAT"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Log_1/Log_1", "op": "Log", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_9/AddV2_9"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Shape_9/Shape_9", "op": "Shape", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Log_1/Log_1"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "Identity_2", "op": "Identity", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Log_1/Log_1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_3/split_3", "op": "SplitV", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Shape_9/Shape_9", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_3/split_3/size_splits", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_3/split_3/split_dim"], "attr": {"Tlen": {"type": "DT_INT32"}, "num_split": {"i": "3"}, "_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_ZerosLike_3/ZerosLike_3", "op": "Const", "input": ["^StatefulPartitionedCall/yamnet_frames/tf_op_layer_Shape_9/Shape_9"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_12/Reshape_12", "op": "Reshape", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_3/split_3:1", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_12/Reshape_12/shape"], "attr": {"T": {"type": "DT_INT32"}, "Tshape": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Fill_3/Fill_3", "op": "Const", "input": ["^StatefulPartitionedCall/yamnet_frames/tf_op_layer_ZerosLike_3/ZerosLike_3"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_8/FloorDiv_8", "op": "FloorDiv", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_12/Reshape_12", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_8/FloorDiv_8/y"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_12/Sub_12", "op": "Sub", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_12/Reshape_12", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_12/Sub_12/y"], "attr": {"T": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_12/Mul_12", "op": "Mul", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_8/FloorDiv_8", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_12/Mul_12/y"], "attr": {"T": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_10/values_1/concat_10/values_1", "op": "Pack", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_8/FloorDiv_8", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_10/values_1/concat_10/values_1/1"], "attr": {"N": {"i": "2"}, "_cloned": {"b": true}, "T": {"type": "DT_INT32"}, "axis": {"i": "0"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_7/FloorDiv_7", "op": "FloorDiv", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_12/Sub_12", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_7/FloorDiv_7/y"], "attr": {"T": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "ConstantFolding/StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_9/values_1/concat_9/values_1_const_axis", "op": "Const", "input": ["^StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_12/Mul_12"], "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_10/concat_10", "op": "ConcatV2", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_3/split_3", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_10/values_1/concat_10/values_1", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_3/split_3:2", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_10/concat_10/axis"], "attr": {"T": {"type": "DT_INT32"}, "N": {"i": "3"}, "_cloned": {"b": true}, "Tidx": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_10/AddV2_10", "op": "AddV2", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_10/AddV2_10/x", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_7/FloorDiv_7"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_9/values_1/concat_9/values_1", "op": "ExpandDims", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_12/Mul_12", "ConstantFolding/StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_9/values_1/concat_9/values_1_const_axis"], "attr": {"_cloned": {"b": true}, "Tdim": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_7/Maximum_7", "op": "Maximum", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_7/Maximum_7/x", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_10/AddV2_10"], "attr": {"T": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_9/concat_9", "op": "ConcatV2", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_3/split_3", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_9/values_1/concat_9/values_1", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_3/split_3:2", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_9/concat_9/axis"], "attr": {"N": {"i": "3"}, "_cloned": {"b": true}, "Tidx": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Range_3/Range_3", "op": "Range", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Range_3/Range_3/start", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_7/Maximum_7", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Range_3/Range_3/delta"], "attr": {"Tidx": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_14/shape/Reshape_14/shape", "op": "Pack", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_7/Maximum_7", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_14/shape/Reshape_14/shape/1"], "attr": {"axis": {"i": "0"}, "N": {"i": "2"}, "_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_11/values_1/concat_11/values_1", "op": "Pack", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_7/Maximum_7", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_11/values_1/Sub_12/y"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "2"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_StridedSlice_3/StridedSlice_3", "op": "StridedSlice", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Log_1/Log_1", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_ZerosLike_3/ZerosLike_3", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_9/concat_9", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Fill_3/Fill_3"], "attr": {"ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "_cloned": {"b": true}, "Index": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}, "shrink_axis_mask": {"i": "0"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_14/Reshape_14", "op": "Reshape", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Range_3/Range_3", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_14/shape/Reshape_14/shape"], "attr": {"Tshape": {"type": "DT_INT32"}, "_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_11/concat_11", "op": "ConcatV2", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_3/split_3", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_11/values_1/concat_11/values_1", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_3/split_3:2", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_11/concat_11/axis"], "attr": {"_cloned": {"b": true}, "Tidx": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}, "N": {"i": "3"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_13/Reshape_13", "op": "Reshape", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_StridedSlice_3/StridedSlice_3", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_10/concat_10"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_11/AddV2_11", "op": "AddV2", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_14/Reshape_14", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_11/AddV2_11/y"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_GatherV2_3/GatherV2_3", "op": "GatherV2", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_13/Reshape_13", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_11/AddV2_11", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_GatherV2_3/GatherV2_3/axis"], "attr": {"_cloned": {"b": true}, "Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}, "Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_15/Reshape_15", "op": "Reshape", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_GatherV2_3/GatherV2_3", "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_11/concat_11"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/reshape_1/Shape", "op": "Shape", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_15/Reshape_15"], "attr": {"out_type": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/reshape_1/strided_slice", "op": "StridedSlice", "input": ["StatefulPartitionedCall/yamnet_frames/reshape_1/Shape", "StatefulPartitionedCall/yamnet_frames/reshape_1/strided_slice/stack", "StatefulPartitionedCall/yamnet_frames/reshape_1/strided_slice/stack_1", "StatefulPartitionedCall/yamnet_frames/reshape_1/strided_slice/stack_2"], "attr": {"new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/reshape_1/Reshape/shape", "op": "Pack", "input": ["StatefulPartitionedCall/yamnet_frames/reshape_1/strided_slice", "StatefulPartitionedCall/yamnet_frames/reshape_1/Reshape/shape/1", "StatefulPartitionedCall/yamnet_frames/reshape_1/Reshape/shape/2", "StatefulPartitionedCall/yamnet_frames/reshape_1/Reshape/shape/3"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "4"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/reshape_1/Reshape", "op": "Reshape", "input": ["StatefulPartitionedCall/yamnet_frames/tf_op_layer_GatherV2_3/GatherV2_3", "StatefulPartitionedCall/yamnet_frames/reshape_1/Reshape/shape"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer1/relu/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/yamnet_frames/reshape_1/Reshape", "StatefulPartitionedCall/yamnet_frames/layer1/conv/Conv2D_weights", "StatefulPartitionedCall/yamnet_frames/layer1/conv/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer2/depthwise_conv/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["StatefulPartitionedCall/yamnet_frames/layer1/relu/Relu", "StatefulPartitionedCall/yamnet_frames/layer2/depthwise_conv/depthwise_weights", "StatefulPartitionedCall/yamnet_frames/layer2/depthwise_conv/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer2/pointwise_conv/relu/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/yamnet_frames/layer2/depthwise_conv/depthwise", "StatefulPartitionedCall/yamnet_frames/layer2/pointwise_conv/Conv2D_weights", "StatefulPartitionedCall/yamnet_frames/layer2/pointwise_conv/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer3/depthwise_conv/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["StatefulPartitionedCall/yamnet_frames/layer2/pointwise_conv/relu/Relu", "StatefulPartitionedCall/yamnet_frames/layer3/depthwise_conv/depthwise_weights", "StatefulPartitionedCall/yamnet_frames/layer3/depthwise_conv/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer3/pointwise_conv/relu/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/yamnet_frames/layer3/depthwise_conv/depthwise", "StatefulPartitionedCall/yamnet_frames/layer3/pointwise_conv/Conv2D_weights", "StatefulPartitionedCall/yamnet_frames/layer3/pointwise_conv/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer4/depthwise_conv/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["StatefulPartitionedCall/yamnet_frames/layer3/pointwise_conv/relu/Relu", "StatefulPartitionedCall/yamnet_frames/layer4/depthwise_conv/depthwise_weights", "StatefulPartitionedCall/yamnet_frames/layer4/depthwise_conv/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer4/pointwise_conv/relu/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/yamnet_frames/layer4/depthwise_conv/depthwise", "StatefulPartitionedCall/yamnet_frames/layer4/pointwise_conv/Conv2D_weights", "StatefulPartitionedCall/yamnet_frames/layer4/pointwise_conv/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer5/depthwise_conv/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["StatefulPartitionedCall/yamnet_frames/layer4/pointwise_conv/relu/Relu", "StatefulPartitionedCall/yamnet_frames/layer5/depthwise_conv/depthwise_weights", "StatefulPartitionedCall/yamnet_frames/layer5/depthwise_conv/depthwise_bn_offset"], "attr": {"explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer5/pointwise_conv/relu/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/yamnet_frames/layer5/depthwise_conv/depthwise", "StatefulPartitionedCall/yamnet_frames/layer5/pointwise_conv/Conv2D_weights", "StatefulPartitionedCall/yamnet_frames/layer5/pointwise_conv/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer6/depthwise_conv/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["StatefulPartitionedCall/yamnet_frames/layer5/pointwise_conv/relu/Relu", "StatefulPartitionedCall/yamnet_frames/layer6/depthwise_conv/depthwise_weights", "StatefulPartitionedCall/yamnet_frames/layer6/depthwise_conv/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer6/pointwise_conv/relu/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/yamnet_frames/layer6/depthwise_conv/depthwise", "StatefulPartitionedCall/yamnet_frames/layer6/pointwise_conv/Conv2D_weights", "StatefulPartitionedCall/yamnet_frames/layer6/pointwise_conv/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer7/depthwise_conv/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["StatefulPartitionedCall/yamnet_frames/layer6/pointwise_conv/relu/Relu", "StatefulPartitionedCall/yamnet_frames/layer7/depthwise_conv/depthwise_weights", "StatefulPartitionedCall/yamnet_frames/layer7/depthwise_conv/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer7/pointwise_conv/relu/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/yamnet_frames/layer7/depthwise_conv/depthwise", "StatefulPartitionedCall/yamnet_frames/layer7/pointwise_conv/Conv2D_weights", "StatefulPartitionedCall/yamnet_frames/layer7/pointwise_conv/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer8/depthwise_conv/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["StatefulPartitionedCall/yamnet_frames/layer7/pointwise_conv/relu/Relu", "StatefulPartitionedCall/yamnet_frames/layer8/depthwise_conv/depthwise_weights", "StatefulPartitionedCall/yamnet_frames/layer8/depthwise_conv/depthwise_bn_offset"], "attr": {"padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer8/pointwise_conv/relu/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/yamnet_frames/layer8/depthwise_conv/depthwise", "StatefulPartitionedCall/yamnet_frames/layer8/pointwise_conv/Conv2D_weights", "StatefulPartitionedCall/yamnet_frames/layer8/pointwise_conv/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer9/depthwise_conv/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["StatefulPartitionedCall/yamnet_frames/layer8/pointwise_conv/relu/Relu", "StatefulPartitionedCall/yamnet_frames/layer9/depthwise_conv/depthwise_weights", "StatefulPartitionedCall/yamnet_frames/layer9/depthwise_conv/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer9/pointwise_conv/relu/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/yamnet_frames/layer9/depthwise_conv/depthwise", "StatefulPartitionedCall/yamnet_frames/layer9/pointwise_conv/Conv2D_weights", "StatefulPartitionedCall/yamnet_frames/layer9/pointwise_conv/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer10/depthwise_conv/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["StatefulPartitionedCall/yamnet_frames/layer9/pointwise_conv/relu/Relu", "StatefulPartitionedCall/yamnet_frames/layer10/depthwise_conv/depthwise_weights", "StatefulPartitionedCall/yamnet_frames/layer10/depthwise_conv/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer10/pointwise_conv/relu/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/yamnet_frames/layer10/depthwise_conv/depthwise", "StatefulPartitionedCall/yamnet_frames/layer10/pointwise_conv/Conv2D_weights", "StatefulPartitionedCall/yamnet_frames/layer10/pointwise_conv/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer11/depthwise_conv/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["StatefulPartitionedCall/yamnet_frames/layer10/pointwise_conv/relu/Relu", "StatefulPartitionedCall/yamnet_frames/layer11/depthwise_conv/depthwise_weights", "StatefulPartitionedCall/yamnet_frames/layer11/depthwise_conv/depthwise_bn_offset"], "attr": {"data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer11/pointwise_conv/relu/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/yamnet_frames/layer11/depthwise_conv/depthwise", "StatefulPartitionedCall/yamnet_frames/layer11/pointwise_conv/Conv2D_weights", "StatefulPartitionedCall/yamnet_frames/layer11/pointwise_conv/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer12/depthwise_conv/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["StatefulPartitionedCall/yamnet_frames/layer11/pointwise_conv/relu/Relu", "StatefulPartitionedCall/yamnet_frames/layer12/depthwise_conv/depthwise_weights", "StatefulPartitionedCall/yamnet_frames/layer12/depthwise_conv/depthwise_bn_offset"], "attr": {"num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer12/pointwise_conv/relu/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/yamnet_frames/layer12/depthwise_conv/depthwise", "StatefulPartitionedCall/yamnet_frames/layer12/pointwise_conv/Conv2D_weights", "StatefulPartitionedCall/yamnet_frames/layer12/pointwise_conv/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer13/depthwise_conv/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["StatefulPartitionedCall/yamnet_frames/layer12/pointwise_conv/relu/Relu", "StatefulPartitionedCall/yamnet_frames/layer13/depthwise_conv/depthwise_weights", "StatefulPartitionedCall/yamnet_frames/layer13/depthwise_conv/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer13/pointwise_conv/relu/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/yamnet_frames/layer13/depthwise_conv/depthwise", "StatefulPartitionedCall/yamnet_frames/layer13/pointwise_conv/Conv2D_weights", "StatefulPartitionedCall/yamnet_frames/layer13/pointwise_conv/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer14/depthwise_conv/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["StatefulPartitionedCall/yamnet_frames/layer13/pointwise_conv/relu/Relu", "StatefulPartitionedCall/yamnet_frames/layer14/depthwise_conv/depthwise_weights", "StatefulPartitionedCall/yamnet_frames/layer14/depthwise_conv/depthwise_bn_offset"], "attr": {"data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/layer14/pointwise_conv/relu/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/yamnet_frames/layer14/depthwise_conv/depthwise", "StatefulPartitionedCall/yamnet_frames/layer14/pointwise_conv/Conv2D_weights", "StatefulPartitionedCall/yamnet_frames/layer14/pointwise_conv/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/global_average_pooling2d_1/Mean", "op": "Mean", "input": ["StatefulPartitionedCall/yamnet_frames/layer14/pointwise_conv/relu/Relu", "StatefulPartitionedCall/yamnet_frames/global_average_pooling2d_1/Mean/reduction_indices"], "attr": {"T": {"type": "DT_FLOAT"}, "Tidx": {"type": "DT_INT32"}, "keep_dims": {"b": false}}}, {"name": "Identity_1", "op": "Identity", "input": ["StatefulPartitionedCall/yamnet_frames/global_average_pooling2d_1/Mean"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/yamnet_frames/dense_1/BiasAdd", "op": "_FusedMatMul", "input": ["StatefulPartitionedCall/yamnet_frames/global_average_pooling2d_1/Mean", "unknown_134", "unknown_135"], "device": "/device:CPU:0", "attr": {"transpose_a": {"b": false}, "transpose_b": {"b": false}, "T": {"type": "DT_FLOAT"}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "StatefulPartitionedCall/yamnet_frames/activation_1/Sigmoid", "op": "Sigmoid", "input": ["StatefulPartitionedCall/yamnet_frames/dense_1/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Identity", "op": "Identity", "input": ["StatefulPartitionedCall/yamnet_frames/activation_1/Sigmoid"], "attr": {"T": {"type": "DT_FLOAT"}}}], "library": {}, "versions": {"producer": 440}}, "weightsManifest": [{"paths": ["group1-shard1of4.bin", "group1-shard2of4.bin", "group1-shard3of4.bin", "group1-shard4of4.bin"], "weights": [{"name": "unknown_134", "shape": [1024, 521], "dtype": "float32"}, {"name": "unknown_135", "shape": [521], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_12/Mul_12/y", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_9/concat_9/axis", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_8/FloorDiv_8/y", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_10/values_1/concat_10/values_1/1", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_10/concat_10/axis", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Range_3/Range_3/start", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Range_3/Range_3/delta", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_14/shape/Reshape_14/shape/1", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_11/AddV2_11/y", "shape": [1, 2], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_GatherV2_3/GatherV2_3/axis", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_7/Maximum_7/x", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_10/AddV2_10/x", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_12/Reshape_12/shape", "shape": [0], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_12/Sub_12/y", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_7/FloorDiv_7/y", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_11/values_1/Sub_12/y", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_3/split_3/size_splits", "shape": [3], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_3/split_3/split_dim", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_11/concat_11/axis", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/reshape_1/strided_slice/stack", "shape": [1], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/reshape_1/strided_slice/stack_1", "shape": [1], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/reshape_1/strided_slice/stack_2", "shape": [1], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/reshape_1/Reshape/shape/1", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/reshape_1/Reshape/shape/2", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/reshape_1/Reshape/shape/3", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/global_average_pooling2d_1/Mean/reduction_indices", "shape": [2], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_MatMul_1/MatMul_1/b", "shape": [512, 257], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_3/paddings/Pad_3/paddings/0_1", "shape": [2], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_10/Sub_10/x", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_9/Sub_9/x", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_7/Mul_7/y", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_6/concat_6/axis", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_5/FloorDiv_5/y", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_7/values_1/concat_7/values_1/1", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_7/concat_7/axis", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Range_2/Range_2/start", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Range_2/Range_2/delta", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_8/Mul_8/y", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_10/shape/Reshape_10/shape/1", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_8/AddV2_8/y", "shape": [1, 5], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_GatherV2_2/GatherV2_2/axis", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_6/Maximum_6/x", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_7/AddV2_7/x", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Reshape_8/Reshape_8/shape", "shape": [0], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_8/Sub_8/y", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_4/FloorDiv_4/y", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_8/values_1/Sub_8/y", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_2/paddings/0/Pad_2/paddings/0/0", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_4/Maximum_4/x", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_5/Sub_5/x", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_6/Mul_6/x", "shape": [], "dtype": "int32"}, {"name": "ConstantFolding/StatefulPartitionedCall/yamnet_frames/tf_op_layer_RealDiv_1/RealDiv_1_recip", "shape": [], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_1/strided_slice_1/begin", "shape": [1], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_1/strided_slice_1/end", "shape": [1], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_1/strided_slice_1/strides", "shape": [1], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Maximum_5/Sub_5/x", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Sub_6/Sub_5/x", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_2/split_2/size_splits", "shape": [3], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_split_2/split_2/split_dim", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_8/concat_8/axis", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Mul_9/Mul_9/y", "shape": [1, 400], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_2/strided_slice_2/begin", "shape": [1], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_2/strided_slice_2/end", "shape": [1], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_strided_slice_2/strided_slice_2/strides", "shape": [1], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_FloorDiv_6/FloorDiv_6/y", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_MatMul_2/MatMul_2/b", "shape": [512, 257], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_MatMul_3/MatMul_3/b", "shape": [257, 64], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_AddV2_9/AddV2_9/y", "shape": [], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer1/conv/Conv2D_weights", "shape": [3, 3, 1, 32], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer12/pointwise_conv/Conv2D_bn_offset", "shape": [512], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer1/conv/Conv2D_bn_offset", "shape": [32], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer2/depthwise_conv/depthwise_weights", "shape": [3, 3, 32, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer2/depthwise_conv/depthwise_bn_offset", "shape": [32], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer2/pointwise_conv/Conv2D_weights", "shape": [1, 1, 32, 64], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer2/pointwise_conv/Conv2D_bn_offset", "shape": [64], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer13/depthwise_conv/depthwise_weights", "shape": [3, 3, 512, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer3/depthwise_conv/depthwise_weights", "shape": [3, 3, 64, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer3/depthwise_conv/depthwise_bn_offset", "shape": [64], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer3/pointwise_conv/Conv2D_weights", "shape": [1, 1, 64, 128], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer3/pointwise_conv/Conv2D_bn_offset", "shape": [128], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer13/depthwise_conv/depthwise_bn_offset", "shape": [512], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer4/depthwise_conv/depthwise_weights", "shape": [3, 3, 128, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer4/depthwise_conv/depthwise_bn_offset", "shape": [128], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer4/pointwise_conv/Conv2D_weights", "shape": [1, 1, 128, 128], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer4/pointwise_conv/Conv2D_bn_offset", "shape": [128], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer5/depthwise_conv/depthwise_weights", "shape": [3, 3, 128, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer5/depthwise_conv/depthwise_bn_offset", "shape": [128], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer5/pointwise_conv/Conv2D_weights", "shape": [1, 1, 128, 256], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer13/pointwise_conv/Conv2D_weights", "shape": [1, 1, 512, 1024], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer5/pointwise_conv/Conv2D_bn_offset", "shape": [256], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer6/depthwise_conv/depthwise_weights", "shape": [3, 3, 256, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer6/depthwise_conv/depthwise_bn_offset", "shape": [256], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer6/pointwise_conv/Conv2D_weights", "shape": [1, 1, 256, 256], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer13/pointwise_conv/Conv2D_bn_offset", "shape": [1024], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer6/pointwise_conv/Conv2D_bn_offset", "shape": [256], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer7/depthwise_conv/depthwise_weights", "shape": [3, 3, 256, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer7/depthwise_conv/depthwise_bn_offset", "shape": [256], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer7/pointwise_conv/Conv2D_weights", "shape": [1, 1, 256, 512], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer7/pointwise_conv/Conv2D_bn_offset", "shape": [512], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer14/depthwise_conv/depthwise_weights", "shape": [3, 3, 1024, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer8/depthwise_conv/depthwise_weights", "shape": [3, 3, 512, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer8/depthwise_conv/depthwise_bn_offset", "shape": [512], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer8/pointwise_conv/Conv2D_weights", "shape": [1, 1, 512, 512], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer8/pointwise_conv/Conv2D_bn_offset", "shape": [512], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer14/depthwise_conv/depthwise_bn_offset", "shape": [1024], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer9/depthwise_conv/depthwise_weights", "shape": [3, 3, 512, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer9/depthwise_conv/depthwise_bn_offset", "shape": [512], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer9/pointwise_conv/Conv2D_weights", "shape": [1, 1, 512, 512], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer9/pointwise_conv/Conv2D_bn_offset", "shape": [512], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer10/depthwise_conv/depthwise_weights", "shape": [3, 3, 512, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer10/depthwise_conv/depthwise_bn_offset", "shape": [512], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer10/pointwise_conv/Conv2D_weights", "shape": [1, 1, 512, 512], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer14/pointwise_conv/Conv2D_weights", "shape": [1, 1, 1024, 1024], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer10/pointwise_conv/Conv2D_bn_offset", "shape": [512], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer11/depthwise_conv/depthwise_weights", "shape": [3, 3, 512, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer11/depthwise_conv/depthwise_bn_offset", "shape": [512], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer11/pointwise_conv/Conv2D_weights", "shape": [1, 1, 512, 512], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer14/pointwise_conv/Conv2D_bn_offset", "shape": [1024], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer11/pointwise_conv/Conv2D_bn_offset", "shape": [512], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer12/depthwise_conv/depthwise_weights", "shape": [3, 3, 512, 1], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer12/depthwise_conv/depthwise_bn_offset", "shape": [512], "dtype": "float32"}, {"name": "StatefulPartitionedCall/yamnet_frames/layer12/pointwise_conv/Conv2D_weights", "shape": [1, 1, 512, 512], "dtype": "float32"}, {"name": "ConstantFolding/StatefulPartitionedCall/yamnet_frames/tf_op_layer_Pad_2/paddings/Pad_2/paddings_const_axis", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_ZerosLike_2/ZerosLike_2", "shape": [1], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Fill_2/Fill_2", "shape": [1], "dtype": "int32"}, {"name": "ConstantFolding/StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_6/values_1/concat_6/values_1_const_axis", "shape": [], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_ZerosLike_3/ZerosLike_3", "shape": [2], "dtype": "int32"}, {"name": "StatefulPartitionedCall/yamnet_frames/tf_op_layer_Fill_3/Fill_3", "shape": [2], "dtype": "int32"}, {"name": "ConstantFolding/StatefulPartitionedCall/yamnet_frames/tf_op_layer_concat_9/values_1/concat_9/values_1_const_axis", "shape": [], "dtype": "int32"}]}]}