├── .gitignore ├── ImageClassify ├── cat.jpg ├── index.html ├── model │ ├── group1-shard1of5 │ ├── group1-shard2of5 │ ├── group1-shard3of5 │ ├── group1-shard4of5 │ ├── group1-shard5of5 │ └── model.json ├── package-lock.json └── package.json ├── README.md ├── TensorFlow.js.png ├── TensorFlow.js.xd ├── code ├── app.js ├── index.html ├── package-lock.json └── package.json └── ppt ├── tensorflowjs课程介绍.pptx └── 理解张量.pptx /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea 3 | node_modules 4 | -------------------------------------------------------------------------------- /ImageClassify/cat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plter/tfjs_quick_start_course_2020/7cc4afb4a29a87c8bc9addef703127d3785a7a13/ImageClassify/cat.jpg -------------------------------------------------------------------------------- /ImageClassify/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Title 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 35 | 36 | -------------------------------------------------------------------------------- /ImageClassify/model/group1-shard1of5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plter/tfjs_quick_start_course_2020/7cc4afb4a29a87c8bc9addef703127d3785a7a13/ImageClassify/model/group1-shard1of5 -------------------------------------------------------------------------------- /ImageClassify/model/group1-shard2of5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plter/tfjs_quick_start_course_2020/7cc4afb4a29a87c8bc9addef703127d3785a7a13/ImageClassify/model/group1-shard2of5 -------------------------------------------------------------------------------- /ImageClassify/model/group1-shard3of5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plter/tfjs_quick_start_course_2020/7cc4afb4a29a87c8bc9addef703127d3785a7a13/ImageClassify/model/group1-shard3of5 -------------------------------------------------------------------------------- /ImageClassify/model/group1-shard4of5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plter/tfjs_quick_start_course_2020/7cc4afb4a29a87c8bc9addef703127d3785a7a13/ImageClassify/model/group1-shard4of5 -------------------------------------------------------------------------------- /ImageClassify/model/group1-shard5of5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plter/tfjs_quick_start_course_2020/7cc4afb4a29a87c8bc9addef703127d3785a7a13/ImageClassify/model/group1-shard5of5 -------------------------------------------------------------------------------- /ImageClassify/model/model.json: -------------------------------------------------------------------------------- 1 | {"modelTopology": {"node": [{"attr": {"dtype": {"type": "DT_FLOAT"}, "shape": {"shape": {"dim": [{"size": "-1"}, {"size": "224"}, {"size": "224"}, {"size": "3"}]}}}, "name": "images", "op": "Placeholder"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}}, "name": "module_apply_default/hub_input/Mul/y", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}}, "name": "module_apply_default/hub_input/Sub/y", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "3"}, {"size": "32"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_0/Conv2D/merged_input", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_0/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "1"}]}}}}, "name": "module/MobilenetV1/Conv2d_1_depthwise/depthwise_weights", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/BatchNorm/FusedBatchNorm/Scaled", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "32"}, {"size": "64"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_pointwise/Conv2D/merged_input", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "64"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_pointwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "64"}, {"size": "1"}]}}}}, "name": "module/MobilenetV1/Conv2d_2_depthwise/depthwise_weights", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "64"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/BatchNorm/FusedBatchNorm/Scaled", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "64"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "64"}, {"size": "128"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_pointwise/Conv2D/merged_input", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_pointwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "128"}, {"size": "1"}]}}}}, "name": "module/MobilenetV1/Conv2d_3_depthwise/depthwise_weights", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/BatchNorm/FusedBatchNorm/Scaled", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "128"}, {"size": "128"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_pointwise/Conv2D/merged_input", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_pointwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "128"}, {"size": "1"}]}}}}, "name": "module/MobilenetV1/Conv2d_4_depthwise/depthwise_weights", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/BatchNorm/FusedBatchNorm/Scaled", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "128"}, {"size": "256"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_pointwise/Conv2D/merged_input", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_pointwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "256"}, {"size": "1"}]}}}}, "name": "module/MobilenetV1/Conv2d_5_depthwise/depthwise_weights", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/BatchNorm/FusedBatchNorm/Scaled", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "256"}, {"size": "256"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_pointwise/Conv2D/merged_input", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_pointwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "256"}, {"size": "1"}]}}}}, "name": "module/MobilenetV1/Conv2d_6_depthwise/depthwise_weights", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/BatchNorm/FusedBatchNorm/Scaled", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "256"}, {"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_pointwise/Conv2D/merged_input", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_pointwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "512"}, {"size": "1"}]}}}}, "name": "module/MobilenetV1/Conv2d_7_depthwise/depthwise_weights", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/BatchNorm/FusedBatchNorm/Scaled", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "512"}, {"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_pointwise/Conv2D/merged_input", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_pointwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "512"}, {"size": "1"}]}}}}, "name": "module/MobilenetV1/Conv2d_8_depthwise/depthwise_weights", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/BatchNorm/FusedBatchNorm/Scaled", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "512"}, {"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_pointwise/Conv2D/merged_input", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_pointwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "512"}, {"size": "1"}]}}}}, "name": "module/MobilenetV1/Conv2d_9_depthwise/depthwise_weights", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/BatchNorm/FusedBatchNorm/Scaled", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "512"}, {"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_pointwise/Conv2D/merged_input", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_pointwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "512"}, {"size": "1"}]}}}}, "name": "module/MobilenetV1/Conv2d_10_depthwise/depthwise_weights", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/BatchNorm/FusedBatchNorm/Scaled", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "512"}, {"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_pointwise/Conv2D/merged_input", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_pointwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "512"}, {"size": "1"}]}}}}, "name": "module/MobilenetV1/Conv2d_11_depthwise/depthwise_weights", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/BatchNorm/FusedBatchNorm/Scaled", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "512"}, {"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/Conv2D/merged_input", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "512"}, {"size": "1"}]}}}}, "name": "module/MobilenetV1/Conv2d_12_depthwise/depthwise_weights", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/BatchNorm/FusedBatchNorm/Scaled", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "512"}, {"size": "1024"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_pointwise/Conv2D/merged_input", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1024"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_pointwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "1024"}, {"size": "1"}]}}}}, "name": "module/MobilenetV1/Conv2d_13_depthwise/depthwise_weights", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1024"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/BatchNorm/FusedBatchNorm/Scaled", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1024"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "1024"}, {"size": "1024"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Conv2D/merged_input", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1024"}]}}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/BatchNorm/FusedBatchNorm/Offset", "op": "Const"}, {"attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "2"}]}}}}, "name": "module_apply_default/MobilenetV1/Logits/global_pool/reduction_indices", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "1024"}, {"size": "1001"}]}}}}, "name": "module/MobilenetV1/Logits/Conv2d_1c_1x1/weights", "op": "Const"}, {"attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1001"}]}}}}, "name": "module/MobilenetV1/Logits/Conv2d_1c_1x1/biases", "op": "Const"}, {"input": ["images", "module_apply_default/hub_input/Mul/y"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/hub_input/Mul", "op": "Mul"}, {"input": ["module_apply_default/hub_input/Mul", "module_apply_default/hub_input/Sub/y"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/hub_input/Sub", "op": "Sub"}, {"input": ["module_apply_default/hub_input/Sub", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_0/Conv2D/merged_input"], "attr": {"data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "T": {"type": "DT_FLOAT"}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_0/BatchNorm/FusedBatchNorm/Mul", "op": "Conv2D"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_0/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_0/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_0/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_0/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_0/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_0/Relu6", "module/MobilenetV1/Conv2d_1_depthwise/depthwise_weights"], "attr": {"padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/depthwise", "op": "DepthwiseConv2dNative"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/depthwise", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/BatchNorm/FusedBatchNorm/Scaled"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/BatchNorm/FusedBatchNorm/Mul", "op": "Mul"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/Relu6", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_pointwise/Conv2D/merged_input"], "attr": {"data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_pointwise/BatchNorm/FusedBatchNorm/Mul", "op": "Conv2D"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_pointwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_pointwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_pointwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_pointwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_pointwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_pointwise/Relu6", "module/MobilenetV1/Conv2d_2_depthwise/depthwise_weights"], "attr": {"padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/depthwise", "op": "DepthwiseConv2dNative"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/depthwise", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/BatchNorm/FusedBatchNorm/Scaled"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/BatchNorm/FusedBatchNorm/Mul", "op": "Mul"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/Relu6", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_pointwise/Conv2D/merged_input"], "attr": {"data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_pointwise/BatchNorm/FusedBatchNorm/Mul", "op": "Conv2D"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_pointwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_pointwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_pointwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_pointwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_pointwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_pointwise/Relu6", "module/MobilenetV1/Conv2d_3_depthwise/depthwise_weights"], "attr": {"padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/depthwise", "op": "DepthwiseConv2dNative"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/depthwise", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/BatchNorm/FusedBatchNorm/Scaled"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/BatchNorm/FusedBatchNorm/Mul", "op": "Mul"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/Relu6", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_pointwise/Conv2D/merged_input"], "attr": {"data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_pointwise/BatchNorm/FusedBatchNorm/Mul", "op": "Conv2D"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_pointwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_pointwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_pointwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_pointwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_pointwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_pointwise/Relu6", "module/MobilenetV1/Conv2d_4_depthwise/depthwise_weights"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "padding": {"s": "U0FNRQ=="}, "data_format": {"s": "TkhXQw=="}, "T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/depthwise", "op": "DepthwiseConv2dNative"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/depthwise", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/BatchNorm/FusedBatchNorm/Scaled"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/BatchNorm/FusedBatchNorm/Mul", "op": "Mul"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/Relu6", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_pointwise/Conv2D/merged_input"], "attr": {"data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_pointwise/BatchNorm/FusedBatchNorm/Mul", "op": "Conv2D"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_pointwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_pointwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_pointwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_pointwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_pointwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_pointwise/Relu6", "module/MobilenetV1/Conv2d_5_depthwise/depthwise_weights"], "attr": {"padding": {"s": "U0FNRQ=="}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/depthwise", "op": "DepthwiseConv2dNative"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/depthwise", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/BatchNorm/FusedBatchNorm/Scaled"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/BatchNorm/FusedBatchNorm/Mul", "op": "Mul"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/Relu6", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_pointwise/Conv2D/merged_input"], "attr": {"data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_pointwise/BatchNorm/FusedBatchNorm/Mul", "op": "Conv2D"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_pointwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_pointwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_pointwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_pointwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_pointwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_pointwise/Relu6", "module/MobilenetV1/Conv2d_6_depthwise/depthwise_weights"], "attr": {"padding": {"s": "U0FNRQ=="}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/depthwise", "op": "DepthwiseConv2dNative"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/depthwise", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/BatchNorm/FusedBatchNorm/Scaled"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/BatchNorm/FusedBatchNorm/Mul", "op": "Mul"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/Relu6", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_pointwise/Conv2D/merged_input"], "attr": {"data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_pointwise/BatchNorm/FusedBatchNorm/Mul", "op": "Conv2D"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_pointwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_pointwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_pointwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_pointwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_pointwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_pointwise/Relu6", "module/MobilenetV1/Conv2d_7_depthwise/depthwise_weights"], "attr": {"padding": {"s": "U0FNRQ=="}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/depthwise", "op": "DepthwiseConv2dNative"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/depthwise", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/BatchNorm/FusedBatchNorm/Scaled"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/BatchNorm/FusedBatchNorm/Mul", "op": "Mul"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/Relu6", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_pointwise/Conv2D/merged_input"], "attr": {"data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_pointwise/BatchNorm/FusedBatchNorm/Mul", "op": "Conv2D"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_pointwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_pointwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_pointwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_pointwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_pointwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_pointwise/Relu6", "module/MobilenetV1/Conv2d_8_depthwise/depthwise_weights"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/depthwise", "op": "DepthwiseConv2dNative"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/depthwise", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/BatchNorm/FusedBatchNorm/Scaled"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/BatchNorm/FusedBatchNorm/Mul", "op": "Mul"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/Relu6", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_pointwise/Conv2D/merged_input"], "attr": {"data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_pointwise/BatchNorm/FusedBatchNorm/Mul", "op": "Conv2D"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_pointwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_pointwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_pointwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_pointwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_pointwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_pointwise/Relu6", "module/MobilenetV1/Conv2d_9_depthwise/depthwise_weights"], "attr": {"padding": {"s": "U0FNRQ=="}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/depthwise", "op": "DepthwiseConv2dNative"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/depthwise", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/BatchNorm/FusedBatchNorm/Scaled"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/BatchNorm/FusedBatchNorm/Mul", "op": "Mul"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/Relu6", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_pointwise/Conv2D/merged_input"], "attr": {"data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_pointwise/BatchNorm/FusedBatchNorm/Mul", "op": "Conv2D"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_pointwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_pointwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_pointwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_pointwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_pointwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_pointwise/Relu6", "module/MobilenetV1/Conv2d_10_depthwise/depthwise_weights"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/depthwise", "op": "DepthwiseConv2dNative"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/depthwise", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/BatchNorm/FusedBatchNorm/Scaled"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/BatchNorm/FusedBatchNorm/Mul", "op": "Mul"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/Relu6", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_pointwise/Conv2D/merged_input"], "attr": {"data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_pointwise/BatchNorm/FusedBatchNorm/Mul", "op": "Conv2D"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_pointwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_pointwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_pointwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_pointwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_pointwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_pointwise/Relu6", "module/MobilenetV1/Conv2d_11_depthwise/depthwise_weights"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "padding": {"s": "U0FNRQ=="}, "data_format": {"s": "TkhXQw=="}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/depthwise", "op": "DepthwiseConv2dNative"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/depthwise", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/BatchNorm/FusedBatchNorm/Scaled"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/BatchNorm/FusedBatchNorm/Mul", "op": "Mul"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/Relu6", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/Conv2D/merged_input"], "attr": {"data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/BatchNorm/FusedBatchNorm/Mul", "op": "Conv2D"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/Relu6", "module/MobilenetV1/Conv2d_12_depthwise/depthwise_weights"], "attr": {"padding": {"s": "U0FNRQ=="}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/depthwise", "op": "DepthwiseConv2dNative"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/depthwise", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/BatchNorm/FusedBatchNorm/Scaled"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/BatchNorm/FusedBatchNorm/Mul", "op": "Mul"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/Relu6", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_pointwise/Conv2D/merged_input"], "attr": {"data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_pointwise/BatchNorm/FusedBatchNorm/Mul", "op": "Conv2D"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_pointwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_pointwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_pointwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_pointwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_pointwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_pointwise/Relu6", "module/MobilenetV1/Conv2d_13_depthwise/depthwise_weights"], "attr": {"padding": {"s": "U0FNRQ=="}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/depthwise", "op": "DepthwiseConv2dNative"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/depthwise", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/BatchNorm/FusedBatchNorm/Scaled"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/BatchNorm/FusedBatchNorm/Mul", "op": "Mul"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/Relu6", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Conv2D/merged_input"], "attr": {"data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/BatchNorm/FusedBatchNorm/Mul", "op": "Conv2D"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/BatchNorm/FusedBatchNorm/Mul", "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/BatchNorm/FusedBatchNorm/Offset"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/BatchNorm/FusedBatchNorm", "op": "Add"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/BatchNorm/FusedBatchNorm"], "attr": {"T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Relu6", "op": "Relu6"}, {"input": ["module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Relu6", "module_apply_default/MobilenetV1/Logits/global_pool/reduction_indices"], "attr": {"Tidx": {"type": "DT_INT32"}, "keep_dims": {"b": true}, "T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/Logits/global_pool", "op": "Mean"}, {"input": ["module_apply_default/MobilenetV1/Logits/global_pool", "module/MobilenetV1/Logits/Conv2d_1c_1x1/weights"], "attr": {"data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "padding": {"s": "U0FNRQ=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}, "name": "module_apply_default/MobilenetV1/Logits/Conv2d_1c_1x1/Conv2D", "op": "Conv2D"}, {"input": ["module_apply_default/MobilenetV1/Logits/Conv2d_1c_1x1/Conv2D", "module/MobilenetV1/Logits/Conv2d_1c_1x1/biases"], "attr": {"T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}}, "name": "module_apply_default/MobilenetV1/Logits/Conv2d_1c_1x1/BiasAdd", "op": "BiasAdd"}, {"input": ["module_apply_default/MobilenetV1/Logits/Conv2d_1c_1x1/BiasAdd"], "attr": {"squeeze_dims": {"list": {"i": ["1", "2"]}}, "T": {"type": "DT_FLOAT"}}, "name": "module_apply_default/MobilenetV1/Logits/SpatialSqueeze", "op": "Squeeze"}], "library": {}, "versions": {}}, "weightsManifest": [{"paths": ["group1-shard1of5", "group1-shard2of5", "group1-shard3of5", "group1-shard4of5", "group1-shard5of5"], "weights": [{"dtype": "float32", "shape": [], "name": "module_apply_default/hub_input/Mul/y"}, {"dtype": "float32", "shape": [], "name": "module_apply_default/hub_input/Sub/y"}, {"dtype": "float32", "shape": [3, 3, 3, 32], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_0/Conv2D/merged_input"}, {"dtype": "float32", "shape": [32], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_0/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [3, 3, 32, 1], "name": "module/MobilenetV1/Conv2d_1_depthwise/depthwise_weights"}, {"dtype": "float32", "shape": [32], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/BatchNorm/FusedBatchNorm/Scaled"}, {"dtype": "float32", "shape": [32], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [1, 1, 32, 64], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_pointwise/Conv2D/merged_input"}, {"dtype": "float32", "shape": [64], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_1_pointwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [3, 3, 64, 1], "name": "module/MobilenetV1/Conv2d_2_depthwise/depthwise_weights"}, {"dtype": "float32", "shape": [64], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/BatchNorm/FusedBatchNorm/Scaled"}, {"dtype": "float32", "shape": [64], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [1, 1, 64, 128], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_pointwise/Conv2D/merged_input"}, {"dtype": "float32", "shape": [128], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_2_pointwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [3, 3, 128, 1], "name": "module/MobilenetV1/Conv2d_3_depthwise/depthwise_weights"}, {"dtype": "float32", "shape": [128], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/BatchNorm/FusedBatchNorm/Scaled"}, {"dtype": "float32", "shape": [128], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [1, 1, 128, 128], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_pointwise/Conv2D/merged_input"}, {"dtype": "float32", "shape": [128], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_3_pointwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [3, 3, 128, 1], "name": "module/MobilenetV1/Conv2d_4_depthwise/depthwise_weights"}, {"dtype": "float32", "shape": [128], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/BatchNorm/FusedBatchNorm/Scaled"}, {"dtype": "float32", "shape": [128], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [1, 1, 128, 256], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_pointwise/Conv2D/merged_input"}, {"dtype": "float32", "shape": [256], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_4_pointwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [3, 3, 256, 1], "name": "module/MobilenetV1/Conv2d_5_depthwise/depthwise_weights"}, {"dtype": "float32", "shape": [256], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/BatchNorm/FusedBatchNorm/Scaled"}, {"dtype": "float32", "shape": [256], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [1, 1, 256, 256], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_pointwise/Conv2D/merged_input"}, {"dtype": "float32", "shape": [256], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_5_pointwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [3, 3, 256, 1], "name": "module/MobilenetV1/Conv2d_6_depthwise/depthwise_weights"}, {"dtype": "float32", "shape": [256], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/BatchNorm/FusedBatchNorm/Scaled"}, {"dtype": "float32", "shape": [256], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [1, 1, 256, 512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_pointwise/Conv2D/merged_input"}, {"dtype": "float32", "shape": [512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_6_pointwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [3, 3, 512, 1], "name": "module/MobilenetV1/Conv2d_7_depthwise/depthwise_weights"}, {"dtype": "float32", "shape": [512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/BatchNorm/FusedBatchNorm/Scaled"}, {"dtype": "float32", "shape": [512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [1, 1, 512, 512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_pointwise/Conv2D/merged_input"}, {"dtype": "float32", "shape": [512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_7_pointwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [3, 3, 512, 1], "name": "module/MobilenetV1/Conv2d_8_depthwise/depthwise_weights"}, {"dtype": "float32", "shape": [512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/BatchNorm/FusedBatchNorm/Scaled"}, {"dtype": "float32", "shape": [512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [1, 1, 512, 512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_pointwise/Conv2D/merged_input"}, {"dtype": "float32", "shape": [512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_8_pointwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [3, 3, 512, 1], "name": "module/MobilenetV1/Conv2d_9_depthwise/depthwise_weights"}, {"dtype": "float32", "shape": [512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/BatchNorm/FusedBatchNorm/Scaled"}, {"dtype": "float32", "shape": [512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [1, 1, 512, 512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_pointwise/Conv2D/merged_input"}, {"dtype": "float32", "shape": [512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_9_pointwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [3, 3, 512, 1], "name": "module/MobilenetV1/Conv2d_10_depthwise/depthwise_weights"}, {"dtype": "float32", "shape": [512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/BatchNorm/FusedBatchNorm/Scaled"}, {"dtype": "float32", "shape": [512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [1, 1, 512, 512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_pointwise/Conv2D/merged_input"}, {"dtype": "float32", "shape": [512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_10_pointwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [3, 3, 512, 1], "name": "module/MobilenetV1/Conv2d_11_depthwise/depthwise_weights"}, {"dtype": "float32", "shape": [512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/BatchNorm/FusedBatchNorm/Scaled"}, {"dtype": "float32", "shape": [512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [1, 1, 512, 512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/Conv2D/merged_input"}, {"dtype": "float32", "shape": [512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [3, 3, 512, 1], "name": "module/MobilenetV1/Conv2d_12_depthwise/depthwise_weights"}, {"dtype": "float32", "shape": [512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/BatchNorm/FusedBatchNorm/Scaled"}, {"dtype": "float32", "shape": [512], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [1, 1, 512, 1024], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_pointwise/Conv2D/merged_input"}, {"dtype": "float32", "shape": [1024], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_12_pointwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [3, 3, 1024, 1], "name": "module/MobilenetV1/Conv2d_13_depthwise/depthwise_weights"}, {"dtype": "float32", "shape": [1024], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/BatchNorm/FusedBatchNorm/Scaled"}, {"dtype": "float32", "shape": [1024], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "float32", "shape": [1, 1, 1024, 1024], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Conv2D/merged_input"}, {"dtype": "float32", "shape": [1024], "name": "module_apply_default/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/BatchNorm/FusedBatchNorm/Offset"}, {"dtype": "int32", "shape": [2], "name": "module_apply_default/MobilenetV1/Logits/global_pool/reduction_indices"}, {"dtype": "float32", "shape": [1, 1, 1024, 1001], "name": "module/MobilenetV1/Logits/Conv2d_1c_1x1/weights"}, {"dtype": "float32", "shape": [1001], "name": "module/MobilenetV1/Logits/Conv2d_1c_1x1/biases"}]}]} -------------------------------------------------------------------------------- /ImageClassify/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "image_classify", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@tensorflow-models/mobilenet": { 8 | "version": "2.0.4", 9 | "resolved": "https://registry.npmjs.org/@tensorflow-models/mobilenet/-/mobilenet-2.0.4.tgz", 10 | "integrity": "sha512-fkcxDBldlYitDCV88xETwAQoBIC8xYKdDu80uBDuBZBfNC4k/jeVbZHM28WjvTDsJN7d7dYO4NbIkRAH0XHKSQ==" 11 | }, 12 | "@tensorflow/tfjs": { 13 | "version": "1.4.0", 14 | "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-1.4.0.tgz", 15 | "integrity": "sha512-pvc7arrWZ0NNOpEFVL4e99Bj933ty3tmUR0xLnjKao3psts9xr7w0sfJpuSn98HKjz+dj87UEXZIi0fwsAZdwQ==", 16 | "requires": { 17 | "@tensorflow/tfjs-converter": "1.4.0", 18 | "@tensorflow/tfjs-core": "1.4.0", 19 | "@tensorflow/tfjs-data": "1.4.0", 20 | "@tensorflow/tfjs-layers": "1.4.0" 21 | } 22 | }, 23 | "@tensorflow/tfjs-converter": { 24 | "version": "1.4.0", 25 | "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-1.4.0.tgz", 26 | "integrity": "sha512-vdZumj6zHcEALtQlonCBbVwGdEEDcPrF7prgzf4HF82QG4RpM1x/kVdvzsGvfUIPYjRImNn0ZSPC3WaKslNcXw==" 27 | }, 28 | "@tensorflow/tfjs-core": { 29 | "version": "1.4.0", 30 | "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-1.4.0.tgz", 31 | "integrity": "sha512-a7dHhSsBbtaxp8/1UAeYKrjY1bQxsDy/Uhj57+mTuGLAcL8CDrTOXXZzucCgs5nvQErdscp7Gp/2VCcA1xp6XQ==", 32 | "requires": { 33 | "@types/offscreencanvas": "~2019.3.0", 34 | "@types/seedrandom": "2.4.27", 35 | "@types/webgl-ext": "0.0.30", 36 | "@types/webgl2": "0.0.4", 37 | "node-fetch": "~2.1.2", 38 | "seedrandom": "2.4.3" 39 | } 40 | }, 41 | "@tensorflow/tfjs-data": { 42 | "version": "1.4.0", 43 | "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-1.4.0.tgz", 44 | "integrity": "sha512-00N/pe5IYkO3aDI9ZmavQ6mwY4VIepCteusnI7DLiCeqBO0NzGjlH3zH1LVlWIBRypW7JNqYbdl3oVvnd2wWwg==", 45 | "requires": { 46 | "@types/node-fetch": "^2.1.2", 47 | "node-fetch": "~2.1.2" 48 | } 49 | }, 50 | "@tensorflow/tfjs-layers": { 51 | "version": "1.4.0", 52 | "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-1.4.0.tgz", 53 | "integrity": "sha512-PXNOShZWDVW9OzX9botHJdDD6ClHEQtkfaFjoGZ2I2qYC9+WaVgxJPxwToTS2H2trwrf34q6hZ1lAjVlTuK0Gg==" 54 | }, 55 | "@types/node": { 56 | "version": "12.12.17", 57 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.17.tgz", 58 | "integrity": "sha512-Is+l3mcHvs47sKy+afn2O1rV4ldZFU7W8101cNlOd+MRbjM4Onida8jSZnJdTe/0Pcf25g9BNIUsuugmE6puHA==" 59 | }, 60 | "@types/node-fetch": { 61 | "version": "2.5.4", 62 | "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.4.tgz", 63 | "integrity": "sha512-Oz6id++2qAOFuOlE1j0ouk1dzl3mmI1+qINPNBhi9nt/gVOz0G+13Ao6qjhdF0Ys+eOkhu6JnFmt38bR3H0POQ==", 64 | "requires": { 65 | "@types/node": "*" 66 | } 67 | }, 68 | "@types/offscreencanvas": { 69 | "version": "2019.3.0", 70 | "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz", 71 | "integrity": "sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q==" 72 | }, 73 | "@types/seedrandom": { 74 | "version": "2.4.27", 75 | "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.27.tgz", 76 | "integrity": "sha1-nbVjk33YaRX2kJK8QyWdL0hXjkE=" 77 | }, 78 | "@types/webgl-ext": { 79 | "version": "0.0.30", 80 | "resolved": "https://registry.npmjs.org/@types/webgl-ext/-/webgl-ext-0.0.30.tgz", 81 | "integrity": "sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg==" 82 | }, 83 | "@types/webgl2": { 84 | "version": "0.0.4", 85 | "resolved": "https://registry.npmjs.org/@types/webgl2/-/webgl2-0.0.4.tgz", 86 | "integrity": "sha512-PACt1xdErJbMUOUweSrbVM7gSIYm1vTncW2hF6Os/EeWi6TXYAYMPp+8v6rzHmypE5gHrxaxZNXgMkJVIdZpHw==" 87 | }, 88 | "bootstrap": { 89 | "version": "4.4.1", 90 | "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.4.1.tgz", 91 | "integrity": "sha512-tbx5cHubwE6e2ZG7nqM3g/FZ5PQEDMWmMGNrCUBVRPHXTJaH7CBDdsLeu3eCh3B1tzAxTnAbtmrzvWEvT2NNEA==" 92 | }, 93 | "jquery": { 94 | "version": "3.4.1", 95 | "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz", 96 | "integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==" 97 | }, 98 | "node-fetch": { 99 | "version": "2.1.2", 100 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", 101 | "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=" 102 | }, 103 | "seedrandom": { 104 | "version": "2.4.3", 105 | "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz", 106 | "integrity": "sha1-JDhQTa0zkXMUv/GKxNeU8W1qrsw=" 107 | }, 108 | "vue": { 109 | "version": "2.6.11", 110 | "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz", 111 | "integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==" 112 | } 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /ImageClassify/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "image_classify", 3 | "version": "1.0.0", 4 | "dependencies": { 5 | "@tensorflow-models/mobilenet": "^2.0.4", 6 | "@tensorflow/tfjs": "^1.4.0", 7 | "bootstrap": "^4.4.1", 8 | "jquery": "^3.4.1", 9 | "vue": "^2.6.11" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # tfjs_quick_start_course_2020 2 | tfjs极简入门视频教程 3 | 4 | # 视频教程 5 | 6 | [https://yunp.top/p/v/1515](https://yunp.top/p/v/1515) 7 | 8 | # 课程目录 9 | 10 | | 课程 | 课时 | 11 | | --- | --- | 12 | | 第一章 效果演示 | | 13 | | 第二章 课程介绍 | | 14 | | 第三章 手写识别实现 | | 15 | | 第四章 使用tfhub的模型 | | 16 | -------------------------------------------------------------------------------- /TensorFlow.js.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plter/tfjs_quick_start_course_2020/7cc4afb4a29a87c8bc9addef703127d3785a7a13/TensorFlow.js.png -------------------------------------------------------------------------------- /TensorFlow.js.xd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plter/tfjs_quick_start_course_2020/7cc4afb4a29a87c8bc9addef703127d3785a7a13/TensorFlow.js.xd -------------------------------------------------------------------------------- /code/app.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | new Vue({ 3 | el: "#vueapp", 4 | 5 | data: { 6 | targetNum: 0, 7 | trainStatus: "", 8 | result: "" 9 | }, 10 | 11 | mounted() { 12 | let c2d = this.drawCanvasContext2d = this.$refs.drawCanvas.getContext("2d"); 13 | c2d.lineWidth = 20; 14 | c2d.lineCap = "round"; 15 | c2d.lineJoin = "round"; 16 | 17 | this.previewCanvasContext2d = this.$refs.previewCanvas.getContext("2d"); 18 | 19 | this.loadOrCreateModel(); 20 | }, 21 | 22 | 23 | methods: { 24 | 25 | async loadOrCreateModel() { 26 | try { 27 | this.model = await tf.loadLayersModel("localstorage://mymodel"); 28 | } catch (e) { 29 | console.warn("Can not load model from LocalStorage, so we create a new model"); 30 | this.model = tf.sequential({ 31 | layers: [ 32 | tf.layers.inputLayer({inputShape: [784]}), 33 | tf.layers.dense({units: 10}), 34 | tf.layers.softmax() 35 | ] 36 | }); 37 | } 38 | 39 | this.model.compile({ 40 | optimizer: 'sgd', 41 | loss: 'categoricalCrossentropy', 42 | metrics: ['accuracy'] 43 | }); 44 | }, 45 | 46 | canvasMouseDownHandler(e) { 47 | this.drawing = true; 48 | this.drawCanvasContext2d.beginPath(); 49 | this.drawCanvasContext2d.moveTo(e.offsetX, e.offsetY); 50 | }, 51 | 52 | canvasMouseMoveHandler(e) { 53 | if (this.drawing) { 54 | this.drawCanvasContext2d.lineTo(e.offsetX, e.offsetY); 55 | this.drawCanvasContext2d.stroke(); 56 | } 57 | }, 58 | 59 | canvasMouseUpHandler(e) { 60 | this.drawing = false; 61 | 62 | this.previewCanvasContext2d.fillStyle = "white"; 63 | this.previewCanvasContext2d.fillRect(0, 0, 28, 28); 64 | this.previewCanvasContext2d.drawImage(this.$refs.drawCanvas, 0, 0, 28, 28); 65 | }, 66 | 67 | btnClearCanvasClickedHandler(e) { 68 | this.drawCanvasContext2d.clearRect(0, 0, this.$refs.drawCanvas.width, this.$refs.drawCanvas.height); 69 | }, 70 | 71 | getImageData() { 72 | let imageData = this.previewCanvasContext2d.getImageData(0, 0, 28, 28); 73 | let pixelData = []; 74 | 75 | let color; 76 | for (let i = 0; i < imageData.data.length; i += 4) { 77 | color = (imageData.data[i] + imageData.data[i + 1] + imageData.data[i + 2]) / 3; 78 | pixelData.push(Math.round((255 - color) / 255)); 79 | } 80 | return pixelData; 81 | }, 82 | 83 | 84 | async btnTrainClickedHandler(e) { 85 | let data = this.getImageData(); 86 | console.log(this.targetNum); 87 | // [1,0,0,0,0,0,0,0,0,0] 88 | // [0,1,0,0,0,0,0,0,0,0] 89 | let targetTensor = tf.oneHot(parseInt(this.targetNum), 10); 90 | 91 | let self = this; 92 | console.log("Start training"); 93 | await this.model.fit(tf.tensor([data]), tf.tensor([targetTensor.arraySync()]), { 94 | epochs: 30, 95 | callbacks: { 96 | onEpochEnd(epoch, logs) { 97 | console.log(epoch, logs); 98 | self.trainStatus = `
Step: ${epoch}
Loss: ${logs.loss}
`; 99 | } 100 | } 101 | }); 102 | self.trainStatus = `
训练完成
`; 103 | console.log("Completed"); 104 | 105 | await this.model.save("localstorage://mymodel"); 106 | }, 107 | 108 | async btnPredictClickedHandler(e) { 109 | let data = this.getImageData(); 110 | let predictions = await this.model.predict(tf.tensor([data])); 111 | this.result = predictions.argMax(1).arraySync()[0]; 112 | } 113 | } 114 | }); 115 | })(); -------------------------------------------------------------------------------- /code/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Title 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 |
17 | 此处写数字 18 |
19 |
20 | 24 |
25 | 27 |
28 |
29 |
图像数据预览
30 |
31 | 33 |
34 |
35 |
36 |
训练
37 |
38 | 关联数字: 39 | 40 | 41 | 42 |
43 |
44 |
45 |
46 |
识别
47 |
48 | 49 |
{{result}}
50 |
51 |
52 |
53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /code/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "code", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@tensorflow/tfjs": { 8 | "version": "1.4.0", 9 | "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-1.4.0.tgz", 10 | "integrity": "sha512-pvc7arrWZ0NNOpEFVL4e99Bj933ty3tmUR0xLnjKao3psts9xr7w0sfJpuSn98HKjz+dj87UEXZIi0fwsAZdwQ==", 11 | "requires": { 12 | "@tensorflow/tfjs-converter": "1.4.0", 13 | "@tensorflow/tfjs-core": "1.4.0", 14 | "@tensorflow/tfjs-data": "1.4.0", 15 | "@tensorflow/tfjs-layers": "1.4.0" 16 | } 17 | }, 18 | "@tensorflow/tfjs-converter": { 19 | "version": "1.4.0", 20 | "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-1.4.0.tgz", 21 | "integrity": "sha512-vdZumj6zHcEALtQlonCBbVwGdEEDcPrF7prgzf4HF82QG4RpM1x/kVdvzsGvfUIPYjRImNn0ZSPC3WaKslNcXw==" 22 | }, 23 | "@tensorflow/tfjs-core": { 24 | "version": "1.4.0", 25 | "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-1.4.0.tgz", 26 | "integrity": "sha512-a7dHhSsBbtaxp8/1UAeYKrjY1bQxsDy/Uhj57+mTuGLAcL8CDrTOXXZzucCgs5nvQErdscp7Gp/2VCcA1xp6XQ==", 27 | "requires": { 28 | "@types/offscreencanvas": "~2019.3.0", 29 | "@types/seedrandom": "2.4.27", 30 | "@types/webgl-ext": "0.0.30", 31 | "@types/webgl2": "0.0.4", 32 | "node-fetch": "~2.1.2", 33 | "seedrandom": "2.4.3" 34 | } 35 | }, 36 | "@tensorflow/tfjs-data": { 37 | "version": "1.4.0", 38 | "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-1.4.0.tgz", 39 | "integrity": "sha512-00N/pe5IYkO3aDI9ZmavQ6mwY4VIepCteusnI7DLiCeqBO0NzGjlH3zH1LVlWIBRypW7JNqYbdl3oVvnd2wWwg==", 40 | "requires": { 41 | "@types/node-fetch": "^2.1.2", 42 | "node-fetch": "~2.1.2" 43 | } 44 | }, 45 | "@tensorflow/tfjs-layers": { 46 | "version": "1.4.0", 47 | "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-1.4.0.tgz", 48 | "integrity": "sha512-PXNOShZWDVW9OzX9botHJdDD6ClHEQtkfaFjoGZ2I2qYC9+WaVgxJPxwToTS2H2trwrf34q6hZ1lAjVlTuK0Gg==" 49 | }, 50 | "@types/node": { 51 | "version": "12.12.17", 52 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.17.tgz", 53 | "integrity": "sha512-Is+l3mcHvs47sKy+afn2O1rV4ldZFU7W8101cNlOd+MRbjM4Onida8jSZnJdTe/0Pcf25g9BNIUsuugmE6puHA==" 54 | }, 55 | "@types/node-fetch": { 56 | "version": "2.5.4", 57 | "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.4.tgz", 58 | "integrity": "sha512-Oz6id++2qAOFuOlE1j0ouk1dzl3mmI1+qINPNBhi9nt/gVOz0G+13Ao6qjhdF0Ys+eOkhu6JnFmt38bR3H0POQ==", 59 | "requires": { 60 | "@types/node": "*" 61 | } 62 | }, 63 | "@types/offscreencanvas": { 64 | "version": "2019.3.0", 65 | "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz", 66 | "integrity": "sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q==" 67 | }, 68 | "@types/seedrandom": { 69 | "version": "2.4.27", 70 | "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.27.tgz", 71 | "integrity": "sha1-nbVjk33YaRX2kJK8QyWdL0hXjkE=" 72 | }, 73 | "@types/webgl-ext": { 74 | "version": "0.0.30", 75 | "resolved": "https://registry.npmjs.org/@types/webgl-ext/-/webgl-ext-0.0.30.tgz", 76 | "integrity": "sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg==" 77 | }, 78 | "@types/webgl2": { 79 | "version": "0.0.4", 80 | "resolved": "https://registry.npmjs.org/@types/webgl2/-/webgl2-0.0.4.tgz", 81 | "integrity": "sha512-PACt1xdErJbMUOUweSrbVM7gSIYm1vTncW2hF6Os/EeWi6TXYAYMPp+8v6rzHmypE5gHrxaxZNXgMkJVIdZpHw==" 82 | }, 83 | "bootstrap": { 84 | "version": "4.4.1", 85 | "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.4.1.tgz", 86 | "integrity": "sha512-tbx5cHubwE6e2ZG7nqM3g/FZ5PQEDMWmMGNrCUBVRPHXTJaH7CBDdsLeu3eCh3B1tzAxTnAbtmrzvWEvT2NNEA==" 87 | }, 88 | "jquery": { 89 | "version": "3.4.1", 90 | "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz", 91 | "integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==" 92 | }, 93 | "node-fetch": { 94 | "version": "2.1.2", 95 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", 96 | "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=" 97 | }, 98 | "seedrandom": { 99 | "version": "2.4.3", 100 | "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz", 101 | "integrity": "sha1-JDhQTa0zkXMUv/GKxNeU8W1qrsw=" 102 | }, 103 | "vue": { 104 | "version": "2.6.11", 105 | "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz", 106 | "integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==" 107 | } 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /code/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "code", 3 | "version": "1.0.0", 4 | "dependencies": { 5 | "@tensorflow/tfjs": "^1.4.0", 6 | "bootstrap": "^4.4.1", 7 | "jquery": "^3.4.1", 8 | "vue": "^2.6.11" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ppt/tensorflowjs课程介绍.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plter/tfjs_quick_start_course_2020/7cc4afb4a29a87c8bc9addef703127d3785a7a13/ppt/tensorflowjs课程介绍.pptx -------------------------------------------------------------------------------- /ppt/理解张量.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plter/tfjs_quick_start_course_2020/7cc4afb4a29a87c8bc9addef703127d3785a7a13/ppt/理解张量.pptx --------------------------------------------------------------------------------