├── LICENSE
├── README.md
├── css
└── style.css
├── images
├── aizoocom.png
├── demo.jpg
└── result.png
├── index.html
├── js
├── detection.js
├── index.js
└── tfjs.min.js
└── tfjs-models
├── group1-shard1of1.bin
└── model.json
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 AIZOOTech
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # face-mask-detection-web-demo
2 | # 人脸口罩检测网页demo
3 | Face mask deteciton demo, by tensorflow.js
4 |
5 | ## 原理
6 | 本demo是在浏览器运行的人脸口罩检测网页demo,介绍如何将深度学习的人脸口罩检测模型部署到浏览器里面。
7 | 关于人脸口罩检测的PyTorch、TensorFlow、Caffe、Keras、MXNet版本,可以进入相应Github仓库
8 | [FaceMaskDetection](https://github.com/AIZOOTech/FaceMaskDetection)
9 | 关于项目介绍,可以阅读一下两篇文章:
10 | [AIZOO开源人脸口罩检测数据+模型+代码+在线网页体验,通通都开源了](https://mp.weixin.qq.com/s/22U_v6IQ9PBHslI-65v_0Q)
11 | [人脸口罩检测现开源PyTorch、TensorFlow、MXNet等全部五大主流深度学习框架模型和代码
12 | ](https://mp.weixin.qq.com/s?__biz=MzIyMDY2MTUyNg==&mid=2247483779&idx=1&sn=b9ac5af31adf1dfdc3c87eb1c74836a5&exportkey=AX%2FANiIY8CWWMPQrHKh6A5E%3D&pass_ticket=aaNfWJGBgSum6CY5pvFqx0IIfljPPkeX%2BdMtPEl3zo5hQfPnYR5mEUlayz06kNKG)
13 |
14 |
15 | 深度学习模型,可以借助TensorFlow.js库,运行在浏览器里。首先,需要使用`tensorflowjs_converter`将tensorflow的`graph model`或者keras的`layer model`转换为TensorFlow.js支持的模型。
16 | 该工具可以通过`pip install tensorflowjs`安装。
17 |
18 | 如果使用Keras模型转的操作如下:
19 | ```
20 | tensorflowjs_convert --input_format keras --output_format tfjs_layers_model /path/to/keras/hdf5/model /path/to/output/folder
21 | ```
22 | 模型会生成`model.json`文件和一个或者多个`bin`文件,其中前者保存模型的拓扑,后者保存模型的权重。
23 | 使用JavaScript,需要在html中先引入`tfjs.min.js`库,然后加载模型
24 | ```
25 |
26 |
27 | ```
28 | 在`detection.js`中,加载模型
29 | ```
30 | model = await tf.loadLayersModel('./tfjs-models/model.json');
31 | ```
32 | 置于anchor生成、输出解码、nms与使用python版本并无太大差异,大家可以查看`detection.js`中三个相关的函数,一目了然。
33 |
34 | ## 运行方法
35 | 在当前目录下打开终端,只需要建立一个最小web server即可。
36 | 对于使用python的用户
37 | ```
38 | // python3用户
39 | python -m http.server
40 | // python2用户
41 | python -m SimpleHTTPServer
42 |
43 | ```
44 | 如果你使用Node.js
45 | ```
46 | npm install serve -g //安装serve
47 | serve // this will open a mini web serve
48 | // 您也可以使用http-serve
49 | npm install http-server -g
50 | http-server
51 | ```
52 |
53 | ## 效果
54 | 您可以点击网页中的上传图片按钮,或者拖拽图片到网页区域,然后模型会自动进行检测并画框。
55 | 
--------------------------------------------------------------------------------
/css/style.css:
--------------------------------------------------------------------------------
1 |
2 | html, body {
3 | margin: 0;
4 | padding: 0;
5 | font-family: Apercu;
6 |
7 | }
8 |
9 | .title {
10 | text-align: center
11 | }
12 |
13 | #tips {
14 | color:rosybrown
15 | }
16 |
17 | #container {
18 | background: #c79ef812;
19 | /* height: 500px; */
20 | padding: 50px;
21 | font-size: 14px;
22 | border-radius: 33px;
23 | text-align: center;
24 | }
25 |
26 | #text-container {
27 | height: 100px;
28 | width: 100%;
29 | text-align: center;
30 | }
31 |
32 | #instruction {
33 | margin-top: 20px;
34 | }
35 |
36 | .result-color {
37 | color: #A159FC;
38 | }
39 |
40 | .green-color {
41 | color: #0bcf82;
42 | }
43 |
44 | .highlight {
45 | opacity: 0.4;
46 | background-color: rgba(161,89,252, 0.2) !important;
47 | }
48 |
49 | .center {
50 | display: block;
51 | margin-left: auto;
52 | margin-right: auto;
53 | }
54 |
55 | #fileUploader {
56 | opacity: 0;
57 | }
58 |
59 | #uploader-btn {
60 | background: #faebd700;
61 | margin-top: 1em;
62 | color: #0bcf81;
63 | border: solid 1px #0bcf81;
64 | padding: .6em 2em;
65 | line-height: 2;
66 | font-size: 12px;
67 | font-family: Apercu;
68 | cursor: pointer;
69 | border-radius: 10px;
70 | }
71 |
72 | #uploader-btn:hover {
73 | color: white;
74 | background-color: #0bcf82;
75 | border: solid 1px #0bcf82;
76 | -webkit-transition: all 0.3s ease;
77 | -moz-transition: all 0.3s ease;
78 | -o-transition: all 0.3s ease;
79 | transition: all 0.3s ease;
80 | }
81 |
--------------------------------------------------------------------------------
/images/aizoocom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AIZOOTech/mask-detection-web-demo/b4425bc5fa5a75bd52e17a53a1a0b0243f8e5e7a/images/aizoocom.png
--------------------------------------------------------------------------------
/images/demo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AIZOOTech/mask-detection-web-demo/b4425bc5fa5a75bd52e17a53a1a0b0243f8e5e7a/images/demo.jpg
--------------------------------------------------------------------------------
/images/result.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AIZOOTech/mask-detection-web-demo/b4425bc5fa5a75bd52e17a53a1a0b0243f8e5e7a/images/result.png
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | 借助TensorFlow.js
18 | 让人脸口罩识别跑在您本地浏览器里面
19 | 注意:部分手机拍摄的图片,读取出来是旋转90°,需要旋转正,为避免本demo过于复杂,本demo不对这种case进行处理
20 |
21 |

