diff --git a/.gitignore b/.gitignore index fad60ef25..26eb04ecf 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,4 @@ public/sw.js.map public/worker-*.js public/worker-*.js.map +thirdparty/blazeface \ No newline at end of file diff --git a/package.json b/package.json index f75ed3afb..4df70e6e0 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,12 @@ "@ffmpeg/ffmpeg": "^0.10.1", "@sentry/nextjs": "^6.7.1", "@stripe/stripe-js": "^1.13.2", + "@tensorflow-models/blazeface": "./thirdparty/blazeface", + "@tensorflow/tfjs": "^3.11.0", + "@tensorflow/tfjs-backend-wasm": "^3.11.0", + "@tensorflow/tfjs-backend-webgl": "^3.11.0", + "@tensorflow/tfjs-converter": "^3.11.0", + "@tensorflow/tfjs-core": "^3.11.0", "@typescript-eslint/eslint-plugin": "^4.25.0", "@typescript-eslint/parser": "^4.25.0", "axios": "^0.21.3", diff --git a/public/models/blazeface/back/group1-shard1of1.bin b/public/models/blazeface/back/group1-shard1of1.bin new file mode 100644 index 000000000..86b4b3231 Binary files /dev/null and b/public/models/blazeface/back/group1-shard1of1.bin differ diff --git a/public/models/blazeface/back/model.json b/public/models/blazeface/back/model.json new file mode 100644 index 000000000..981aab6e8 --- /dev/null +++ b/public/models/blazeface/back/model.json @@ -0,0 +1 @@ +{"format": "graph-model", "generatedBy": "2.3.0", "convertedBy": "TensorFlow.js Converter v2.3.0", "userDefinedMetadata": {"signature": {"inputs": {"input:0": {"name": "input:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "256"}, {"size": "256"}, {"size": "3"}]}}}, "outputs": {"Identity_3:0": {"name": "Identity_3:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "384"}, {"size": "16"}]}}, "Identity:0": {"name": "Identity:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "512"}, {"size": "1"}]}}, "Identity_1:0": {"name": "Identity_1:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "384"}, {"size": "1"}]}}, "Identity_2:0": {"name": "Identity_2:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "512"}, {"size": "16"}]}}}}}, "modelTopology": {"node": [{"name": "unknown_135", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "96"}, {"size": "2"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_136", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "2"}]}}}}}, {"name": "StatefulPartitionedCall/functional_1/tf_op_layer_classificators_1/classificators_1/shape", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "3"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "unknown_133", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "96"}, {"size": "6"}]}}}}}, {"name": "unknown_134", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "6"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/tf_op_layer_classificators_2/classificators_2/shape", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "3"}]}}}}}, {"name": "unknown_131", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "96"}, {"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_132", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/tf_op_layer_regressors_1/regressors_1/shape", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "3"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "unknown_93", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "48"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_95", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "48"}, {"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_96", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_61", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "24"}, {"size": "1"}]}}}}}, {"name": "unknown_63", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "24"}, {"size": "48"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_64", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "48"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_57", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "24"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_59", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "24"}, {"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_60", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_53", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "24"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_55", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "24"}, {"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_56", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_49", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "24"}, {"size": "1"}]}}}}}, {"name": "unknown_51", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "24"}, {"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_52", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}}}, {"name": "unknown_29", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "24"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_31", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "24"}, {"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_32", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}}}, {"name": "unknown", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "5"}, {"size": "5"}, {"size": "3"}, {"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_0", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_1", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "24"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_3", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "24"}, {"size": "24"}]}}}}}, {"name": "unknown_4", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_5", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "24"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_7", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "24"}, {"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_8", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}}}, {"name": "unknown_9", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "24"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_11", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "24"}, {"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_12", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_13", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "24"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_15", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "24"}, {"size": "24"}]}}}}}, {"name": "unknown_16", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_17", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "24"}, {"size": "1"}]}}}}}, {"name": "unknown_19", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "24"}, {"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_20", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}}}, {"name": "unknown_21", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "24"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_23", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "24"}, {"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_24", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}}}, {"name": "unknown_25", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "24"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_27", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "24"}, {"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_28", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_33", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "24"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_35", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "24"}, {"size": "24"}]}}}}}, {"name": "unknown_36", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_37", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "24"}, {"size": "1"}]}}}}}, {"name": "unknown_39", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "24"}, {"size": "24"}]}}}}}, {"name": "unknown_40", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_41", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "24"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_43", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "24"}, {"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_44", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_45", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "24"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_47", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "24"}, {"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_48", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/tf_op_layer_Pad/Pad/paddings", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "unknown_65", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "48"}, {"size": "1"}]}}}}}, {"name": "unknown_67", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "48"}, {"size": "48"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_68", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "48"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_69", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "48"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_71", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "48"}, {"size": "48"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_72", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "48"}]}}}}}, {"name": "unknown_73", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "48"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_75", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "48"}, {"size": "48"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_76", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "48"}]}}}}}, {"name": "unknown_77", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "48"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_79", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "48"}, {"size": "48"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_80", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "48"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_81", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "48"}, {"size": "1"}]}}}}}, {"name": "unknown_83", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "48"}, {"size": "48"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_84", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "48"}]}}}}}, {"name": "unknown_85", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "48"}, {"size": "1"}]}}}}}, {"name": "unknown_87", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "48"}, {"size": "48"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_88", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "48"}]}}}}}, {"name": "unknown_89", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "48"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_91", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "48"}, {"size": "48"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_92", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "48"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/tf_op_layer_Pad_1/Pad_1/paddings", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "unknown_97", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "96"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_99", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "96"}, {"size": "96"}]}}}}}, {"name": "unknown_100", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_101", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "96"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_103", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "96"}, {"size": "96"}]}}}}}, {"name": "unknown_104", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_105", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "96"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_107", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "96"}, {"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_108", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_109", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "96"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_111", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "96"}, {"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_112", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_113", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "96"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_115", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "96"}, {"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_116", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_117", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "96"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_119", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "96"}, {"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_120", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "96"}]}}}}}, {"name": "unknown_121", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "96"}, {"size": "1"}]}}}}}, {"name": "unknown_123", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "96"}, {"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_124", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_125", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "96"}, {"size": "1"}]}}}}}, {"name": "unknown_127", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "96"}, {"size": "96"}]}}}}}, {"name": "unknown_128", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_129", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "96"}, {"size": "96"}]}}}}}, {"name": "unknown_130", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/tf_op_layer_regressors_2/regressors_2/shape", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "3"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "input", "op": "Placeholder", "attr": {"dtype": {"type": "DT_FLOAT"}, "shape": {"shape": {"dim": [{"size": "1"}, {"size": "256"}, {"size": "256"}, {"size": "3"}]}}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d/Relu", "op": "_FusedConv2D", "input": ["input", "unknown", "unknown_0"], "device": "/device:CPU:0", "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": {}}, "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/functional_1/depthwise_conv2d/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/conv2d/Relu", "unknown_1"], "attr": {"data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "padding": {"s": "U0FNRQ=="}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_1/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d/depthwise", "unknown_3", "unknown_4"], "device": "/device:CPU:0", "attr": {"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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "StatefulPartitionedCall/functional_1/add/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/conv2d/Relu", "StatefulPartitionedCall/functional_1/conv2d_1/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_1/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu/Relu", "unknown_5"], "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": {}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_2/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_1/depthwise", "unknown_7", "unknown_8"], "device": "/device:CPU:0", "attr": {"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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/add_1/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu/Relu", "StatefulPartitionedCall/functional_1/conv2d_2/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_1/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_1/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_2/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_1/Relu", "unknown_9"], "attr": {"data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "padding": {"s": "U0FNRQ=="}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_3/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_2/depthwise", "unknown_11", "unknown_12"], "device": "/device:CPU:0", "attr": {"epsilon": {"f": 0.0}, "padding": {"s": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "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"}}}, {"name": "StatefulPartitionedCall/functional_1/add_2/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_1/Relu", "StatefulPartitionedCall/functional_1/conv2d_3/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_2/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_2/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_3/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_2/Relu", "unknown_13"], "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": {}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_4/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_3/depthwise", "unknown_15", "unknown_16"], "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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "StatefulPartitionedCall/functional_1/add_3/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_2/Relu", "StatefulPartitionedCall/functional_1/conv2d_4/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_3/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_3/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_4/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_3/Relu", "unknown_17"], "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": {}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_5/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_4/depthwise", "unknown_19", "unknown_20"], "device": "/device:CPU:0", "attr": {"fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "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": "VkFMSUQ="}}}, {"name": "StatefulPartitionedCall/functional_1/add_4/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_3/Relu", "StatefulPartitionedCall/functional_1/conv2d_5/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_4/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_4/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_5/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_4/Relu", "unknown_21"], "attr": {"padding": {"s": "U0FNRQ=="}, "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/functional_1/conv2d_6/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_5/depthwise", "unknown_23", "unknown_24"], "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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "StatefulPartitionedCall/functional_1/add_5/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_4/Relu", "StatefulPartitionedCall/functional_1/conv2d_6/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_5/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_5/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_6/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_5/Relu", "unknown_25"], "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": {}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_7/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_6/depthwise", "unknown_27", "unknown_28"], "device": "/device:CPU:0", "attr": {"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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "StatefulPartitionedCall/functional_1/add_6/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_5/Relu", "StatefulPartitionedCall/functional_1/conv2d_7/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_6/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_6/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_7/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_6/Relu", "unknown_29"], "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": {}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/max_pooling2d/MaxPool", "op": "MaxPool", "input": ["StatefulPartitionedCall/functional_1/re_lu_6/Relu"], "attr": {"data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "ksize": {"list": {"i": ["1", "2", "2", "1"]}}, "padding": {"s": "U0FNRQ=="}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_8/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_7/depthwise", "unknown_31", "unknown_32"], "device": "/device:CPU:0", "attr": {"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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "StatefulPartitionedCall/functional_1/add_7/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/conv2d_8/BiasAdd", "StatefulPartitionedCall/functional_1/max_pooling2d/MaxPool"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_7/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_7/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_8/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_7/Relu", "unknown_33"], "attr": {"padding": {"s": "U0FNRQ=="}, "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": {}}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_9/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_8/depthwise", "unknown_35", "unknown_36"], "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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "StatefulPartitionedCall/functional_1/add_8/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_7/Relu", "StatefulPartitionedCall/functional_1/conv2d_9/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_8/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_8/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_9/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_8/Relu", "unknown_37"], "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": {}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_10/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_9/depthwise", "unknown_39", "unknown_40"], "device": "/device:CPU:0", "attr": {"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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/add_9/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_8/Relu", "StatefulPartitionedCall/functional_1/conv2d_10/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_9/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_9/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_10/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_9/Relu", "unknown_41"], "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": {}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_11/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_10/depthwise", "unknown_43", "unknown_44"], "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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "StatefulPartitionedCall/functional_1/add_10/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_9/Relu", "StatefulPartitionedCall/functional_1/conv2d_11/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_10/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_10/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_11/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_10/Relu", "unknown_45"], "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": {}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_12/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_11/depthwise", "unknown_47", "unknown_48"], "device": "/device:CPU:0", "attr": {"epsilon": {"f": 0.0}, "padding": {"s": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "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"}}}, {"name": "StatefulPartitionedCall/functional_1/add_11/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_10/Relu", "StatefulPartitionedCall/functional_1/conv2d_12/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_11/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_11/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_12/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_11/Relu", "unknown_49"], "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": {}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_13/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_12/depthwise", "unknown_51", "unknown_52"], "device": "/device:CPU:0", "attr": {"epsilon": {"f": 0.0}, "padding": {"s": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "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/functional_1/add_12/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/conv2d_13/BiasAdd", "StatefulPartitionedCall/functional_1/re_lu_11/Relu"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_12/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_12/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_13/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_12/Relu", "unknown_53"], "attr": {"data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "padding": {"s": "U0FNRQ=="}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_14/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_13/depthwise", "unknown_55", "unknown_56"], "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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "StatefulPartitionedCall/functional_1/add_13/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/conv2d_14/BiasAdd", "StatefulPartitionedCall/functional_1/re_lu_12/Relu"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_13/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_13/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_14/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_13/Relu", "unknown_57"], "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": {}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_15/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_14/depthwise", "unknown_59", "unknown_60"], "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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "StatefulPartitionedCall/functional_1/add_14/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/conv2d_15/BiasAdd", "StatefulPartitionedCall/functional_1/re_lu_13/Relu"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_14/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_14/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_15/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_14/Relu", "unknown_61"], "attr": {"T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "explicit_paddings": {"list": {}}, "padding": {"s": "U0FNRQ=="}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "StatefulPartitionedCall/functional_1/max_pooling2d_1/MaxPool", "op": "MaxPool", "input": ["StatefulPartitionedCall/functional_1/re_lu_14/Relu"], "attr": {"data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "ksize": {"list": {"i": ["1", "2", "2", "1"]}}, "padding": {"s": "U0FNRQ=="}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_16/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_15/depthwise", "unknown_63", "unknown_64"], "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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "StatefulPartitionedCall/functional_1/tf_op_layer_Pad/Pad", "op": "Pad", "input": ["StatefulPartitionedCall/functional_1/max_pooling2d_1/MaxPool", "StatefulPartitionedCall/functional_1/tf_op_layer_Pad/Pad/paddings"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/functional_1/add_15/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/conv2d_16/BiasAdd", "StatefulPartitionedCall/functional_1/tf_op_layer_Pad/Pad"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_15/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_15/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_16/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_15/Relu", "unknown_65"], "attr": {"T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "padding": {"s": "U0FNRQ=="}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_17/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_16/depthwise", "unknown_67", "unknown_68"], "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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "StatefulPartitionedCall/functional_1/add_16/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_15/Relu", "StatefulPartitionedCall/functional_1/conv2d_17/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_16/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_16/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_17/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_16/Relu", "unknown_69"], "attr": {"padding": {"s": "U0FNRQ=="}, "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/functional_1/conv2d_18/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_17/depthwise", "unknown_71", "unknown_72"], "device": "/device:CPU:0", "attr": {"fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "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": "VkFMSUQ="}}}, {"name": "StatefulPartitionedCall/functional_1/add_17/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_16/Relu", "StatefulPartitionedCall/functional_1/conv2d_18/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_17/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_17/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_18/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_17/Relu", "unknown_73"], "attr": {"data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "padding": {"s": "U0FNRQ=="}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_19/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_18/depthwise", "unknown_75", "unknown_76"], "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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "StatefulPartitionedCall/functional_1/add_18/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_17/Relu", "StatefulPartitionedCall/functional_1/conv2d_19/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_18/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_18/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_19/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_18/Relu", "unknown_77"], "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": {}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_20/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_19/depthwise", "unknown_79", "unknown_80"], "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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "StatefulPartitionedCall/functional_1/add_19/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_18/Relu", "StatefulPartitionedCall/functional_1/conv2d_20/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_19/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_19/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_20/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_19/Relu", "unknown_81"], "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": {}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_21/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_20/depthwise", "unknown_83", "unknown_84"], "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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "StatefulPartitionedCall/functional_1/add_20/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_19/Relu", "StatefulPartitionedCall/functional_1/conv2d_21/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_20/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_20/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_21/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_20/Relu", "unknown_85"], "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": {}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_22/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_21/depthwise", "unknown_87", "unknown_88"], "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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "StatefulPartitionedCall/functional_1/add_21/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_20/Relu", "StatefulPartitionedCall/functional_1/conv2d_22/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_21/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_21/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_22/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_21/Relu", "unknown_89"], "attr": {"T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "padding": {"s": "U0FNRQ=="}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_23/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_22/depthwise", "unknown_91", "unknown_92"], "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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "StatefulPartitionedCall/functional_1/add_22/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_21/Relu", "StatefulPartitionedCall/functional_1/conv2d_23/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_22/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_22/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_23/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_22/Relu", "unknown_93"], "attr": {"padding": {"s": "U0FNRQ=="}, "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": {}}}}, {"name": "StatefulPartitionedCall/functional_1/max_pooling2d_2/MaxPool", "op": "MaxPool", "input": ["StatefulPartitionedCall/functional_1/re_lu_22/Relu"], "attr": {"T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "ksize": {"list": {"i": ["1", "2", "2", "1"]}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_24/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_23/depthwise", "unknown_95", "unknown_96"], "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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "StatefulPartitionedCall/functional_1/tf_op_layer_Pad_1/Pad_1", "op": "Pad", "input": ["StatefulPartitionedCall/functional_1/max_pooling2d_2/MaxPool", "StatefulPartitionedCall/functional_1/tf_op_layer_Pad_1/Pad_1/paddings"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "_cloned": {"b": true}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/add_23/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/conv2d_24/BiasAdd", "StatefulPartitionedCall/functional_1/tf_op_layer_Pad_1/Pad_1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_23/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_23/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_24/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_23/Relu", "unknown_97"], "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": {}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_25/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_24/depthwise", "unknown_99", "unknown_100"], "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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "StatefulPartitionedCall/functional_1/add_24/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_23/Relu", "StatefulPartitionedCall/functional_1/conv2d_25/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_24/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_24/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_25/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_24/Relu", "unknown_101"], "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": {}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_26/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_25/depthwise", "unknown_103", "unknown_104"], "device": "/device:CPU:0", "attr": {"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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "StatefulPartitionedCall/functional_1/add_25/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_24/Relu", "StatefulPartitionedCall/functional_1/conv2d_26/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_25/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_25/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_26/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_25/Relu", "unknown_105"], "attr": {"padding": {"s": "U0FNRQ=="}, "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": {}}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_27/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_26/depthwise", "unknown_107", "unknown_108"], "device": "/device:CPU:0", "attr": {"epsilon": {"f": 0.0}, "padding": {"s": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "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/functional_1/add_26/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_25/Relu", "StatefulPartitionedCall/functional_1/conv2d_27/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_26/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_26/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_27/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_26/Relu", "unknown_109"], "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": {}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_28/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_27/depthwise", "unknown_111", "unknown_112"], "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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "StatefulPartitionedCall/functional_1/add_27/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_26/Relu", "StatefulPartitionedCall/functional_1/conv2d_28/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_27/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_27/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_28/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_27/Relu", "unknown_113"], "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": {}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_29/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_28/depthwise", "unknown_115", "unknown_116"], "device": "/device:CPU:0", "attr": {"fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "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": "VkFMSUQ="}}}, {"name": "StatefulPartitionedCall/functional_1/add_28/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_27/Relu", "StatefulPartitionedCall/functional_1/conv2d_29/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_28/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_28/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_29/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_28/Relu", "unknown_117"], "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": {}}, "padding": {"s": "U0FNRQ=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_30/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_29/depthwise", "unknown_119", "unknown_120"], "device": "/device:CPU:0", "attr": {"fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "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": "VkFMSUQ="}}}, {"name": "StatefulPartitionedCall/functional_1/add_29/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_28/Relu", "StatefulPartitionedCall/functional_1/conv2d_30/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_29/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_29/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/depthwise_conv2d_30/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_29/Relu", "unknown_121"], "attr": {"padding": {"s": "U0FNRQ=="}, "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": {}}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_31/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_30/depthwise", "unknown_123", "unknown_124"], "device": "/device:CPU:0", "attr": {"fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "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": "VkFMSUQ="}}}, {"name": "StatefulPartitionedCall/functional_1/add_30/add", "op": "AddV2", "input": ["StatefulPartitionedCall/functional_1/re_lu_29/Relu", "StatefulPartitionedCall/functional_1/conv2d_31/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_30/Relu", "op": "Relu", "input": ["StatefulPartitionedCall/functional_1/add_30/add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_33/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/re_lu_30/Relu", "unknown_135", "unknown_136"], "device": "/device:CPU:0", "attr": {"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=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_35/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/re_lu_30/Relu", "unknown_131", "unknown_132"], "device": "/device:CPU:0", "attr": {"epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "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/functional_1/depthwise_conv2d_31/depthwise", "op": "DepthwiseConv2dNative", "input": ["StatefulPartitionedCall/functional_1/re_lu_30/Relu", "unknown_125"], "attr": {"padding": {"s": "U0FNRQ=="}, "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": {}}}}, {"name": "StatefulPartitionedCall/functional_1/tf_op_layer_classificators_1/classificators_1", "op": "Reshape", "input": ["StatefulPartitionedCall/functional_1/conv2d_33/BiasAdd", "StatefulPartitionedCall/functional_1/tf_op_layer_classificators_1/classificators_1/shape"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/functional_1/tf_op_layer_regressors_1/regressors_1", "op": "Reshape", "input": ["StatefulPartitionedCall/functional_1/conv2d_35/BiasAdd", "StatefulPartitionedCall/functional_1/tf_op_layer_regressors_1/regressors_1/shape"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/functional_1/re_lu_31/Relu", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/depthwise_conv2d_31/depthwise", "unknown_127", "unknown_128"], "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": "VkFMSUQ="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}}}, {"name": "Identity", "op": "Identity", "input": ["StatefulPartitionedCall/functional_1/tf_op_layer_classificators_1/classificators_1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Identity_2", "op": "Identity", "input": ["StatefulPartitionedCall/functional_1/tf_op_layer_regressors_1/regressors_1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_36/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/re_lu_31/Relu", "unknown_129", "unknown_130"], "device": "/device:CPU:0", "attr": {"fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "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=="}}}, {"name": "StatefulPartitionedCall/functional_1/conv2d_34/BiasAdd", "op": "_FusedConv2D", "input": ["StatefulPartitionedCall/functional_1/re_lu_31/Relu", "unknown_133", "unknown_134"], "device": "/device:CPU:0", "attr": {"num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "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/functional_1/tf_op_layer_regressors_2/regressors_2", "op": "Reshape", "input": ["StatefulPartitionedCall/functional_1/conv2d_36/BiasAdd", "StatefulPartitionedCall/functional_1/tf_op_layer_regressors_2/regressors_2/shape"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}, "_cloned": {"b": true}}}, {"name": "StatefulPartitionedCall/functional_1/tf_op_layer_classificators_2/classificators_2", "op": "Reshape", "input": ["StatefulPartitionedCall/functional_1/conv2d_34/BiasAdd", "StatefulPartitionedCall/functional_1/tf_op_layer_classificators_2/classificators_2/shape"], "attr": {"_cloned": {"b": true}, "T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "Identity_3", "op": "Identity", "input": ["StatefulPartitionedCall/functional_1/tf_op_layer_regressors_2/regressors_2"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Identity_1", "op": "Identity", "input": ["StatefulPartitionedCall/functional_1/tf_op_layer_classificators_2/classificators_2"], "attr": {"T": {"type": "DT_FLOAT"}}}], "library": {}, "versions": {"producer": 440}}, "weightsManifest": [{"paths": ["group1-shard1of1.bin"], "weights": [{"name": "unknown_135", "shape": [1, 1, 96, 2], "dtype": "float32"}, {"name": "unknown_136", "shape": [2], "dtype": "float32"}, {"name": "StatefulPartitionedCall/functional_1/tf_op_layer_classificators_1/classificators_1/shape", "shape": [3], "dtype": "int32"}, {"name": "unknown_133", "shape": [1, 1, 96, 6], "dtype": "float32"}, {"name": "unknown_134", "shape": [6], "dtype": "float32"}, {"name": "StatefulPartitionedCall/functional_1/tf_op_layer_classificators_2/classificators_2/shape", "shape": [3], "dtype": "int32"}, {"name": "unknown_131", "shape": [1, 1, 96, 32], "dtype": "float32"}, {"name": "unknown_132", "shape": [32], "dtype": "float32"}, {"name": "StatefulPartitionedCall/functional_1/tf_op_layer_regressors_1/regressors_1/shape", "shape": [3], "dtype": "int32"}, {"name": "unknown_93", "shape": [3, 3, 48, 1], "dtype": "float32"}, {"name": "unknown_95", "shape": [1, 1, 48, 96], "dtype": "float32"}, {"name": "unknown_96", "shape": [96], "dtype": "float32"}, {"name": "unknown_61", "shape": [3, 3, 24, 1], "dtype": "float32"}, {"name": "unknown_63", "shape": [1, 1, 24, 48], "dtype": "float32"}, {"name": "unknown_64", "shape": [48], "dtype": "float32"}, {"name": "unknown_57", "shape": [3, 3, 24, 1], "dtype": "float32"}, {"name": "unknown_59", "shape": [1, 1, 24, 24], "dtype": "float32"}, {"name": "unknown_60", "shape": [24], "dtype": "float32"}, {"name": "unknown_53", "shape": [3, 3, 24, 1], "dtype": "float32"}, {"name": "unknown_55", "shape": [1, 1, 24, 24], "dtype": "float32"}, {"name": "unknown_56", "shape": [24], "dtype": "float32"}, {"name": "unknown_49", "shape": [3, 3, 24, 1], "dtype": "float32"}, {"name": "unknown_51", "shape": [1, 1, 24, 24], "dtype": "float32"}, {"name": "unknown_52", "shape": [24], "dtype": "float32"}, {"name": "unknown_29", "shape": [3, 3, 24, 1], "dtype": "float32"}, {"name": "unknown_31", "shape": [1, 1, 24, 24], "dtype": "float32"}, {"name": "unknown_32", "shape": [24], "dtype": "float32"}, {"name": "unknown", "shape": [5, 5, 3, 24], "dtype": "float32"}, {"name": "unknown_0", "shape": [24], "dtype": "float32"}, {"name": "unknown_1", "shape": [3, 3, 24, 1], "dtype": "float32"}, {"name": "unknown_3", "shape": [1, 1, 24, 24], "dtype": "float32"}, {"name": "unknown_4", "shape": [24], "dtype": "float32"}, {"name": "unknown_5", "shape": [3, 3, 24, 1], "dtype": "float32"}, {"name": "unknown_7", "shape": [1, 1, 24, 24], "dtype": "float32"}, {"name": "unknown_8", "shape": [24], "dtype": "float32"}, {"name": "unknown_9", "shape": [3, 3, 24, 1], "dtype": "float32"}, {"name": "unknown_11", "shape": [1, 1, 24, 24], "dtype": "float32"}, {"name": "unknown_12", "shape": [24], "dtype": "float32"}, {"name": "unknown_13", "shape": [3, 3, 24, 1], "dtype": "float32"}, {"name": "unknown_15", "shape": [1, 1, 24, 24], "dtype": "float32"}, {"name": "unknown_16", "shape": [24], "dtype": "float32"}, {"name": "unknown_17", "shape": [3, 3, 24, 1], "dtype": "float32"}, {"name": "unknown_19", "shape": [1, 1, 24, 24], "dtype": "float32"}, {"name": "unknown_20", "shape": [24], "dtype": "float32"}, {"name": "unknown_21", "shape": [3, 3, 24, 1], "dtype": "float32"}, {"name": "unknown_23", "shape": [1, 1, 24, 24], "dtype": "float32"}, {"name": "unknown_24", "shape": [24], "dtype": "float32"}, {"name": "unknown_25", "shape": [3, 3, 24, 1], "dtype": "float32"}, {"name": "unknown_27", "shape": [1, 1, 24, 24], "dtype": "float32"}, {"name": "unknown_28", "shape": [24], "dtype": "float32"}, {"name": "unknown_33", "shape": [3, 3, 24, 1], "dtype": "float32"}, {"name": "unknown_35", "shape": [1, 1, 24, 24], "dtype": "float32"}, {"name": "unknown_36", "shape": [24], "dtype": "float32"}, {"name": "unknown_37", "shape": [3, 3, 24, 1], "dtype": "float32"}, {"name": "unknown_39", "shape": [1, 1, 24, 24], "dtype": "float32"}, {"name": "unknown_40", "shape": [24], "dtype": "float32"}, {"name": "unknown_41", "shape": [3, 3, 24, 1], "dtype": "float32"}, {"name": "unknown_43", "shape": [1, 1, 24, 24], "dtype": "float32"}, {"name": "unknown_44", "shape": [24], "dtype": "float32"}, {"name": "unknown_45", "shape": [3, 3, 24, 1], "dtype": "float32"}, {"name": "unknown_47", "shape": [1, 1, 24, 24], "dtype": "float32"}, {"name": "unknown_48", "shape": [24], "dtype": "float32"}, {"name": "StatefulPartitionedCall/functional_1/tf_op_layer_Pad/Pad/paddings", "shape": [4, 2], "dtype": "int32"}, {"name": "unknown_65", "shape": [3, 3, 48, 1], "dtype": "float32"}, {"name": "unknown_67", "shape": [1, 1, 48, 48], "dtype": "float32"}, {"name": "unknown_68", "shape": [48], "dtype": "float32"}, {"name": "unknown_69", "shape": [3, 3, 48, 1], "dtype": "float32"}, {"name": "unknown_71", "shape": [1, 1, 48, 48], "dtype": "float32"}, {"name": "unknown_72", "shape": [48], "dtype": "float32"}, {"name": "unknown_73", "shape": [3, 3, 48, 1], "dtype": "float32"}, {"name": "unknown_75", "shape": [1, 1, 48, 48], "dtype": "float32"}, {"name": "unknown_76", "shape": [48], "dtype": "float32"}, {"name": "unknown_77", "shape": [3, 3, 48, 1], "dtype": "float32"}, {"name": "unknown_79", "shape": [1, 1, 48, 48], "dtype": "float32"}, {"name": "unknown_80", "shape": [48], "dtype": "float32"}, {"name": "unknown_81", "shape": [3, 3, 48, 1], "dtype": "float32"}, {"name": "unknown_83", "shape": [1, 1, 48, 48], "dtype": "float32"}, {"name": "unknown_84", "shape": [48], "dtype": "float32"}, {"name": "unknown_85", "shape": [3, 3, 48, 1], "dtype": "float32"}, {"name": "unknown_87", "shape": [1, 1, 48, 48], "dtype": "float32"}, {"name": "unknown_88", "shape": [48], "dtype": "float32"}, {"name": "unknown_89", "shape": [3, 3, 48, 1], "dtype": "float32"}, {"name": "unknown_91", "shape": [1, 1, 48, 48], "dtype": "float32"}, {"name": "unknown_92", "shape": [48], "dtype": "float32"}, {"name": "StatefulPartitionedCall/functional_1/tf_op_layer_Pad_1/Pad_1/paddings", "shape": [4, 2], "dtype": "int32"}, {"name": "unknown_97", "shape": [3, 3, 96, 1], "dtype": "float32"}, {"name": "unknown_99", "shape": [1, 1, 96, 96], "dtype": "float32"}, {"name": "unknown_100", "shape": [96], "dtype": "float32"}, {"name": "unknown_101", "shape": [3, 3, 96, 1], "dtype": "float32"}, {"name": "unknown_103", "shape": [1, 1, 96, 96], "dtype": "float32"}, {"name": "unknown_104", "shape": [96], "dtype": "float32"}, {"name": "unknown_105", "shape": [3, 3, 96, 1], "dtype": "float32"}, {"name": "unknown_107", "shape": [1, 1, 96, 96], "dtype": "float32"}, {"name": "unknown_108", "shape": [96], "dtype": "float32"}, {"name": "unknown_109", "shape": [3, 3, 96, 1], "dtype": "float32"}, {"name": "unknown_111", "shape": [1, 1, 96, 96], "dtype": "float32"}, {"name": "unknown_112", "shape": [96], "dtype": "float32"}, {"name": "unknown_113", "shape": [3, 3, 96, 1], "dtype": "float32"}, {"name": "unknown_115", "shape": [1, 1, 96, 96], "dtype": "float32"}, {"name": "unknown_116", "shape": [96], "dtype": "float32"}, {"name": "unknown_117", "shape": [3, 3, 96, 1], "dtype": "float32"}, {"name": "unknown_119", "shape": [1, 1, 96, 96], "dtype": "float32"}, {"name": "unknown_120", "shape": [96], "dtype": "float32"}, {"name": "unknown_121", "shape": [3, 3, 96, 1], "dtype": "float32"}, {"name": "unknown_123", "shape": [1, 1, 96, 96], "dtype": "float32"}, {"name": "unknown_124", "shape": [96], "dtype": "float32"}, {"name": "unknown_125", "shape": [3, 3, 96, 1], "dtype": "float32"}, {"name": "unknown_127", "shape": [1, 1, 96, 96], "dtype": "float32"}, {"name": "unknown_128", "shape": [96], "dtype": "float32"}, {"name": "unknown_129", "shape": [1, 1, 96, 96], "dtype": "float32"}, {"name": "unknown_130", "shape": [96], "dtype": "float32"}, {"name": "StatefulPartitionedCall/functional_1/tf_op_layer_regressors_2/regressors_2/shape", "shape": [3], "dtype": "int32"}]}]} \ No newline at end of file diff --git a/src/services/machineLearning/machineLearningService.ts b/src/services/machineLearning/machineLearningService.ts index fd73e67fb..f3892d134 100644 --- a/src/services/machineLearning/machineLearningService.ts +++ b/src/services/machineLearning/machineLearningService.ts @@ -1,9 +1,16 @@ import { MLSyncResult } from 'utils/machineLearning/types'; +import TFJSFaceDetectionService from './tfjsFaceDetectionService'; class MachineLearningService { - public constructor() {} + private faceDetectionService: TFJSFaceDetectionService; - public async init() {} + public constructor() { + this.faceDetectionService = new TFJSFaceDetectionService(); + } + + public async init() { + await this.faceDetectionService.init(); + } public async sync(token: string): Promise { if (!token) { diff --git a/src/services/machineLearning/tfjsFaceDetectionService.ts b/src/services/machineLearning/tfjsFaceDetectionService.ts new file mode 100644 index 000000000..8aab4a043 --- /dev/null +++ b/src/services/machineLearning/tfjsFaceDetectionService.ts @@ -0,0 +1,103 @@ +import { + load as blazeFaceLoad, + BlazeFaceModel, +} from '@tensorflow-models/blazeface'; +import * as tf from '@tensorflow/tfjs'; +import { AlignedFace } from 'utils/machineLearning/types'; + +class TFJSFaceDetectionService { + private blazeFaceModel: BlazeFaceModel; + private blazeFaceBackModel: tf.GraphModel; + + private desiredLeftEye = [0.3, 0.4]; + private desiredFaceWidth = 112; + private desiredFaceHeight = 112; + private minFacePixels = 50; + + public constructor() {} + + public async init() { + this.blazeFaceModel = await blazeFaceLoad({ + maxFaces: 10, + scoreThreshold: 0.5, + iouThreshold: 0.3, + modelUrl: '/models/blazeface/back/model.json', + inputHeight: 256, + inputWidth: 256, + }); + console.log( + 'loaded blazeFaceModel: ', + this.blazeFaceModel, + await tf.getBackend() + ); + } + + private getAlignedFace(normFace): AlignedFace { + const leftEye = normFace.landmarks[0]; + const rightEye = normFace.landmarks[1]; + // const noseTip = normFace.landmarks[2]; + + const dy = rightEye[1] - leftEye[1]; + const dx = rightEye[0] - leftEye[0]; + + const desiredRightEyeX = 1.0 - this.desiredLeftEye[0]; + + // const eyesCenterX = (leftEye[0] + rightEye[0]) / 2; + // const yaw = Math.abs(noseTip[0] - eyesCenterX) + const dist = Math.sqrt(dx * dx + dy * dy); + let desiredDist = desiredRightEyeX - this.desiredLeftEye[0]; + desiredDist *= this.desiredFaceWidth; + const scale = desiredDist / dist; + // console.log("scale: ", scale); + + const eyesCenter = []; + eyesCenter[0] = Math.floor((leftEye[0] + rightEye[0]) / 2); + eyesCenter[1] = Math.floor((leftEye[1] + rightEye[1]) / 2); + // console.log("eyesCenter: ", eyesCenter); + + const faceWidth = this.desiredFaceWidth / scale; + const faceHeight = this.desiredFaceHeight / scale; + // console.log("faceWidth: ", faceWidth, "faceHeight: ", faceHeight) + + const tx = eyesCenter[0] - faceWidth * 0.5; + const ty = eyesCenter[1] - faceHeight * this.desiredLeftEye[1]; + // console.log("tx: ", tx, "ty: ", ty); + + return { + ...normFace, + alignedBox: [tx, ty, tx + faceWidth, ty + faceHeight], + }; + } + + public async detectFaces(image: tf.Tensor3D) { + const resizedImage = tf.image.resizeBilinear(image, [256, 256]); + const reshapedImage = resizedImage.reshape([ + 1, + resizedImage.shape[0], + resizedImage.shape[1], + 3, + ]); + const normalizedImage = tf.sub(tf.div(reshapedImage, 127.5), 1.0); + const results = await this.blazeFaceBackModel.predict(normalizedImage); + // console.log('onFacesDetected: ', results); + return results; + } + + public async estimateFaces(image: tf.Tensor3D) { + const normalizedFaces = await this.blazeFaceModel.estimateFaces( + image as any + ); + const alignedFaces = normalizedFaces.map((normFace) => + this.getAlignedFace(normFace) + ); + const filtertedFaces = alignedFaces.filter((face) => { + return ( + face.alignedBox[2] - face.alignedBox[0] > this.minFacePixels && + face.alignedBox[3] - face.alignedBox[1] > this.minFacePixels + ); + }); + return filtertedFaces; + } +} + +export default TFJSFaceDetectionService; diff --git a/src/utils/machineLearning/types.ts b/src/utils/machineLearning/types.ts index 82e3b1d2e..2bc207a53 100644 --- a/src/utils/machineLearning/types.ts +++ b/src/utils/machineLearning/types.ts @@ -1,3 +1,9 @@ +import { NormalizedFace } from '@tensorflow-models/blazeface'; + export interface MLSyncResult { allFaces: number[][]; } + +export interface AlignedFace extends NormalizedFace { + alignedBox: [number, number, number, number]; +} diff --git a/yarn.lock b/yarn.lock index 143b09bb9..d937c7f91 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1380,6 +1380,85 @@ ejs "^2.6.1" magic-string "^0.25.0" +"@tensorflow-models/blazeface@./thirdparty/blazeface": + version "0.0.7-ente" + +"@tensorflow/tfjs-backend-cpu@3.11.0": + version "3.11.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.11.0.tgz#01d5d68b91faf12bee4854adae56bc956b794f1a" + integrity sha512-ShLkrZ4/rmhZwzGKenMFDfQnaEbyZgWA5F8JRa52Iob/vptlZeuOzjq87CZKmZMUmDswR9A2kjzovT/H1bJdWQ== + dependencies: + "@types/seedrandom" "2.4.27" + seedrandom "2.4.3" + +"@tensorflow/tfjs-backend-wasm@^3.11.0": + version "3.11.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-wasm/-/tfjs-backend-wasm-3.11.0.tgz#cd74d124648c16d094aa983180385ef9f21797a5" + integrity sha512-49+MSIa/tOelbr4J0Q+ZMuDGQiAaenUsy9exfaQvEo/FzjV+aitVB7r9IojLCxyB4cfAtqKUGHwmRoreJnN7jw== + dependencies: + "@tensorflow/tfjs-backend-cpu" "3.11.0" + "@types/emscripten" "~0.0.34" + +"@tensorflow/tfjs-backend-webgl@3.11.0", "@tensorflow/tfjs-backend-webgl@^3.11.0": + version "3.11.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.11.0.tgz#fbd7f24c164d17c11d964206b4b075b073b1a3bc" + integrity sha512-rNnc/dZ7LIl9O/Pn9W24I1h8kgpJ+XvG8NrdNSfIoWPCW4fvPSlU7B3yMeZXvRneny+z+T3xRs96nWyU2mZBJw== + dependencies: + "@tensorflow/tfjs-backend-cpu" "3.11.0" + "@types/offscreencanvas" "~2019.3.0" + "@types/seedrandom" "2.4.27" + "@types/webgl-ext" "0.0.30" + "@types/webgl2" "0.0.6" + seedrandom "2.4.3" + +"@tensorflow/tfjs-converter@3.11.0", "@tensorflow/tfjs-converter@^3.11.0": + version "3.11.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-converter/-/tfjs-converter-3.11.0.tgz#0842269a83599b52fd167a8a05372018a9a1ca6a" + integrity sha512-rTRIKvBoqL0qdPYpm8UXauZycOiaBHZB2E2v3OoXoHnjvle/Xn/09uZJdrixgGhR+Kahs3Vz27BEEFz6RI5j2w== + +"@tensorflow/tfjs-core@3.11.0", "@tensorflow/tfjs-core@^3.11.0": + version "3.11.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-3.11.0.tgz#1e3986533faaed922bbfc2fe86da506d0e9e5c79" + integrity sha512-JOp+1+LCd0Xg3hu7fu6iQPWZnN8Hc6ssfP7B+625XH5GYY1/OhVASa7Ahe2mJr9gZovY2lw8FUejLh1jMmBb1Q== + dependencies: + "@types/long" "^4.0.1" + "@types/offscreencanvas" "~2019.3.0" + "@types/seedrandom" "2.4.27" + "@types/webgl-ext" "0.0.30" + long "4.0.0" + node-fetch "~2.6.1" + seedrandom "2.4.3" + +"@tensorflow/tfjs-data@3.11.0": + version "3.11.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-data/-/tfjs-data-3.11.0.tgz#90dd23a7181f0a744f2882a12c3442b27047383d" + integrity sha512-+cUHUHzjM/zs0JVOwHQm9wP15Y+BZdRcUpMoYWia8r3kaGSyvoz6WqzacEP1PeXgJVnr2gtU3D+bF32th8fZfQ== + dependencies: + "@types/node-fetch" "^2.1.2" + node-fetch "~2.6.1" + +"@tensorflow/tfjs-layers@3.11.0": + version "3.11.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-layers/-/tfjs-layers-3.11.0.tgz#456d8dc3fe93937ced329d5d06310da294d3758c" + integrity sha512-BtLgLucJZHv5te1K3yjT3iZdHXgMJArrLuOb/oRPOtTp4R2ad5N0V2m5RtuZJ3sI5/ah0h72xtmTWNyTv3/5dw== + +"@tensorflow/tfjs@^3.11.0": + version "3.11.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs/-/tfjs-3.11.0.tgz#63d5231f41d57ca11b910664632a8e349eba3967" + integrity sha512-TTYrKdkoh1sHnt4vn6MboLbpi1Es4U1Aw+L3PqwadRvXW4+7ySUtc00McrQ+ooK0q3Qhl3N7cvgchgM7nED3Mg== + dependencies: + "@tensorflow/tfjs-backend-cpu" "3.11.0" + "@tensorflow/tfjs-backend-webgl" "3.11.0" + "@tensorflow/tfjs-converter" "3.11.0" + "@tensorflow/tfjs-core" "3.11.0" + "@tensorflow/tfjs-data" "3.11.0" + "@tensorflow/tfjs-layers" "3.11.0" + argparse "^1.0.10" + chalk "^4.1.0" + core-js "3" + regenerator-runtime "^0.13.5" + yargs "^16.0.3" + "@tokenizer/token@^0.3.0": version "0.3.0" resolved "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz" @@ -1390,6 +1469,11 @@ resolved "https://registry.npmjs.org/@types/debounce-promise/-/debounce-promise-3.1.4.tgz" integrity sha512-9SEVY3nsz+uMN2DwDocftB5TAgZe7D0cOzxxRhpotWs6T4QFqRaTXpXbOSzbk31/7iYcfCkJJPwWGzTxyuGhCg== +"@types/emscripten@~0.0.34": + version "0.0.34" + resolved "https://registry.yarnpkg.com/@types/emscripten/-/emscripten-0.0.34.tgz#12b4a344274fb102ff2f6c877b37587bc3e46008" + integrity sha512-QSb9ojDincskc+uKMI0KXp8e1NALFINCrMlp8VGKGcTSxeEyRTTKyjWw75NYrCZHUsVEEEpr1tYHpbtaC++/sQ== + "@types/estree@*": version "0.0.50" resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz" @@ -1443,11 +1527,24 @@ resolved "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.9.tgz" integrity sha512-LisgKLlYQk19baQwjkBZZXdJL0KbeTpdEnrAfz5hQACbklCY0gVFnsKUyjfNWF1UQsCSjw93Sj5jSbiO8RPfdw== +"@types/long@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" + integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + "@types/minimatch@*": version "3.0.5" resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== +"@types/node-fetch@^2.1.2": + version "2.5.12" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.12.tgz#8a6f779b1d4e60b7a57fb6fd48d84fb545b9cc66" + integrity sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + "@types/node@*": version "16.9.1" resolved "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz" @@ -1458,6 +1555,11 @@ resolved "https://registry.npmjs.org/@types/node/-/node-14.17.15.tgz" integrity sha512-D1sdW0EcSCmNdLKBGMYb38YsHUS6JcM7yQ6sLQ9KuZ35ck7LYCKE7kYFHOO59ayFOY3zobWVZxf4KXhYHcHYFA== +"@types/offscreencanvas@~2019.3.0": + version "2019.3.0" + resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz#3336428ec7e9180cf4566dfea5da04eb586a6553" + integrity sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" @@ -1559,6 +1661,11 @@ resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz" integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== +"@types/seedrandom@2.4.27": + version "2.4.27" + resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-2.4.27.tgz#9db563937dd86915f69092bc43259d2f48578e41" + integrity sha1-nbVjk33YaRX2kJK8QyWdL0hXjkE= + "@types/source-list-map@*": version "0.1.2" resolved "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz" @@ -1595,6 +1702,16 @@ resolved "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz" integrity sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI= +"@types/webgl-ext@0.0.30": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@types/webgl-ext/-/webgl-ext-0.0.30.tgz#0ce498c16a41a23d15289e0b844d945b25f0fb9d" + integrity sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg== + +"@types/webgl2@0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@types/webgl2/-/webgl2-0.0.6.tgz#1ea2db791362bd8521548d664dbd3c5311cdf4b6" + integrity sha512-50GQhDVTq/herLMiqSQkdtRu+d5q/cWHn4VvKJtrj4DJAjo1MNkWYa2MA41BaBO1q1HgsUjuQvEOk0QHvlnAaQ== + "@types/webpack-sources@*": version "3.2.0" resolved "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz" @@ -1820,7 +1937,7 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.6" -argparse@^1.0.7: +argparse@^1.0.10, argparse@^1.0.7: version "1.0.10" resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== @@ -1949,6 +2066,11 @@ async-limiter@~1.0.0: resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + attr-accept@^2.2.1: version "2.2.2" resolved "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz" @@ -2403,6 +2525,15 @@ cli-truncate@^2.1.0: slice-ansi "^3.0.0" string-width "^4.2.0" +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" @@ -2437,6 +2568,13 @@ colorette@^1.2.2, colorette@^1.3.0: resolved "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz" integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + comlink@^4.3.0: version "4.3.1" resolved "https://registry.npmjs.org/comlink/-/comlink-4.3.1.tgz" @@ -2541,6 +2679,11 @@ core-js-pure@^3.16.0: resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz" integrity sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ== +core-js@3: + version "3.19.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.19.1.tgz#f6f173cae23e73a7d88fa23b6e9da329276c6641" + integrity sha512-Tnc7E9iKd/b/ff7GFbhwPVzJzPztGrChB8X8GLqoYGdEOG8IpLnK1xPyo3ZoO3HsK6TodJS58VGPOxA+hLHQMg== + core-js@^2.4.0: version "2.6.12" resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" @@ -2738,6 +2881,11 @@ del@^4.1.1: pify "^4.0.1" rimraf "^2.6.3" +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + delegates@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" @@ -3428,6 +3576,15 @@ foreach@^2.0.5: resolved "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz" integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + formik@^2.1.5: version "2.2.9" resolved "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz" @@ -3499,6 +3656,11 @@ gensync@^1.0.0-beta.2: resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" @@ -4422,6 +4584,11 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" +long@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" @@ -4515,6 +4682,18 @@ mime-db@1.49.0: resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz" integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== +mime-db@1.50.0: + version "1.50.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" + integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== + +mime-types@^2.1.12: + version "2.1.33" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" + integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== + dependencies: + mime-db "1.50.0" + mime-types@~2.1.24: version "2.1.32" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz" @@ -4669,6 +4848,13 @@ node-fetch@^2.6.0, node-fetch@^2.6.1: resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.2.tgz" integrity sha512-aLoxToI6RfZ+0NOjmWAgn9+LEd30YCkJKFSyWacNZdEKTit/ZMcKjGkTRo8uWEsnIb/hfKecNPEbln02PdWbcA== +node-fetch@~2.6.1: + version "2.6.6" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.6.tgz#1751a7c01834e8e1697758732e9efb6eeadfaf89" + integrity sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA== + dependencies: + whatwg-url "^5.0.0" + node-forge@^0.10.0: version "0.10.0" resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz" @@ -5552,7 +5738,7 @@ regenerator-runtime@^0.11.0: resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: +regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.5, regenerator-runtime@^0.13.7: version "0.13.9" resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== @@ -5601,6 +5787,11 @@ regjsparser@^0.6.4: dependencies: jsesc "~0.5.0" +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" @@ -5759,6 +5950,11 @@ scrypt-js@^3.0.1: resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== +seedrandom@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.3.tgz#2438504dad33917314bff18ac4d794f16d6aaecc" + integrity sha1-JDhQTa0zkXMUv/GKxNeU8W1qrsw= + semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" @@ -6380,6 +6576,11 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + tryer@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz" @@ -6628,6 +6829,11 @@ watchpack@2.1.1: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz" @@ -6660,6 +6866,14 @@ webpack-sources@^1.3.0: source-list-map "^2.0.0" source-map "~0.6.1" +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + whatwg-url@^7.0.0: version "7.1.0" resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz" @@ -6969,6 +7183,11 @@ xtend@^4.0.0, xtend@^4.0.2: resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" @@ -6979,6 +7198,24 @@ yaml@^1.10.0: resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^16.0.3: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"