├── .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 | | 第二章 课程介绍 | - 0201tensoflowjs课程介绍
- 0202理解张量
|
14 | | 第三章 手写识别实现 | - 0301搭建界面框架
- 0302实现写字功能
- 0303实现清空画布功能
- 0304实现图像数据预览功能
- 0305取得图像数据
- 0306编写模型
- 0307编译模型
- 0308监视训练过程
- 0309预测
- 0310保存模型
- 0311加载已保存的模型
|
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 |
19 |
20 |
24 |
25 |
27 |
28 |
29 |
30 |
31 |
33 |
34 |
35 |
36 |
37 |
38 | 关联数字:
39 |
40 |
41 |
42 |
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
--------------------------------------------------------------------------------