22 |
23 |
24 |
25 |
或者将图片拖到这里 📂, 然后下方会显示结果
26 |
27 |
28 |
29 | 检测结果如下:
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/js/detection.js:
--------------------------------------------------------------------------------
1 | // decode the output according to anchors
2 | function decodeBBox(anchors, rawOutput, variances=[0.1,0.1,0.2,0.2]) {
3 | const [anchorXmin, anchorYmin, anchorXmax, anchorYmax] = tf.split(anchors, [1,1,1,1], -1);
4 | const anchorCX = tf.div(tf.add(anchorXmin, anchorXmax), 2);
5 | const anchorCY = tf.div(tf.add(anchorYmin, anchorYmax), 2);
6 |
7 | const anchorW = tf.sub(anchorXmax, anchorXmin);
8 | const anchorH = tf.sub(anchorYmax, anchorYmin);
9 |
10 | const rawOutputScale = tf.mul(rawOutput, tf.tensor(variances));
11 | const [rawOutputCX, rawOutputCY, rawOutputW, rawOutputH] = tf.split(rawOutputScale, [1,1,1,1], -1);
12 | const predictCX = tf.add(tf.mul(rawOutputCX, anchorW), anchorCX);
13 | const predictCY = tf.add(tf.mul(rawOutputCY,anchorH), anchorCY);
14 | const predictW = tf.mul(tf.exp(rawOutputW), anchorW);
15 | const predictH = tf.mul(tf.exp(rawOutputH), anchorH);
16 | const predictXmin = tf.sub(predictCX, tf.div(predictW, 2));
17 | const predictYmin = tf.sub(predictCY, tf.div(predictH, 2));
18 | const predictXmax = tf.add(predictCX, tf.div(predictW, 2));
19 | const predictYmax = tf.add(predictCY, tf.div(predictH, 2));
20 | // eslint-disable-next-line
21 | const predictBBox = tf.concat([predictYmin, predictXmin, predictYmax, predictXmax],-1);
22 | return predictBBox
23 | }
24 |
25 | // generate anchors
26 | function anchorGenerator(featureMapSizes, anchorSizes, anchorRatios) {
27 | let anchorBBoxes = [];
28 | // eslint-disable-next-line
29 | featureMapSizes.map((featureSize, idx) =>{
30 | const cx = tf.div(tf.add(tf.linspace(0, featureSize[0] - 1, featureSize[0]) , 0.5) , featureSize[0]);
31 | const cy = tf.div(tf.add(tf.linspace(0, featureSize[1] - 1, featureSize[1]) , 0.5) , featureSize[1]);
32 | const cxGrid = tf.matMul(tf.ones([featureSize[1], 1]), cx.reshape([1,featureSize[0]]));
33 | const cyGrid = tf.matMul(cy.reshape([featureSize[1], 1]), tf.ones([1, featureSize[0]]));
34 | // eslint-disable-next-line
35 | const cxGridExpend = tf.expandDims(cxGrid, -1);
36 | // eslint-disable-next-line
37 | const cyGridExpend = tf.expandDims(cyGrid, -1);
38 | // eslint-disable-next-line
39 | const center = tf.concat([cxGridExpend, cyGridExpend], -1);
40 | const numAnchors = anchorSizes[idx].length + anchorRatios[idx].length -1;
41 | const centerTiled = tf.tile(center, [1, 1, 2*numAnchors]);
42 | // eslint-disable-next-line
43 | let anchorWidthHeights = [];
44 |
45 | // eslint-disable-next-line
46 | for (const scale of anchorSizes[idx]) {
47 | const ratio = anchorRatios[idx][0];
48 | const width = scale * Math.sqrt(ratio);
49 | const height = scale / Math.sqrt(ratio);
50 |
51 | const halfWidth = width / 2;
52 | const halfHeight = height / 2;
53 | anchorWidthHeights.push(-halfWidth, -halfHeight, halfWidth, halfHeight);
54 | // width = tf.mul(scale, tf.sqrt(ratio));
55 | // height = tf.div(scale, tf.sqrt(ratio));
56 |
57 | // halfWidth = tf.div(width, 2);
58 | // halfHeight = tf.div(height, 2);
59 | // anchorWidthHeights.push(tf.neg(halfWidth), tf.neg(halfWidth), halfWidth, halfHeight);
60 | }
61 |
62 | // eslint-disable-next-line
63 | for ( const ratio of anchorRatios[idx].slice(1)) {
64 | const scale = anchorSizes[idx][0];
65 | const width = scale * Math.sqrt(ratio);
66 | const height = scale / Math.sqrt(ratio);
67 | const halfWidth = width / 2;
68 | const halfHeight = height / 2;
69 | anchorWidthHeights.push(-halfWidth, -halfHeight, halfWidth, halfHeight);
70 | }
71 | const bboxCoord = tf.add(centerTiled , tf.tensor(anchorWidthHeights));
72 | const bboxCoordReshape = bboxCoord.reshape([-1, 4]);
73 | anchorBBoxes.push(bboxCoordReshape);
74 | })
75 | // eslint-disable-next-line
76 | anchorBBoxes = tf.concat(anchorBBoxes, 0);
77 | return anchorBBoxes;
78 | }
79 |
80 | // nms function
81 | function nonMaxSuppression(bboxes, confidences, confThresh, iouThresh, width, height, maxOutputSize=100) {
82 | const bboxMaxFlag = tf.argMax(confidences, -1);
83 | const bboxConf = tf.max(confidences, -1);
84 | const keepIndices = tf.image.nonMaxSuppression(bboxes, bboxConf, maxOutputSize, iouThresh, confThresh);
85 | // eslint-disable-next-line
86 | let results = []
87 | const keepIndicesData = keepIndices.dataSync();
88 | const bboxConfData = bboxConf.dataSync();
89 | const bboxMaxFlagData = bboxMaxFlag.dataSync();
90 | const bboxesData = bboxes.dataSync();
91 | // eslint-disable-next-line
92 | keepIndicesData.map((idx) => {
93 | const xmin = Math.round(Math.max(bboxesData[4*idx + 1] * width, 0));
94 | const ymin = Math.round(Math.max(bboxesData[4*idx + 0] * height, 0));
95 | const xmax = Math.round(Math.min(bboxesData[4*idx+3] * width, width))
96 | const ymax = Math.round(Math.min(bboxesData[4*idx + 2] * height, height));
97 | results.push([[xmin, ymin, xmax, ymax],
98 | bboxMaxFlagData[idx], bboxConfData[idx]])
99 | });
100 | return results;
101 | }
102 |
103 |
104 | async function loadModel() {
105 | model = await tf.loadLayersModel('./tfjs-models/model.json');
106 | return model;
107 | }
108 |
109 | async function detect(imgToPredict) {
110 | const detectionResults = tf.tidy(() => {
111 | // eslint-disable-next-line
112 | const width = imgToPredict.width;
113 | // eslint-disable-next-line
114 | const height = imgToPredict.height;
115 | let img = tf.browser.fromPixels(imgToPredict);
116 | img = tf.image.resizeBilinear(img, [260, 260]);
117 | img = img.expandDims(0).toFloat().div(tf.scalar(255));
118 | const [rawBBoxes, rawConfidences] = model.predict(img);
119 | const bboxes = decodeBBox(anchors, tf.squeeze(rawBBoxes));
120 | const Results = nonMaxSuppression(bboxes, tf.squeeze(rawConfidences), 0.5, 0.5, width, height );
121 | return Results;
122 | })
123 | return detectionResults;
124 | }
125 |
126 | featureMapSizes = [[33, 33], [17, 17], [9, 9], [5, 5], [3,3]];
127 | anchorSizes = [[0.04, 0.056], [0.08, 0.11], [0.16, 0.22], [0.32, 0.45], [0.64, 0.72]];
128 | anchorRatios = [[1, 0.62, 0.42], [1, 0.62, 0.42], [1, 0.62, 0.42], [1, 0.62, 0.42], [1, 0.62, 0.42]];
129 |
130 | let anchors = anchorGenerator(featureMapSizes, anchorSizes, anchorRatios);
131 |
--------------------------------------------------------------------------------
/js/index.js:
--------------------------------------------------------------------------------
1 |
2 | const image = document.getElementById('image');
3 | const canvas = document.getElementById('canvas');
4 | const dropContainer = document.getElementById('container');
5 | const warning = document.getElementById('warning');
6 | const fileInput = document.getElementById('fileUploader');
7 |
8 | const id2class = {0:"有口罩", 1:"无口罩"};
9 | let model;
10 |
11 | function preventDefaults(e) {
12 | e.preventDefault()
13 | e.stopPropagation()
14 | };
15 |
16 | function windowResized() {
17 | let windowW = window.innerWidth;
18 | if (windowW < 480 && windowW >= 200) {
19 | dropContainer.style.display = 'block';
20 | } else if (windowW < 200) {
21 | dropContainer.style.display = 'none';
22 | } else {
23 | dropContainer.style.display = 'block';
24 | }
25 | }
26 |
27 | ['dragenter', 'dragover'].forEach(eventName => {
28 | dropContainer.addEventListener(eventName, e => dropContainer.classList.add('highlight'), false)
29 | });
30 |
31 | ['dragleave', 'drop'].forEach(eventName => {
32 | dropContainer.addEventListener(eventName, e => dropContainer.classList.remove('highlight'), false)
33 | });
34 |
35 | ['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {
36 | dropContainer.addEventListener(eventName, preventDefaults, false)
37 | });
38 |
39 | dropContainer.addEventListener('drop', gotImage, false)
40 |
41 |
42 | function gotImage(e) {
43 | const dt = e.dataTransfer;
44 | const files = dt.files;
45 | if (files.length > 1) {
46 | console.error('upload only one file');
47 | }
48 | const file = files[0];
49 | const imageType = /image.*/;
50 | if (file.type.match(imageType)) {
51 | warning.innerHTML = '';
52 | const reader = new FileReader();
53 | reader.readAsDataURL(file);
54 | reader.onloadend = () => {
55 | image.src = reader.result;
56 | setTimeout(detectImage, 100);
57 | }
58 | } else {
59 | image.src = 'images/demo.jpg';
60 | setTimeout(detectImage, 100);
61 | warning.innerHTML = 'Please drop an image file.'
62 | }
63 | }
64 |
65 | function handleFiles() {
66 | const curFiles = fileInput.files;
67 | if (curFiles.length === 0) {
68 | image.src = 'images/demo.jpg';
69 | setTimeout(detectImage, 100);
70 | warning.innerHTML = 'No image selected for upload';
71 | } else {
72 | image.src = window.URL.createObjectURL(curFiles[0]);
73 | warning.innerHTML = '';
74 | setTimeout(detectImage, 100);
75 | }
76 | }
77 |
78 | function clickUploader() {
79 | fileInput.click();
80 | }
81 |
82 | // 检测人脸和口罩
83 | function detectImage() {
84 | detect(image).then((results) => {
85 | canvas.width = image.width;
86 | canvas.height = image.height;
87 | ctx = canvas.getContext('2d');
88 | ctx.clearRect(0, 0, canvas.width, canvas.height);
89 | ctx.drawImage(image, 0, 0);
90 | for(bboxInfo of results) {
91 | bbox = bboxInfo[0];
92 | classID = bboxInfo[1];
93 | score = bboxInfo[2];
94 |
95 | ctx.beginPath();
96 | ctx.lineWidth="4";
97 | if (classID == 0) {
98 | ctx.strokeStyle="green";
99 | ctx.fillStyle="green";
100 | } else {
101 | ctx.strokeStyle="red";
102 | ctx.fillStyle="red";
103 | }
104 |
105 | ctx.rect(bbox[0], bbox[1], bbox[2] - bbox[0], bbox[3] - bbox[1]);
106 | ctx.stroke();
107 |
108 | ctx.font="30px Arial";
109 |
110 | let content = id2class[classID] + " " + score.toFixed(2);
111 | ctx.fillText(content, bbox[0], bbox[1] < 20 ? bbox[1] + 30 : bbox[1]-5);
112 | }
113 | })
114 | }
115 |
116 | // 初始化函数
117 | async function setup() {
118 | await loadModel();
119 | // Make a detection with the default image
120 | detectImage();
121 | }
122 |
123 | setup();
124 |
--------------------------------------------------------------------------------
/tfjs-models/group1-shard1of1.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AIZOOTech/mask-detection-web-demo/b4425bc5fa5a75bd52e17a53a1a0b0243f8e5e7a/tfjs-models/group1-shard1of1.bin
--------------------------------------------------------------------------------
/tfjs-models/model.json:
--------------------------------------------------------------------------------
1 | {"format": "layers-model", "generatedBy": "keras v2.2.4", "convertedBy": "TensorFlow.js Converter v1.5.2", "modelTopology": {"keras_version": "2.2.4", "backend": "tensorflow", "model_config": {"class_name": "Model", "config": {"layers": [{"class_name": "InputLayer", "config": {"dtype": "float32", "batch_input_shape": [null, 260, 260, 3], "name": "data", "sparse": false}, "inbound_nodes": [], "name": "data"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "scale": 2.0, "seed": null, "mode": "fan_in"}}, "name": "conv2d_0", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "filters": 32, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": false, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["data", 0, 0, {}]]], "name": "conv2d_0"}, {"class_name": "BatchNormalization", "config": {"beta_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_0_bn", "epsilon": 0.001, "trainable": true, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_initializer": {"class_name": "Zeros", "config": {}}, "scale": true, "axis": 3, "gamma_constraint": null, "gamma_regularizer": null, "beta_regularizer": null, "momentum": 0.99, "center": true}, "inbound_nodes": [[["conv2d_0", 0, 0, {}]]], "name": "conv2d_0_bn"}, {"class_name": "Activation", "config": {"activation": "relu", "trainable": true, "name": "conv2d_0_activation"}, "inbound_nodes": [[["conv2d_0_bn", 0, 0, {}]]], "name": "conv2d_0_activation"}, {"class_name": "MaxPooling2D", "config": {"name": "maxpool2d_0", "trainable": true, "data_format": "channels_last", "pool_size": [2, 2], "padding": "same", "strides": [2, 2]}, "inbound_nodes": [[["conv2d_0_activation", 0, 0, {}]]], "name": "maxpool2d_0"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "scale": 2.0, "seed": null, "mode": "fan_in"}}, "name": "conv2d_1", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "filters": 64, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": false, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["maxpool2d_0", 0, 0, {}]]], "name": "conv2d_1"}, {"class_name": "BatchNormalization", "config": {"beta_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_1_bn", "epsilon": 0.001, "trainable": true, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_initializer": {"class_name": "Zeros", "config": {}}, "scale": true, "axis": 3, "gamma_constraint": null, "gamma_regularizer": null, "beta_regularizer": null, "momentum": 0.99, "center": true}, "inbound_nodes": [[["conv2d_1", 0, 0, {}]]], "name": "conv2d_1_bn"}, {"class_name": "Activation", "config": {"activation": "relu", "trainable": true, "name": "conv2d_1_activation"}, "inbound_nodes": [[["conv2d_1_bn", 0, 0, {}]]], "name": "conv2d_1_activation"}, {"class_name": "MaxPooling2D", "config": {"name": "maxpool2d_1", "trainable": true, "data_format": "channels_last", "pool_size": [2, 2], "padding": "same", "strides": [2, 2]}, "inbound_nodes": [[["conv2d_1_activation", 0, 0, {}]]], "name": "maxpool2d_1"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "scale": 2.0, "seed": null, "mode": "fan_in"}}, "name": "conv2d_2", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "filters": 64, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": false, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["maxpool2d_1", 0, 0, {}]]], "name": "conv2d_2"}, {"class_name": "BatchNormalization", "config": {"beta_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_2_bn", "epsilon": 0.001, "trainable": true, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_initializer": {"class_name": "Zeros", "config": {}}, "scale": true, "axis": 3, "gamma_constraint": null, "gamma_regularizer": null, "beta_regularizer": null, "momentum": 0.99, "center": true}, "inbound_nodes": [[["conv2d_2", 0, 0, {}]]], "name": "conv2d_2_bn"}, {"class_name": "Activation", "config": {"activation": "relu", "trainable": true, "name": "conv2d_2_activation"}, "inbound_nodes": [[["conv2d_2_bn", 0, 0, {}]]], "name": "conv2d_2_activation"}, {"class_name": "MaxPooling2D", "config": {"name": "maxpool2d_2", "trainable": true, "data_format": "channels_last", "pool_size": [2, 2], "padding": "same", "strides": [2, 2]}, "inbound_nodes": [[["conv2d_2_activation", 0, 0, {}]]], "name": "maxpool2d_2"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "scale": 2.0, "seed": null, "mode": "fan_in"}}, "name": "conv2d_3", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "filters": 64, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": false, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["maxpool2d_2", 0, 0, {}]]], "name": "conv2d_3"}, {"class_name": "BatchNormalization", "config": {"beta_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_3_bn", "epsilon": 0.001, "trainable": true, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_initializer": {"class_name": "Zeros", "config": {}}, "scale": true, "axis": 3, "gamma_constraint": null, "gamma_regularizer": null, "beta_regularizer": null, "momentum": 0.99, "center": true}, "inbound_nodes": [[["conv2d_3", 0, 0, {}]]], "name": "conv2d_3_bn"}, {"class_name": "Activation", "config": {"activation": "relu", "trainable": true, "name": "conv2d_3_activation"}, "inbound_nodes": [[["conv2d_3_bn", 0, 0, {}]]], "name": "conv2d_3_activation"}, {"class_name": "MaxPooling2D", "config": {"name": "maxpool2d_3", "trainable": true, "data_format": "channels_last", "pool_size": [2, 2], "padding": "same", "strides": [2, 2]}, "inbound_nodes": [[["conv2d_3_activation", 0, 0, {}]]], "name": "maxpool2d_3"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "scale": 2.0, "seed": null, "mode": "fan_in"}}, "name": "conv2d_4", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "filters": 128, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": false, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["maxpool2d_3", 0, 0, {}]]], "name": "conv2d_4"}, {"class_name": "BatchNormalization", "config": {"beta_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_4_bn", "epsilon": 0.001, "trainable": true, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_initializer": {"class_name": "Zeros", "config": {}}, "scale": true, "axis": 3, "gamma_constraint": null, "gamma_regularizer": null, "beta_regularizer": null, "momentum": 0.99, "center": true}, "inbound_nodes": [[["conv2d_4", 0, 0, {}]]], "name": "conv2d_4_bn"}, {"class_name": "Activation", "config": {"activation": "relu", "trainable": true, "name": "conv2d_4_activation"}, "inbound_nodes": [[["conv2d_4_bn", 0, 0, {}]]], "name": "conv2d_4_activation"}, {"class_name": "MaxPooling2D", "config": {"name": "maxpool2d_4", "trainable": true, "data_format": "channels_last", "pool_size": [2, 2], "padding": "same", "strides": [2, 2]}, "inbound_nodes": [[["conv2d_4_activation", 0, 0, {}]]], "name": "maxpool2d_4"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "scale": 2.0, "seed": null, "mode": "fan_in"}}, "name": "conv2d_5", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "filters": 128, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": false, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["maxpool2d_4", 0, 0, {}]]], "name": "conv2d_5"}, {"class_name": "BatchNormalization", "config": {"beta_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_5_bn", "epsilon": 0.001, "trainable": true, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_initializer": {"class_name": "Zeros", "config": {}}, "scale": true, "axis": 3, "gamma_constraint": null, "gamma_regularizer": null, "beta_regularizer": null, "momentum": 0.99, "center": true}, "inbound_nodes": [[["conv2d_5", 0, 0, {}]]], "name": "conv2d_5_bn"}, {"class_name": "Activation", "config": {"activation": "relu", "trainable": true, "name": "conv2d_5_activation"}, "inbound_nodes": [[["conv2d_5_bn", 0, 0, {}]]], "name": "conv2d_5_activation"}, {"class_name": "MaxPooling2D", "config": {"name": "maxpool2d_5", "trainable": true, "data_format": "channels_last", "pool_size": [2, 2], "padding": "same", "strides": [2, 2]}, "inbound_nodes": [[["conv2d_5_activation", 0, 0, {}]]], "name": "maxpool2d_5"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "scale": 2.0, "seed": null, "mode": "fan_in"}}, "name": "conv2d_6", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "filters": 64, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": false, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["maxpool2d_5", 0, 0, {}]]], "name": "conv2d_6"}, {"class_name": "BatchNormalization", "config": {"beta_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_6_bn", "epsilon": 0.001, "trainable": true, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_initializer": {"class_name": "Zeros", "config": {}}, "scale": true, "axis": 3, "gamma_constraint": null, "gamma_regularizer": null, "beta_regularizer": null, "momentum": 0.99, "center": true}, "inbound_nodes": [[["conv2d_6", 0, 0, {}]]], "name": "conv2d_6_bn"}, {"class_name": "Activation", "config": {"activation": "relu", "trainable": true, "name": "conv2d_6_activation"}, "inbound_nodes": [[["conv2d_6_bn", 0, 0, {}]]], "name": "conv2d_6_activation"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "scale": 2.0, "seed": null, "mode": "fan_in"}}, "name": "conv2d_7", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "valid", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "filters": 64, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": false, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["conv2d_6_activation", 0, 0, {}]]], "name": "conv2d_7"}, {"class_name": "BatchNormalization", "config": {"beta_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "name": "conv2d_7_bn", "epsilon": 0.001, "trainable": true, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_initializer": {"class_name": "Zeros", "config": {}}, "scale": true, "axis": 3, "gamma_constraint": null, "gamma_regularizer": null, "beta_regularizer": null, "momentum": 0.99, "center": true}, "inbound_nodes": [[["conv2d_7", 0, 0, {}]]], "name": "conv2d_7_bn"}, {"class_name": "Activation", "config": {"activation": "relu", "trainable": true, "name": "conv2d_7_activation"}, "inbound_nodes": [[["conv2d_7_bn", 0, 0, {}]]], "name": "conv2d_7_activation"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "scale": 2.0, "seed": null, "mode": "fan_in"}}, "name": "cls_0_insert_conv2d", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "filters": 64, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": false, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["conv2d_3_activation", 0, 0, {}]]], "name": "cls_0_insert_conv2d"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "scale": 2.0, "seed": null, "mode": "fan_in"}}, "name": "cls_1_insert_conv2d", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "filters": 64, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": false, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["conv2d_4_activation", 0, 0, {}]]], "name": "cls_1_insert_conv2d"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "scale": 2.0, "seed": null, "mode": "fan_in"}}, "name": "cls_2_insert_conv2d", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "filters": 64, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": false, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["conv2d_5_activation", 0, 0, {}]]], "name": "cls_2_insert_conv2d"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "scale": 2.0, "seed": null, "mode": "fan_in"}}, "name": "cls_3_insert_conv2d", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "filters": 64, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": false, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["conv2d_6_activation", 0, 0, {}]]], "name": "cls_3_insert_conv2d"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "scale": 2.0, "seed": null, "mode": "fan_in"}}, "name": "cls_4_insert_conv2d", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "filters": 64, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": false, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["conv2d_7_activation", 0, 0, {}]]], "name": "cls_4_insert_conv2d"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "scale": 2.0, "seed": null, "mode": "fan_in"}}, "name": "loc_0_insert_conv2d", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "filters": 64, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": false, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["conv2d_3_activation", 0, 0, {}]]], "name": "loc_0_insert_conv2d"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "scale": 2.0, "seed": null, "mode": "fan_in"}}, "name": "loc_1_insert_conv2d", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "filters": 64, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": false, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["conv2d_4_activation", 0, 0, {}]]], "name": "loc_1_insert_conv2d"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "scale": 2.0, "seed": null, "mode": "fan_in"}}, "name": "loc_2_insert_conv2d", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "filters": 64, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": false, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["conv2d_5_activation", 0, 0, {}]]], "name": "loc_2_insert_conv2d"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "scale": 2.0, "seed": null, "mode": "fan_in"}}, "name": "loc_3_insert_conv2d", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "filters": 64, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": false, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["conv2d_6_activation", 0, 0, {}]]], "name": "loc_3_insert_conv2d"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "normal", "scale": 2.0, "seed": null, "mode": "fan_in"}}, "name": "loc_4_insert_conv2d", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": {"class_name": "L1L2", "config": {"l2": 9.999999747378752e-05, "l1": 0.0}}, "filters": 64, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": false, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["conv2d_7_activation", 0, 0, {}]]], "name": "loc_4_insert_conv2d"}, {"class_name": "BatchNormalization", "config": {"beta_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "name": "cls_0_insert_conv2d_bn", "epsilon": 0.001, "trainable": true, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_initializer": {"class_name": "Zeros", "config": {}}, "scale": true, "axis": 3, "gamma_constraint": null, "gamma_regularizer": null, "beta_regularizer": null, "momentum": 0.99, "center": true}, "inbound_nodes": [[["cls_0_insert_conv2d", 0, 0, {}]]], "name": "cls_0_insert_conv2d_bn"}, {"class_name": "BatchNormalization", "config": {"beta_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "name": "cls_1_insert_conv2d_bn", "epsilon": 0.001, "trainable": true, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_initializer": {"class_name": "Zeros", "config": {}}, "scale": true, "axis": 3, "gamma_constraint": null, "gamma_regularizer": null, "beta_regularizer": null, "momentum": 0.99, "center": true}, "inbound_nodes": [[["cls_1_insert_conv2d", 0, 0, {}]]], "name": "cls_1_insert_conv2d_bn"}, {"class_name": "BatchNormalization", "config": {"beta_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "name": "cls_2_insert_conv2d_bn", "epsilon": 0.001, "trainable": true, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_initializer": {"class_name": "Zeros", "config": {}}, "scale": true, "axis": 3, "gamma_constraint": null, "gamma_regularizer": null, "beta_regularizer": null, "momentum": 0.99, "center": true}, "inbound_nodes": [[["cls_2_insert_conv2d", 0, 0, {}]]], "name": "cls_2_insert_conv2d_bn"}, {"class_name": "BatchNormalization", "config": {"beta_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "name": "cls_3_insert_conv2d_bn", "epsilon": 0.001, "trainable": true, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_initializer": {"class_name": "Zeros", "config": {}}, "scale": true, "axis": 3, "gamma_constraint": null, "gamma_regularizer": null, "beta_regularizer": null, "momentum": 0.99, "center": true}, "inbound_nodes": [[["cls_3_insert_conv2d", 0, 0, {}]]], "name": "cls_3_insert_conv2d_bn"}, {"class_name": "BatchNormalization", "config": {"beta_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "name": "cls_4_insert_conv2d_bn", "epsilon": 0.001, "trainable": true, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_initializer": {"class_name": "Zeros", "config": {}}, "scale": true, "axis": 3, "gamma_constraint": null, "gamma_regularizer": null, "beta_regularizer": null, "momentum": 0.99, "center": true}, "inbound_nodes": [[["cls_4_insert_conv2d", 0, 0, {}]]], "name": "cls_4_insert_conv2d_bn"}, {"class_name": "BatchNormalization", "config": {"beta_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "name": "loc_0_insert_conv2d_bn", "epsilon": 0.001, "trainable": true, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_initializer": {"class_name": "Zeros", "config": {}}, "scale": true, "axis": 3, "gamma_constraint": null, "gamma_regularizer": null, "beta_regularizer": null, "momentum": 0.99, "center": true}, "inbound_nodes": [[["loc_0_insert_conv2d", 0, 0, {}]]], "name": "loc_0_insert_conv2d_bn"}, {"class_name": "BatchNormalization", "config": {"beta_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "name": "loc_1_insert_conv2d_bn", "epsilon": 0.001, "trainable": true, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_initializer": {"class_name": "Zeros", "config": {}}, "scale": true, "axis": 3, "gamma_constraint": null, "gamma_regularizer": null, "beta_regularizer": null, "momentum": 0.99, "center": true}, "inbound_nodes": [[["loc_1_insert_conv2d", 0, 0, {}]]], "name": "loc_1_insert_conv2d_bn"}, {"class_name": "BatchNormalization", "config": {"beta_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "name": "loc_2_insert_conv2d_bn", "epsilon": 0.001, "trainable": true, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_initializer": {"class_name": "Zeros", "config": {}}, "scale": true, "axis": 3, "gamma_constraint": null, "gamma_regularizer": null, "beta_regularizer": null, "momentum": 0.99, "center": true}, "inbound_nodes": [[["loc_2_insert_conv2d", 0, 0, {}]]], "name": "loc_2_insert_conv2d_bn"}, {"class_name": "BatchNormalization", "config": {"beta_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "name": "loc_3_insert_conv2d_bn", "epsilon": 0.001, "trainable": true, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_initializer": {"class_name": "Zeros", "config": {}}, "scale": true, "axis": 3, "gamma_constraint": null, "gamma_regularizer": null, "beta_regularizer": null, "momentum": 0.99, "center": true}, "inbound_nodes": [[["loc_3_insert_conv2d", 0, 0, {}]]], "name": "loc_3_insert_conv2d_bn"}, {"class_name": "BatchNormalization", "config": {"beta_constraint": null, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "name": "loc_4_insert_conv2d_bn", "epsilon": 0.001, "trainable": true, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_initializer": {"class_name": "Zeros", "config": {}}, "scale": true, "axis": 3, "gamma_constraint": null, "gamma_regularizer": null, "beta_regularizer": null, "momentum": 0.99, "center": true}, "inbound_nodes": [[["loc_4_insert_conv2d", 0, 0, {}]]], "name": "loc_4_insert_conv2d_bn"}, {"class_name": "Activation", "config": {"activation": "relu", "trainable": true, "name": "cls_0_insert_conv2d_activation"}, "inbound_nodes": [[["cls_0_insert_conv2d_bn", 0, 0, {}]]], "name": "cls_0_insert_conv2d_activation"}, {"class_name": "Activation", "config": {"activation": "relu", "trainable": true, "name": "cls_1_insert_conv2d_activation"}, "inbound_nodes": [[["cls_1_insert_conv2d_bn", 0, 0, {}]]], "name": "cls_1_insert_conv2d_activation"}, {"class_name": "Activation", "config": {"activation": "relu", "trainable": true, "name": "cls_2_insert_conv2d_activation"}, "inbound_nodes": [[["cls_2_insert_conv2d_bn", 0, 0, {}]]], "name": "cls_2_insert_conv2d_activation"}, {"class_name": "Activation", "config": {"activation": "relu", "trainable": true, "name": "cls_3_insert_conv2d_activation"}, "inbound_nodes": [[["cls_3_insert_conv2d_bn", 0, 0, {}]]], "name": "cls_3_insert_conv2d_activation"}, {"class_name": "Activation", "config": {"activation": "relu", "trainable": true, "name": "cls_4_insert_conv2d_activation"}, "inbound_nodes": [[["cls_4_insert_conv2d_bn", 0, 0, {}]]], "name": "cls_4_insert_conv2d_activation"}, {"class_name": "Activation", "config": {"activation": "relu", "trainable": true, "name": "loc_0_insert_conv2d_activation"}, "inbound_nodes": [[["loc_0_insert_conv2d_bn", 0, 0, {}]]], "name": "loc_0_insert_conv2d_activation"}, {"class_name": "Activation", "config": {"activation": "relu", "trainable": true, "name": "loc_1_insert_conv2d_activation"}, "inbound_nodes": [[["loc_1_insert_conv2d_bn", 0, 0, {}]]], "name": "loc_1_insert_conv2d_activation"}, {"class_name": "Activation", "config": {"activation": "relu", "trainable": true, "name": "loc_2_insert_conv2d_activation"}, "inbound_nodes": [[["loc_2_insert_conv2d_bn", 0, 0, {}]]], "name": "loc_2_insert_conv2d_activation"}, {"class_name": "Activation", "config": {"activation": "relu", "trainable": true, "name": "loc_3_insert_conv2d_activation"}, "inbound_nodes": [[["loc_3_insert_conv2d_bn", 0, 0, {}]]], "name": "loc_3_insert_conv2d_activation"}, {"class_name": "Activation", "config": {"activation": "relu", "trainable": true, "name": "loc_4_insert_conv2d_activation"}, "inbound_nodes": [[["loc_4_insert_conv2d_bn", 0, 0, {}]]], "name": "loc_4_insert_conv2d_activation"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "scale": 1.0, "seed": null, "mode": "fan_avg"}}, "name": "cls_0_conv", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": null, "filters": 8, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": true, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["cls_0_insert_conv2d_activation", 0, 0, {}]]], "name": "cls_0_conv"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "scale": 1.0, "seed": null, "mode": "fan_avg"}}, "name": "cls_1_conv", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": null, "filters": 8, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": true, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["cls_1_insert_conv2d_activation", 0, 0, {}]]], "name": "cls_1_conv"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "scale": 1.0, "seed": null, "mode": "fan_avg"}}, "name": "cls_2_conv", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": null, "filters": 8, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": true, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["cls_2_insert_conv2d_activation", 0, 0, {}]]], "name": "cls_2_conv"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "scale": 1.0, "seed": null, "mode": "fan_avg"}}, "name": "cls_3_conv", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": null, "filters": 8, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": true, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["cls_3_insert_conv2d_activation", 0, 0, {}]]], "name": "cls_3_conv"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "scale": 1.0, "seed": null, "mode": "fan_avg"}}, "name": "cls_4_conv", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": null, "filters": 8, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": true, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["cls_4_insert_conv2d_activation", 0, 0, {}]]], "name": "cls_4_conv"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "scale": 1.0, "seed": null, "mode": "fan_avg"}}, "name": "loc_0_conv", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": null, "filters": 16, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": true, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["loc_0_insert_conv2d_activation", 0, 0, {}]]], "name": "loc_0_conv"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "scale": 1.0, "seed": null, "mode": "fan_avg"}}, "name": "loc_1_conv", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": null, "filters": 16, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": true, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["loc_1_insert_conv2d_activation", 0, 0, {}]]], "name": "loc_1_conv"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "scale": 1.0, "seed": null, "mode": "fan_avg"}}, "name": "loc_2_conv", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": null, "filters": 16, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": true, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["loc_2_insert_conv2d_activation", 0, 0, {}]]], "name": "loc_2_conv"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "scale": 1.0, "seed": null, "mode": "fan_avg"}}, "name": "loc_3_conv", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": null, "filters": 16, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": true, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["loc_3_insert_conv2d_activation", 0, 0, {}]]], "name": "loc_3_conv"}, {"class_name": "Conv2D", "config": {"kernel_constraint": null, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"distribution": "uniform", "scale": 1.0, "seed": null, "mode": "fan_avg"}}, "name": "loc_4_conv", "bias_regularizer": null, "bias_constraint": null, "activation": "linear", "trainable": true, "data_format": "channels_last", "padding": "same", "strides": [1, 1], "dilation_rate": [1, 1], "kernel_regularizer": null, "filters": 16, "bias_initializer": {"class_name": "Zeros", "config": {}}, "use_bias": true, "activity_regularizer": null, "kernel_size": [3, 3]}, "inbound_nodes": [[["loc_4_insert_conv2d_activation", 0, 0, {}]]], "name": "loc_4_conv"}, {"class_name": "Reshape", "config": {"target_shape": [-1, 2], "trainable": true, "name": "cls_0_reshape"}, "inbound_nodes": [[["cls_0_conv", 0, 0, {}]]], "name": "cls_0_reshape"}, {"class_name": "Reshape", "config": {"target_shape": [-1, 2], "trainable": true, "name": "cls_1_reshape"}, "inbound_nodes": [[["cls_1_conv", 0, 0, {}]]], "name": "cls_1_reshape"}, {"class_name": "Reshape", "config": {"target_shape": [-1, 2], "trainable": true, "name": "cls_2_reshape"}, "inbound_nodes": [[["cls_2_conv", 0, 0, {}]]], "name": "cls_2_reshape"}, {"class_name": "Reshape", "config": {"target_shape": [-1, 2], "trainable": true, "name": "cls_3_reshape"}, "inbound_nodes": [[["cls_3_conv", 0, 0, {}]]], "name": "cls_3_reshape"}, {"class_name": "Reshape", "config": {"target_shape": [-1, 2], "trainable": true, "name": "cls_4_reshape"}, "inbound_nodes": [[["cls_4_conv", 0, 0, {}]]], "name": "cls_4_reshape"}, {"class_name": "Reshape", "config": {"target_shape": [-1, 4], "trainable": true, "name": "loc_0_reshape"}, "inbound_nodes": [[["loc_0_conv", 0, 0, {}]]], "name": "loc_0_reshape"}, {"class_name": "Reshape", "config": {"target_shape": [-1, 4], "trainable": true, "name": "loc_1_reshape"}, "inbound_nodes": [[["loc_1_conv", 0, 0, {}]]], "name": "loc_1_reshape"}, {"class_name": "Reshape", "config": {"target_shape": [-1, 4], "trainable": true, "name": "loc_2_reshape"}, "inbound_nodes": [[["loc_2_conv", 0, 0, {}]]], "name": "loc_2_reshape"}, {"class_name": "Reshape", "config": {"target_shape": [-1, 4], "trainable": true, "name": "loc_3_reshape"}, "inbound_nodes": [[["loc_3_conv", 0, 0, {}]]], "name": "loc_3_reshape"}, {"class_name": "Reshape", "config": {"target_shape": [-1, 4], "trainable": true, "name": "loc_4_reshape"}, "inbound_nodes": [[["loc_4_conv", 0, 0, {}]]], "name": "loc_4_reshape"}, {"class_name": "Activation", "config": {"activation": "sigmoid", "trainable": true, "name": "cls_0_activation"}, "inbound_nodes": [[["cls_0_reshape", 0, 0, {}]]], "name": "cls_0_activation"}, {"class_name": "Activation", "config": {"activation": "sigmoid", "trainable": true, "name": "cls_1_activation"}, "inbound_nodes": [[["cls_1_reshape", 0, 0, {}]]], "name": "cls_1_activation"}, {"class_name": "Activation", "config": {"activation": "sigmoid", "trainable": true, "name": "cls_2_activation"}, "inbound_nodes": [[["cls_2_reshape", 0, 0, {}]]], "name": "cls_2_activation"}, {"class_name": "Activation", "config": {"activation": "sigmoid", "trainable": true, "name": "cls_3_activation"}, "inbound_nodes": [[["cls_3_reshape", 0, 0, {}]]], "name": "cls_3_activation"}, {"class_name": "Activation", "config": {"activation": "sigmoid", "trainable": true, "name": "cls_4_activation"}, "inbound_nodes": [[["cls_4_reshape", 0, 0, {}]]], "name": "cls_4_activation"}, {"class_name": "Concatenate", "config": {"trainable": true, "name": "loc_branch_concat", "axis": 1}, "inbound_nodes": [[["loc_0_reshape", 0, 0, {}], ["loc_1_reshape", 0, 0, {}], ["loc_2_reshape", 0, 0, {}], ["loc_3_reshape", 0, 0, {}], ["loc_4_reshape", 0, 0, {}]]], "name": "loc_branch_concat"}, {"class_name": "Concatenate", "config": {"trainable": true, "name": "cls_branch_concat", "axis": 1}, "inbound_nodes": [[["cls_0_activation", 0, 0, {}], ["cls_1_activation", 0, 0, {}], ["cls_2_activation", 0, 0, {}], ["cls_3_activation", 0, 0, {}], ["cls_4_activation", 0, 0, {}]]], "name": "cls_branch_concat"}], "input_layers": [["data", 0, 0]], "output_layers": [["loc_branch_concat", 0, 0], ["cls_branch_concat", 0, 0]], "name": "model_2"}}, "training_config": {"metrics": [], "loss": ["loc_loss", "cls_loss"], "optimizer_config": {"class_name": "Adam", "config": {"beta_1": 0.8999999761581421, "beta_2": 0.9990000128746033, "decay": 0.0, "epsilon": 1e-07, "amsgrad": false, "lr": 0.0004923854139633477}}, "loss_weights": [1, 1], "sample_weight_mode": null}}, "weightsManifest": [{"paths": ["group1-shard1of1.bin"], "weights": [{"name": "cls_0_conv/kernel", "shape": [3, 3, 64, 8], "dtype": "float32"}, {"name": "cls_0_conv/bias", "shape": [8], "dtype": "float32"}, {"name": "cls_0_insert_conv2d/kernel", "shape": [3, 3, 64, 64], "dtype": "float32"}, {"name": "cls_0_insert_conv2d_bn/gamma", "shape": [64], "dtype": "float32"}, {"name": "cls_0_insert_conv2d_bn/beta", "shape": [64], "dtype": "float32"}, {"name": "cls_0_insert_conv2d_bn/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "cls_0_insert_conv2d_bn/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "cls_1_conv/kernel", "shape": [3, 3, 64, 8], "dtype": "float32"}, {"name": "cls_1_conv/bias", "shape": [8], "dtype": "float32"}, {"name": "cls_1_insert_conv2d/kernel", "shape": [3, 3, 128, 64], "dtype": "float32"}, {"name": "cls_1_insert_conv2d_bn/gamma", "shape": [64], "dtype": "float32"}, {"name": "cls_1_insert_conv2d_bn/beta", "shape": [64], "dtype": "float32"}, {"name": "cls_1_insert_conv2d_bn/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "cls_1_insert_conv2d_bn/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "cls_2_conv/kernel", "shape": [3, 3, 64, 8], "dtype": "float32"}, {"name": "cls_2_conv/bias", "shape": [8], "dtype": "float32"}, {"name": "cls_2_insert_conv2d/kernel", "shape": [3, 3, 128, 64], "dtype": "float32"}, {"name": "cls_2_insert_conv2d_bn/gamma", "shape": [64], "dtype": "float32"}, {"name": "cls_2_insert_conv2d_bn/beta", "shape": [64], "dtype": "float32"}, {"name": "cls_2_insert_conv2d_bn/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "cls_2_insert_conv2d_bn/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "cls_3_conv/kernel", "shape": [3, 3, 64, 8], "dtype": "float32"}, {"name": "cls_3_conv/bias", "shape": [8], "dtype": "float32"}, {"name": "cls_3_insert_conv2d/kernel", "shape": [3, 3, 64, 64], "dtype": "float32"}, {"name": "cls_3_insert_conv2d_bn/gamma", "shape": [64], "dtype": "float32"}, {"name": "cls_3_insert_conv2d_bn/beta", "shape": [64], "dtype": "float32"}, {"name": "cls_3_insert_conv2d_bn/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "cls_3_insert_conv2d_bn/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "cls_4_conv/kernel", "shape": [3, 3, 64, 8], "dtype": "float32"}, {"name": "cls_4_conv/bias", "shape": [8], "dtype": "float32"}, {"name": "cls_4_insert_conv2d/kernel", "shape": [3, 3, 64, 64], "dtype": "float32"}, {"name": "cls_4_insert_conv2d_bn/gamma", "shape": [64], "dtype": "float32"}, {"name": "cls_4_insert_conv2d_bn/beta", "shape": [64], "dtype": "float32"}, {"name": "cls_4_insert_conv2d_bn/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "cls_4_insert_conv2d_bn/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "conv2d_0/kernel", "shape": [3, 3, 3, 32], "dtype": "float32"}, {"name": "conv2d_0_bn/gamma", "shape": [32], "dtype": "float32"}, {"name": "conv2d_0_bn/beta", "shape": [32], "dtype": "float32"}, {"name": "conv2d_0_bn/moving_mean", "shape": [32], "dtype": "float32"}, {"name": "conv2d_0_bn/moving_variance", "shape": [32], "dtype": "float32"}, {"name": "conv2d_1/kernel", "shape": [3, 3, 32, 64], "dtype": "float32"}, {"name": "conv2d_1_bn/gamma", "shape": [64], "dtype": "float32"}, {"name": "conv2d_1_bn/beta", "shape": [64], "dtype": "float32"}, {"name": "conv2d_1_bn/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "conv2d_1_bn/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "conv2d_2/kernel", "shape": [3, 3, 64, 64], "dtype": "float32"}, {"name": "conv2d_2_bn/gamma", "shape": [64], "dtype": "float32"}, {"name": "conv2d_2_bn/beta", "shape": [64], "dtype": "float32"}, {"name": "conv2d_2_bn/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "conv2d_2_bn/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "conv2d_3/kernel", "shape": [3, 3, 64, 64], "dtype": "float32"}, {"name": "conv2d_3_bn/gamma", "shape": [64], "dtype": "float32"}, {"name": "conv2d_3_bn/beta", "shape": [64], "dtype": "float32"}, {"name": "conv2d_3_bn/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "conv2d_3_bn/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "conv2d_4/kernel", "shape": [3, 3, 64, 128], "dtype": "float32"}, {"name": "conv2d_4_bn/gamma", "shape": [128], "dtype": "float32"}, {"name": "conv2d_4_bn/beta", "shape": [128], "dtype": "float32"}, {"name": "conv2d_4_bn/moving_mean", "shape": [128], "dtype": "float32"}, {"name": "conv2d_4_bn/moving_variance", "shape": [128], "dtype": "float32"}, {"name": "conv2d_5/kernel", "shape": [3, 3, 128, 128], "dtype": "float32"}, {"name": "conv2d_5_bn/gamma", "shape": [128], "dtype": "float32"}, {"name": "conv2d_5_bn/beta", "shape": [128], "dtype": "float32"}, {"name": "conv2d_5_bn/moving_mean", "shape": [128], "dtype": "float32"}, {"name": "conv2d_5_bn/moving_variance", "shape": [128], "dtype": "float32"}, {"name": "conv2d_6/kernel", "shape": [3, 3, 128, 64], "dtype": "float32"}, {"name": "conv2d_6_bn/gamma", "shape": [64], "dtype": "float32"}, {"name": "conv2d_6_bn/beta", "shape": [64], "dtype": "float32"}, {"name": "conv2d_6_bn/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "conv2d_6_bn/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "conv2d_7/kernel", "shape": [3, 3, 64, 64], "dtype": "float32"}, {"name": "conv2d_7_bn/gamma", "shape": [64], "dtype": "float32"}, {"name": "conv2d_7_bn/beta", "shape": [64], "dtype": "float32"}, {"name": "conv2d_7_bn/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "conv2d_7_bn/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "loc_0_conv/kernel", "shape": [3, 3, 64, 16], "dtype": "float32"}, {"name": "loc_0_conv/bias", "shape": [16], "dtype": "float32"}, {"name": "loc_0_insert_conv2d/kernel", "shape": [3, 3, 64, 64], "dtype": "float32"}, {"name": "loc_0_insert_conv2d_bn/gamma", "shape": [64], "dtype": "float32"}, {"name": "loc_0_insert_conv2d_bn/beta", "shape": [64], "dtype": "float32"}, {"name": "loc_0_insert_conv2d_bn/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "loc_0_insert_conv2d_bn/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "loc_1_conv/kernel", "shape": [3, 3, 64, 16], "dtype": "float32"}, {"name": "loc_1_conv/bias", "shape": [16], "dtype": "float32"}, {"name": "loc_1_insert_conv2d/kernel", "shape": [3, 3, 128, 64], "dtype": "float32"}, {"name": "loc_1_insert_conv2d_bn/gamma", "shape": [64], "dtype": "float32"}, {"name": "loc_1_insert_conv2d_bn/beta", "shape": [64], "dtype": "float32"}, {"name": "loc_1_insert_conv2d_bn/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "loc_1_insert_conv2d_bn/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "loc_2_conv/kernel", "shape": [3, 3, 64, 16], "dtype": "float32"}, {"name": "loc_2_conv/bias", "shape": [16], "dtype": "float32"}, {"name": "loc_2_insert_conv2d/kernel", "shape": [3, 3, 128, 64], "dtype": "float32"}, {"name": "loc_2_insert_conv2d_bn/gamma", "shape": [64], "dtype": "float32"}, {"name": "loc_2_insert_conv2d_bn/beta", "shape": [64], "dtype": "float32"}, {"name": "loc_2_insert_conv2d_bn/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "loc_2_insert_conv2d_bn/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "loc_3_conv/kernel", "shape": [3, 3, 64, 16], "dtype": "float32"}, {"name": "loc_3_conv/bias", "shape": [16], "dtype": "float32"}, {"name": "loc_3_insert_conv2d/kernel", "shape": [3, 3, 64, 64], "dtype": "float32"}, {"name": "loc_3_insert_conv2d_bn/gamma", "shape": [64], "dtype": "float32"}, {"name": "loc_3_insert_conv2d_bn/beta", "shape": [64], "dtype": "float32"}, {"name": "loc_3_insert_conv2d_bn/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "loc_3_insert_conv2d_bn/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "loc_4_conv/kernel", "shape": [3, 3, 64, 16], "dtype": "float32"}, {"name": "loc_4_conv/bias", "shape": [16], "dtype": "float32"}, {"name": "loc_4_insert_conv2d/kernel", "shape": [3, 3, 64, 64], "dtype": "float32"}, {"name": "loc_4_insert_conv2d_bn/gamma", "shape": [64], "dtype": "float32"}, {"name": "loc_4_insert_conv2d_bn/beta", "shape": [64], "dtype": "float32"}, {"name": "loc_4_insert_conv2d_bn/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "loc_4_insert_conv2d_bn/moving_variance", "shape": [64], "dtype": "float32"}]}]}
--------------------------------------------------------------------------------