change the logo and links in the index page

1123
ZhangGe6 4 years ago
parent 300bfb4a58
commit a11ca520c4

@ -56,9 +56,9 @@ Click `Open Model...` to upload the ONNX model to edit. The model will be parsed
Graph-level-operation elements are placed on the left-top of the page. Currently, there are three buttons: `Preview``Reset` and `Download`. They can do: Graph-level-operation elements are placed on the left-top of the page. Currently, there are three buttons: `Preview``Reset` and `Download`. They can do:
- `Preview`Preview the result model graph with all current modifications applied - `Preview`: Preview the result model graph with all current modifications applied;
- `Reset`Reset the model graph to its initial state - `Reset`: Reset the model graph to its initial state;
- `Download`Save the modified model into disk. - `Download`: Save the modified model into disk.
Node-level-operation elements are all in the sidebar, which can be invoked by clicking a specific node. Let's take a closer look. Node-level-operation elements are all in the sidebar, which can be invoked by clicking a specific node. Let's take a closer look.
@ -95,8 +95,10 @@ For example, Now we want remove the preprocess operators (`Sub->Mul->Sub->Trans
`onnx-modifier` is under active development :hammer_and_wrench:. Welcome to use, create issues and pull requests! 🥰 `onnx-modifier` is under active development :hammer_and_wrench:. Welcome to use, create issues and pull requests! 🥰
# Credits and referred materials # Credits and referred materials
- [Netron](https://github.com/lutzroeder/netron)
- [flask](https://github.com/pallets/flask)
- ONNX Python API [Official doc](https://github.com/onnx/onnx/blob/main/docs/PythonAPIOverview.md), [Leimao's Blog](https://leimao.github.io/blog/ONNX-Python-API/) - ONNX Python API [Official doc](https://github.com/onnx/onnx/blob/main/docs/PythonAPIOverview.md), [Leimao's Blog](https://leimao.github.io/blog/ONNX-Python-API/)
- ONNX IO Stream [Leimao's Blog](https://leimao.github.io/blog/ONNX-IO-Stream/) - ONNX IO Stream [Leimao's Blog](https://leimao.github.io/blog/ONNX-IO-Stream/)
- [Netron](https://github.com/lutzroeder/netron)
- [onnx-utils](https://github.com/saurabh-shandilya/onnx-utils) - [onnx-utils](https://github.com/saurabh-shandilya/onnx-utils)
- [flask](https://github.com/pallets/flask) - [sweetalert](https://github.com/t4t5/sweetalert)

@ -95,9 +95,9 @@ math: true
`onnx-modifer`正在活跃地更新中:hammer_and_wrench:。 欢迎使用提issue如果有帮助的话感谢给个:star:~ `onnx-modifer`正在活跃地更新中:hammer_and_wrench:。 欢迎使用提issue如果有帮助的话感谢给个:star:~
# 参考资料 # 参考资料
- [Netron](https://github.com/lutzroeder/netron)
- [flask](https://github.com/pallets/flask)
- ONNX Python API [Official doc](https://github.com/onnx/onnx/blob/main/docs/PythonAPIOverview.md), [Leimao's Blog](https://leimao.github.io/blog/ONNX-Python-API/) - ONNX Python API [Official doc](https://github.com/onnx/onnx/blob/main/docs/PythonAPIOverview.md), [Leimao's Blog](https://leimao.github.io/blog/ONNX-Python-API/)
- ONNX IO Stream [Leimao's Blog](https://leimao.github.io/blog/ONNX-IO-Stream/) - ONNX IO Stream [Leimao's Blog](https://leimao.github.io/blog/ONNX-IO-Stream/)
- [Netron](https://github.com/lutzroeder/netron)
- [onnx-utils](https://github.com/saurabh-shandilya/onnx-utils) - [onnx-utils](https://github.com/saurabh-shandilya/onnx-utils)
- [flask](https://github.com/pallets/flask) - [sweetalert](https://github.com/t4t5/sweetalert)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

@ -215,8 +215,6 @@ host.BrowserHost = class {
const downloadButton = this.document.getElementById('download-graph'); const downloadButton = this.document.getElementById('download-graph');
downloadButton.addEventListener('click', () => { downloadButton.addEventListener('click', () => {
console.log(this) console.log(this)
// console.log(this._view._graph._modelNodeName2State)
// console.log(this._view._graph._renameMap)
// https://healeycodes.com/talking-between-languages // https://healeycodes.com/talking-between-languages
fetch('/download', { fetch('/download', {
// Declare what type of data we're sending // Declare what type of data we're sending
@ -225,10 +223,7 @@ host.BrowserHost = class {
}, },
// Specify the method // Specify the method
method: 'POST', method: 'POST',
// https://blog.csdn.net/Crazy_SunShine/article/details/80624366
body: JSON.stringify({ body: JSON.stringify({
// 'node_states' : this._mapToJson(this._view._graph._modelNodeName2State),
// 'node_renamed_io' : this._twoLevelMapToJson(this._view._graph._renameMap),
'node_states' : this.mapToObjectRec(this._view._graph._modelNodeName2State), 'node_states' : this.mapToObjectRec(this._view._graph._modelNodeName2State),
'node_renamed_io' : this.mapToObjectRec(this._view._graph._renameMap), 'node_renamed_io' : this.mapToObjectRec(this._view._graph._renameMap),
} }
@ -246,8 +241,8 @@ host.BrowserHost = class {
swal("Success!", "Modified model has been successfuly saved in ./modified_onnx/", "success"); swal("Success!", "Modified model has been successfuly saved in ./modified_onnx/", "success");
} }
else { else {
swal("Error happens!", "You can find it out or create an issue on", "error"); swal("Error happens!", "You can find it out or create an issue on https://github.com/ZhangGe6/onnx-modifier", "error");
// alert('Error happens, you can find it out or create an issue on ') // alert('Error happens, you can find it out or create an issue on https://github.com/ZhangGe6/onnx-modifier')
} }
}); });
}); });
@ -286,19 +281,14 @@ host.BrowserHost = class {
openFileDialog.click(); openFileDialog.click();
}); });
openFileDialog.addEventListener('change', (e) => { openFileDialog.addEventListener('change', (e) => {
// console.log(e)
// console.log(e.target.value)
if (e.target && e.target.files && e.target.files.length > 0) { if (e.target && e.target.files && e.target.files.length > 0) {
const files = Array.from(e.target.files); const files = Array.from(e.target.files);
const file = files.find((file) => this._view.accept(file.name)); const file = files.find((file) => this._view.accept(file.name));
// console.log(file) // console.log(file)
this.upload_filename = file.name; this.upload_filename = file.name;
var form = new FormData(); var form = new FormData();
// console.log(file)
form.append('file', file); form.append('file', file);
// console.log(form)
// console.log(form.get('file'))
// https://stackoverflow.com/questions/66039996/javascript-fetch-upload-files-to-python-flask-restful // https://stackoverflow.com/questions/66039996/javascript-fetch-upload-files-to-python-flask-restful
fetch('/return_file', { fetch('/return_file', {
method: 'POST', method: 'POST',
@ -361,14 +351,10 @@ host.BrowserHost = class {
require(id) { require(id) {
const url = this._url('../static/' + id + '.js'); const url = this._url('../static/' + id + '.js');
this.window.__modules__ = this.window.__modules__ || {}; this.window.__modules__ = this.window.__modules__ || {};
// console.log(this.window.__modules__)
// console.log(url) // file:///C:/Users/ZhangGe/Desktop/netron/source/./onnx.js
// console.log(this.window.__modules__[url]) // undefined
if (this.window.__modules__[url]) { if (this.window.__modules__[url]) {
return Promise.resolve(this.window.__exports__[url]); return Promise.resolve(this.window.__exports__[url]);
} }
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
// console.log('here')
this.window.module = { exports: {} }; this.window.module = { exports: {} };
const script = document.createElement('script'); const script = document.createElement('script');
script.setAttribute('id', id); script.setAttribute('id', id);
@ -379,8 +365,6 @@ host.BrowserHost = class {
const exports = this.window.module.exports; const exports = this.window.module.exports;
delete this.window.module; delete this.window.module;
this.window.__modules__[id] = exports; this.window.__modules__[id] = exports;
// console.log('here')
// console.log(exports)
resolve(exports); resolve(exports);
} }
else { else {
@ -410,7 +394,6 @@ host.BrowserHost = class {
request(file, encoding, base) { request(file, encoding, base) {
const url = base ? (base + '/' + file) : this._url(file); const url = base ? (base + '/' + file) : this._url(file);
// console.log(url)
return this._request(url, null, encoding); return this._request(url, null, encoding);
} }
@ -549,14 +532,8 @@ host.BrowserHost = class {
_open(file, files) { _open(file, files) {
this._view.show('welcome spinner'); this._view.show('welcome spinner');
const context = new host.BrowserHost.BrowserFileContext(this, file, files); const context = new host.BrowserHost.BrowserFileContext(this, file, files);
// console.log(context);
// console.log(model);
context.open().then(() => { context.open().then(() => {
// console.log(context);
// console.log(model); // model is not defined
return this._view.open(context).then((model) => { return this._view.open(context).then((model) => {
// console.log("_open() in index.js is called");
// console.log(model);
this._view.show(null); this._view.show(null);
this.document.title = files[0].name; this.document.title = files[0].name;
return model; return model;
@ -621,6 +598,7 @@ host.BrowserHost = class {
this._view.show('about'); this._view.show('about');
} }
// https://blog.csdn.net/Crazy_SunShine/article/details/80624366
_strMapToObj(strMap){ _strMapToObj(strMap){
let obj = Object.create(null); let obj = Object.create(null);
for (let [k, v] of strMap) { for (let [k, v] of strMap) {
@ -860,17 +838,10 @@ host.BrowserHost.BrowserFileContext = class {
} }
request(file, encoding, base) { request(file, encoding, base) {
// console.log(this)
// console.log(file);
// console.log(encoding);
// console.log(base);
if (base !== undefined) { if (base !== undefined) {
return this._host.request(file, encoding, base); return this._host.request(file, encoding, base);
} }
const blob = this._blobs[file]; const blob = this._blobs[file];
// console.log(blob);
if (!blob) { if (!blob) {
return Promise.reject(new Error("File not found '" + file + "'.")); return Promise.reject(new Error("File not found '" + file + "'."));
} }
@ -920,7 +891,6 @@ host.BrowserHost.BrowserFileContext = class {
return this.request(this._file.name, null).then((stream) => { return this.request(this._file.name, null).then((stream) => {
this._stream = stream; this._stream = stream;
// console.log(this)
}); });
} }
}; };

@ -0,0 +1,95 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="962.000000pt" height="189.000000pt" viewBox="0 0 962.000000 189.000000"
preserveAspectRatio="xMidYMid meet">
<g transform="translate(0.000000,189.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M6742 1638 c-9 -9 -12 -85 -12 -279 l0 -267 -58 57 c-66 66 -128 93
-220 94 -91 0 -158 -27 -223 -92 -80 -80 -103 -143 -104 -282 0 -102 1 -107
38 -182 29 -59 51 -87 88 -117 131 -103 311 -92 426 27 l53 54 0 -54 c0 -57
12 -77 45 -77 45 0 45 -5 45 565 0 570 0 565 -45 565 -12 0 -26 -5 -33 -12z
m-166 -483 c47 -19 103 -73 130 -126 21 -42 24 -62 24 -158 0 -100 -2 -113
-28 -162 -50 -96 -143 -146 -253 -136 -97 8 -162 55 -211 151 -30 58 -36 185
-13 260 20 62 79 137 127 162 62 32 157 36 224 9z"/>
<path d="M7623 1640 c-64 -15 -107 -46 -139 -98 -37 -61 -44 -95 -44 -219 l0
-93 -47 0 c-62 0 -90 -8 -97 -27 -11 -28 14 -42 77 -45 l62 -3 5 -315 5 -315
35 0 35 0 5 315 5 315 107 3 c109 3 135 12 122 45 -8 21 -36 27 -143 27 l-94
0 6 106 c10 169 50 225 173 242 53 8 76 31 55 56 -14 17 -71 20 -128 6z"/>
<path d="M7083 1503 c-8 -3 -13 -25 -13 -59 0 -49 2 -54 25 -60 44 -11 55 0
55 60 0 61 -20 79 -67 59z"/>
<path d="M7890 1491 c-24 -46 -5 -111 33 -111 34 0 47 19 47 65 0 23 -5 46
-12 53 -18 18 -56 14 -68 -7z"/>
<path d="M5419 1272 c-213 -71 -338 -309 -269 -516 58 -174 215 -287 400 -287
369 1 553 439 293 699 -32 33 -79 65 -120 85 -58 27 -81 32 -158 34 -67 2
-104 -2 -146 -15z m291 -55 c107 -51 185 -152 210 -271 50 -242 -170 -471
-418 -436 -132 18 -238 94 -295 209 -29 60 -32 73 -32 161 1 82 4 102 28 150
49 102 119 166 220 202 78 28 213 21 287 -15z"/>
<path d="M5548 1129 c-10 -5 -18 -19 -18 -29 0 -30 -92 -73 -159 -74 -40 -1
-57 -6 -65 -18 -15 -24 2 -50 42 -63 33 -11 61 -40 62 -63 0 -26 -41 -72 -64
-72 -47 0 -62 -49 -22 -75 18 -12 29 -13 48 -5 33 16 158 -39 158 -69 0 -25
34 -44 60 -36 19 6 35 40 28 61 -2 5 31 42 74 82 63 60 80 72 100 67 36 -9 65
26 50 60 -9 19 -19 25 -43 25 -44 0 -179 120 -179 160 0 26 -26 60 -46 60 -5
0 -17 -5 -26 -11z m-25 -100 c-10 -17 -25 -36 -33 -43 -18 -16 -90 -9 -90 9 0
12 103 64 128 65 10 0 8 -8 -5 -31z m163 -51 c41 -39 72 -73 71 -75 -10 -9
-137 39 -137 52 0 8 -10 21 -22 29 -20 14 -24 14 -46 0 -13 -8 -30 -14 -38
-12 -11 2 -9 11 11 41 41 59 71 53 161 -35z m-229 -16 c10 -7 10 -12 0 -26
-13 -17 -15 -17 -43 8 l-29 25 30 1 c17 0 36 -4 42 -8z m63 -12 c11 -7 12 -14
4 -27 -30 -49 -81 -38 -54 12 14 27 26 30 50 15z m178 -45 c29 -9 51 -22 49
-28 -6 -19 -119 -49 -139 -37 -10 5 -33 10 -52 10 -19 0 -39 7 -47 16 -11 14
-10 18 6 31 11 8 30 11 43 8 13 -3 32 1 44 9 11 8 25 13 32 11 6 -2 35 -11 64
-20z m-173 -81 c0 -30 -39 -29 -55 1 -12 23 -12 28 0 35 20 12 55 -12 55 -36z
m164 -44 c-90 -84 -122 -91 -165 -35 -33 43 -25 54 19 30 27 -14 38 -15 55 -6
12 6 22 20 22 30 0 14 16 23 68 38 37 11 69 19 71 17 3 -2 -29 -35 -70 -74z
m-219 19 c0 -9 -70 -17 -76 -8 -2 4 8 16 23 28 26 18 29 19 41 4 6 -9 12 -20
12 -24z m44 -56 c34 -48 19 -53 -57 -18 -74 34 -75 52 -1 54 25 1 36 -6 58
-36z"/>
<path d="M225 1256 c-104 -26 -156 -72 -174 -156 -14 -66 -14 -374 0 -440 19
-91 80 -139 203 -161 124 -23 257 14 313 88 l28 36 0 257 0 257 -28 36 c-34
45 -84 72 -162 86 -73 14 -116 13 -180 -3z m191 -51 c57 -17 100 -56 114 -106
13 -44 13 -394 0 -438 -11 -39 -43 -77 -83 -98 -39 -20 -153 -28 -205 -14 -55
15 -109 63 -122 109 -16 58 -13 416 4 455 38 90 165 130 292 92z"/>
<path d="M825 1257 c-3 -6 -4 -179 -3 -382 l3 -370 28 -3 c15 -2 28 -2 29 0 1
2 5 144 8 317 l5 313 199 -293 c109 -162 208 -304 219 -317 12 -13 30 -22 42
-20 20 3 20 9 23 380 2 369 2 377 -18 383 -11 3 -24 3 -30 0 -6 -4 -10 -120
-10 -321 0 -208 -3 -313 -10 -309 -6 3 -100 141 -210 305 -110 164 -210 306
-222 314 -27 19 -47 20 -53 3z"/>
<path d="M1615 1257 c-3 -6 -4 -179 -3 -382 l3 -370 25 0 25 0 5 319 5 319
204 -301 c112 -166 213 -311 224 -322 10 -12 28 -20 40 -18 l22 3 3 377 c2
373 2 377 -18 383 -48 15 -50 4 -52 -325 l-3 -307 -205 304 c-113 168 -214
311 -225 319 -24 17 -44 18 -50 1z"/>
<path d="M2331 1261 c-18 -11 -12 -21 121 -214 62 -89 107 -164 104 -172 -3
-8 -53 -82 -110 -165 -58 -83 -111 -160 -116 -171 -14 -25 -5 -39 24 -39 18 0
45 33 136 165 62 91 115 163 119 160 3 -3 56 -77 116 -163 92 -131 114 -157
135 -157 14 0 26 6 28 16 1 8 -52 93 -119 188 l-121 174 49 71 c26 39 82 119
122 178 76 109 85 143 39 136 -17 -2 -49 -41 -116 -138 -51 -74 -103 -148
-115 -165 l-23 -29 -103 152 c-129 191 -134 196 -170 173z"/>
<path d="M8457 1240 c-272 -47 -379 -414 -186 -634 106 -120 313 -141 461 -47
48 31 111 106 105 125 -2 6 -18 12 -35 14 -26 3 -39 -4 -74 -41 -59 -60 -100
-79 -183 -85 -58 -4 -80 0 -123 18 -86 37 -146 124 -159 230 l-6 50 289 0
c159 0 295 4 303 9 22 14 7 105 -29 178 -66 133 -214 208 -363 183z m159 -85
c50 -20 101 -73 129 -130 43 -91 59 -85 -230 -85 l-254 0 14 45 c14 49 22 61
69 113 69 75 173 97 272 57z"/>
<path d="M7087 1218 c-16 -12 -17 -42 -15 -353 l3 -340 35 0 35 0 3 340 c2
311 1 341 -15 353 -9 6 -20 12 -23 12 -3 0 -14 -6 -23 -12z"/>
<path d="M7910 1223 c-8 -3 -18 -11 -22 -17 -4 -6 -8 -157 -8 -337 0 -342 1
-349 45 -349 44 0 45 7 45 357 0 318 -1 333 -19 343 -11 5 -21 10 -23 9 -2 0
-10 -3 -18 -6z"/>
<path d="M9090 1222 c-8 -3 -18 -10 -22 -16 -4 -6 -8 -157 -8 -337 0 -342 1
-349 45 -349 42 0 45 15 45 214 0 203 10 266 50 331 29 47 65 73 116 86 50 13
67 29 58 54 -6 14 -16 16 -55 13 -57 -6 -122 -47 -147 -92 l-17 -31 -5 59 c-4
47 -9 60 -25 66 -11 4 -27 5 -35 2z"/>
<path d="M4125 1171 c-43 -19 -98 -75 -112 -113 -6 -18 -9 -8 -13 42 l-5 65
-35 0 -35 0 0 -320 0 -320 35 0 35 0 5 215 c5 211 6 216 33 272 32 65 64 92
128 109 88 24 171 -15 201 -91 14 -37 17 -82 18 -265 0 -121 4 -226 9 -233 5
-8 21 -12 37 -10 l29 3 5 215 c5 211 6 216 33 272 31 63 61 89 124 108 95 29
187 -17 212 -105 6 -23 11 -130 11 -255 0 -118 4 -221 9 -228 5 -8 21 -12 37
-10 l29 3 0 250 c0 249 0 251 -26 300 -15 30 -42 62 -68 80 -58 41 -163 48
-238 15 -58 -24 -82 -47 -111 -105 l-20 -39 -26 51 c-40 79 -102 113 -205 113
-32 0 -73 -8 -96 -19z"/>
<path d="M3308 919 c-25 -14 -24 -65 1 -79 32 -16 183 -13 209 6 26 18 28 46
6 68 -12 12 -37 16 -107 16 -51 0 -100 -5 -109 -11z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.0 KiB

@ -5,15 +5,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
<meta http-equiv="Content-Security-Policy" content="script-src 'self' www.google-analytics.com;"> <meta http-equiv="Content-Security-Policy" content="script-src 'self' www.google-analytics.com;">
<meta name="version" content="0.0.0"> <meta name="version" content="0.0.0">
<title>Netron</title> <title>onnx-modifier</title>
<link rel="stylesheet" type="text/css" href="{{url_for('static', filename='view-grapher.css')}}"> <link rel="stylesheet" type="text/css" href="{{url_for('static', filename='view-grapher.css')}}">
<link rel="stylesheet" type="text/css" href="{{url_for('static', filename='view-sidebar.css')}}"> <link rel="stylesheet" type="text/css" href="{{url_for('static', filename='view-sidebar.css')}}">
<link rel="stylesheet" type="text/css" href="{{url_for('static', filename='sweetalert.css')}}"> <link rel="stylesheet" type="text/css" href="{{url_for('static', filename='sweetalert.css')}}">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
<link rel="icon" type="image/png" href="icon.png">
<link rel="apple-touch-icon" type="image/png" href="icon.png">
<link rel="apple-touch-icon-precomposed" type="image/png" href="icon.png">
<link rel="fluid-icon" type="image/png" href="icon.png">
<script src="https://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script> <script src="https://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
<script src="{{url_for('static', filename='sweetalert.min.js')}}"></script> <script src="{{url_for('static', filename='sweetalert.min.js')}}"></script>
<script src="{{url_for('static', filename='dagre.js')}}"></script> <script src="{{url_for('static', filename='dagre.js')}}"></script>
@ -267,124 +262,17 @@ button { font-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI"
</div> </div>
<div id="transparent" class="transparent"></div> <div id="transparent" class="transparent"></div>
<div class="center logo"> <div class="center logo">
<a href="https://github.com/lutzroeder/netron" target="blank_"> <a href="https://github.com/ZhangGe6/onnx-modifier" target="blank_">
<svg class="center logo-text" viewbox="0 0 5120 1024"> <img src="../static/logo.svg"
<g transform="scale(9) translate(-44,-15)"> title="onnx-modifier is a tool to modify onnx models in a visualization fashion. It is built based on Netron and flask."
<g transform="matrix(100,0,0,100,60.9965,126)"> height="130">
<path class="logo-glyph" d="M0.089,0L0.089,-0.745L0.595,-0.147L0.595,-0.715L0.656,-0.715L0.656,0.021L0.15,-0.578L0.15,0L0.089,0Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(100,0,0,100,164.341,126)">
<path class="logo-glyph" d="M0.089,0L0.089,-0.715L0.443,-0.715L0.443,-0.654L0.154,-0.654L0.154,-0.43L0.443,-0.43L0.443,-0.369L0.154,-0.369L0.154,-0.061L0.443,-0.061L0.443,0L0.089,0Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(100,0,0,100,244.491,126)">
<path class="logo-glyph" d="M0.216,0L0.216,-0.654L0.019,-0.654L0.019,-0.715L0.478,-0.715L0.478,-0.654L0.281,-0.654L0.281,0L0.216,0Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(100,0,0,100,323.031,126)">
<path class="logo-glyph" d="M0.154,-0.658L0.154,-0.394L0.219,-0.394C0.28,-0.394 0.322,-0.404 0.346,-0.423C0.37,-0.442 0.382,-0.475 0.382,-0.522C0.382,-0.571 0.369,-0.606 0.345,-0.627C0.32,-0.648 0.278,-0.658 0.219,-0.658L0.154,-0.658ZM0.523,0L0.444,0L0.193,-0.341L0.154,-0.341L0.154,0L0.089,0L0.089,-0.715L0.22,-0.715C0.298,-0.715 0.356,-0.699 0.394,-0.667C0.433,-0.634 0.452,-0.585 0.452,-0.52C0.452,-0.464 0.436,-0.421 0.403,-0.389C0.37,-0.357 0.324,-0.341 0.266,-0.341L0.523,0Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(100,0,0,100,520.979,126)">
<path class="logo-glyph" d="M0.089,0L0.089,-0.745L0.595,-0.147L0.595,-0.715L0.656,-0.715L0.656,0.021L0.15,-0.578L0.15,0L0.089,0Z" style="fill-rule:nonzero;"/>
</g>
</g>
</svg>
<svg class="center logo-icon" viewbox="0 0 1024 1024">
<circle class="logo-stroke" cx="512" cy="512" r="431" fill="none" stroke-width="32"></circle>
<circle class="logo-border" cx="512" cy="512" r="450" fill="none" stroke-width="6"></circle>
<circle class="logo-border" cx="512" cy="512" r="412" fill="none" stroke-width="6"></circle>
<line class="logo-stroke" x1="296" y1="392" x2="540" y2="280" stroke-width="12"></line>
<line class="logo-stroke" x1="296" y1="632" x2="540" y2="280" stroke-width="12"></line>
<line class="logo-stroke" x1="296" y1="392" x2="540" y2="435" stroke-width="12"></line>
<line class="logo-stroke" x1="296" y1="632" x2="540" y2="435" stroke-width="12"></line>
<line class="logo-stroke" x1="296" y1="392" x2="540" y2="590" stroke-width="12"></line>
<line class="logo-stroke" x1="296" y1="632" x2="540" y2="590" stroke-width="12"></line>
<line class="logo-stroke" x1="296" y1="392" x2="540" y2="744" stroke-width="12"></line>
<line class="logo-stroke" x1="296" y1="632" x2="540" y2="744" stroke-width="12"></line>
<line class="logo-stroke" x1="540" y1="280" x2="785" y2="512" stroke-width="12"></line>
<line class="logo-stroke" x1="540" y1="590" x2="785" y2="512" stroke-width="12"></line>
<line class="logo-stroke" x1="540" y1="435" x2="785" y2="512" stroke-width="12"></line>
<line class="logo-stroke" x1="540" y1="744" x2="785" y2="512" stroke-width="12"></line>
<g transform="translate(296, 392)">
<circle class="logo-fill" cx="0" cy="0" r="51"></circle>
<circle class="logo-border" cx="0" cy="0" r="51" fill="none" stroke-width="6"></circle>
</g>
<g transform="translate(296, 632)">
<circle class="logo-fill" cx="0" cy="0" r="51"></circle>
<circle class="logo-border" cx="0" cy="0" r="51" fill="none" stroke-width="6"></circle>
</g>
<g transform="translate(540, 280)">
<circle class="logo-fill" cx="0" cy="0" r="51"></circle>
<circle class="logo-border" cx="0" cy="0" r="51" fill="none" stroke-width="6"></circle>
</g>
<g transform="translate(540, 435)">
<circle class="logo-fill" cx="0" cy="0" r="51"></circle>
<circle class="logo-border" cx="0" cy="0" r="51" fill="none" stroke-width="6"></circle>
</g>
<g transform="translate(540, 590)">
<circle class="logo-fill" cx="0" cy="0" r="51"></circle>
<circle class="logo-border" cx="0" cy="0" r="51" fill="none" stroke-width="6"></circle>
</g>
<g transform="translate(540, 744)">
<circle class="logo-fill" cx="0" cy="0" r="51"></circle>
<circle class="logo-border" cx="0" cy="0" r="51" fill="none" stroke-width="6"></circle>
</g>
<g transform="translate(785, 512)">
<circle class="logo-fill" cx="0" cy="0" r="51"></circle>
<circle class="logo-border" cx="0" cy="0" r="51" fill="none" stroke-width="6"></circle>
</g>
</svg>
<svg id="logo-spinner" class="center logo-spinner" viewbox="0 0 1024 1024">
<g transform="translate(512, 512)" style="opacity: 1">
<path class="logo-spinner-stroke" d="M-431,0 A-431,-431 0 0,1 0,-431" stroke-width="24" fill="None"></path>
</g>
</svg>
</a>
<a href="https://www.lutzroeder.com" target="blank_">
<svg class="center logo-name" viewbox="0 0 5120 300">
<g transform="scale(5.8) translate(20, 0)">
<g transform="matrix(30,0,0,30,18.9123,38)">
<path class="logo-glyph" d="M0.089,-0L0.089,-0.715L0.154,-0.715L0.154,-0.061L0.399,-0.061L0.399,-0L0.089,-0Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(30,0,0,30,46.7613,38)">
<path class="logo-glyph" d="M0.086,-0.715L0.15,-0.715L0.15,-0.248C0.15,-0.177 0.166,-0.125 0.198,-0.091C0.23,-0.056 0.28,-0.039 0.346,-0.039C0.412,-0.039 0.46,-0.056 0.493,-0.091C0.525,-0.125 0.541,-0.177 0.541,-0.248L0.541,-0.715L0.606,-0.715L0.606,-0.269C0.606,-0.172 0.584,-0.1 0.542,-0.052C0.499,-0.005 0.433,0.019 0.346,0.019C0.259,0.019 0.193,-0.005 0.15,-0.052C0.107,-0.1 0.086,-0.172 0.086,-0.269L0.086,-0.715Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(30,0,0,30,83.5133,38)">
<path class="logo-glyph" d="M0.216,-0L0.216,-0.654L0.019,-0.654L0.019,-0.715L0.478,-0.715L0.478,-0.654L0.281,-0.654L0.281,-0L0.216,-0Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(30,0,0,30,114.421,38)">
<path class="logo-glyph" d="M0.012,-0L0.437,-0.656L0.074,-0.656L0.074,-0.715L0.548,-0.715L0.125,-0.06L0.505,-0.06L0.505,-0L0.012,-0Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(30,0,0,30,171.777,38)">
<path class="logo-glyph" d="M0.154,-0.658L0.154,-0.394L0.219,-0.394C0.28,-0.394 0.322,-0.404 0.346,-0.423C0.37,-0.442 0.382,-0.475 0.382,-0.522C0.382,-0.571 0.369,-0.606 0.345,-0.627C0.32,-0.648 0.278,-0.658 0.219,-0.658L0.154,-0.658ZM0.523,-0L0.444,-0L0.193,-0.341L0.154,-0.341L0.154,-0L0.089,-0L0.089,-0.715L0.22,-0.715C0.298,-0.715 0.356,-0.699 0.394,-0.667C0.433,-0.634 0.452,-0.585 0.452,-0.52C0.452,-0.464 0.436,-0.421 0.403,-0.389C0.37,-0.357 0.324,-0.341 0.266,-0.341L0.523,-0Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(30,0,0,30,203.607,38)">
<path class="logo-glyph" d="M0.437,-0.039C0.479,-0.039 0.519,-0.047 0.557,-0.063C0.595,-0.078 0.629,-0.101 0.659,-0.131C0.689,-0.161 0.712,-0.196 0.727,-0.234C0.743,-0.273 0.751,-0.313 0.751,-0.356C0.751,-0.399 0.743,-0.44 0.728,-0.478C0.712,-0.516 0.689,-0.55 0.659,-0.581C0.63,-0.611 0.596,-0.634 0.558,-0.649C0.52,-0.665 0.48,-0.673 0.437,-0.673C0.395,-0.673 0.355,-0.665 0.317,-0.649C0.28,-0.634 0.246,-0.611 0.216,-0.581C0.186,-0.55 0.163,-0.516 0.147,-0.478C0.132,-0.44 0.124,-0.399 0.124,-0.356C0.124,-0.313 0.132,-0.272 0.147,-0.234C0.163,-0.196 0.186,-0.161 0.216,-0.131C0.246,-0.101 0.279,-0.078 0.316,-0.062C0.354,-0.047 0.394,-0.039 0.437,-0.039ZM0.82,-0.356C0.82,-0.306 0.81,-0.258 0.791,-0.212C0.772,-0.167 0.744,-0.126 0.708,-0.091C0.671,-0.055 0.63,-0.028 0.583,-0.009C0.537,0.01 0.488,0.019 0.437,0.019C0.386,0.019 0.337,0.01 0.291,-0.009C0.245,-0.028 0.203,-0.055 0.167,-0.091C0.131,-0.127 0.103,-0.168 0.084,-0.213C0.065,-0.258 0.055,-0.306 0.055,-0.356C0.055,-0.407 0.065,-0.455 0.084,-0.501C0.103,-0.546 0.131,-0.587 0.167,-0.623C0.203,-0.659 0.244,-0.685 0.29,-0.704C0.335,-0.722 0.385,-0.731 0.437,-0.731C0.49,-0.731 0.539,-0.722 0.585,-0.703C0.631,-0.685 0.672,-0.658 0.708,-0.623C0.744,-0.587 0.772,-0.546 0.791,-0.501C0.81,-0.455 0.82,-0.407 0.82,-0.356Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(30,0,0,30,245.853,38)">
<path class="logo-glyph" d="M0.089,-0L0.089,-0.715L0.443,-0.715L0.443,-0.654L0.154,-0.654L0.154,-0.43L0.443,-0.43L0.443,-0.369L0.154,-0.369L0.154,-0.061L0.443,-0.061L0.443,-0L0.089,-0Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(30,0,0,30,277.243,38)">
<path class="logo-glyph" d="M0.154,-0.056L0.245,-0.056C0.319,-0.056 0.371,-0.06 0.402,-0.069C0.433,-0.077 0.459,-0.091 0.481,-0.111C0.511,-0.139 0.534,-0.174 0.549,-0.215C0.564,-0.257 0.572,-0.305 0.572,-0.358C0.572,-0.413 0.564,-0.461 0.549,-0.502C0.533,-0.544 0.51,-0.578 0.48,-0.605C0.457,-0.625 0.429,-0.64 0.396,-0.648C0.364,-0.657 0.306,-0.661 0.224,-0.661L0.154,-0.661L0.154,-0.056ZM0.089,-0L0.089,-0.715L0.2,-0.715C0.299,-0.715 0.37,-0.71 0.412,-0.7C0.453,-0.69 0.489,-0.674 0.519,-0.65C0.559,-0.618 0.589,-0.578 0.61,-0.528C0.631,-0.478 0.641,-0.421 0.641,-0.357C0.641,-0.293 0.631,-0.236 0.61,-0.186C0.589,-0.136 0.559,-0.096 0.52,-0.066C0.489,-0.042 0.454,-0.025 0.414,-0.015C0.374,-0.005 0.31,-0 0.222,-0L0.089,-0Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(30,0,0,30,314.142,38)">
<path class="logo-glyph" d="M0.089,-0L0.089,-0.715L0.443,-0.715L0.443,-0.654L0.154,-0.654L0.154,-0.43L0.443,-0.43L0.443,-0.369L0.154,-0.369L0.154,-0.061L0.443,-0.061L0.443,-0L0.089,-0Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(30,0,0,30,345.532,38)">
<path class="logo-glyph" d="M0.154,-0.658L0.154,-0.394L0.219,-0.394C0.28,-0.394 0.322,-0.404 0.346,-0.423C0.37,-0.442 0.382,-0.475 0.382,-0.522C0.382,-0.571 0.369,-0.606 0.345,-0.627C0.32,-0.648 0.278,-0.658 0.219,-0.658L0.154,-0.658ZM0.523,-0L0.444,-0L0.193,-0.341L0.154,-0.341L0.154,-0L0.089,-0L0.089,-0.715L0.22,-0.715C0.298,-0.715 0.356,-0.699 0.394,-0.667C0.433,-0.634 0.452,-0.585 0.452,-0.52C0.452,-0.464 0.436,-0.421 0.403,-0.389C0.37,-0.357 0.324,-0.341 0.266,-0.341L0.523,-0Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(30,0,0,30,376.911,38)">
<path class="logo-glyph" d="M0.06,-0.468L0.155,-0.731L0.228,-0.699L0.1,-0.452L0.06,-0.468Z" style="fill-rule:nonzero;"/>
</g>
<g transform="matrix(30,0,0,30,401.549,38)">
<path class="logo-glyph" d="M0.034,-0.12L0.09,-0.15C0.1,-0.115 0.118,-0.087 0.144,-0.068C0.169,-0.049 0.2,-0.039 0.236,-0.039C0.281,-0.039 0.316,-0.052 0.342,-0.079C0.367,-0.106 0.38,-0.143 0.38,-0.19C0.38,-0.224 0.371,-0.253 0.354,-0.276C0.337,-0.299 0.3,-0.325 0.244,-0.355C0.172,-0.393 0.124,-0.427 0.101,-0.456C0.077,-0.485 0.065,-0.519 0.065,-0.56C0.065,-0.611 0.082,-0.652 0.116,-0.684C0.151,-0.716 0.195,-0.732 0.25,-0.732C0.286,-0.732 0.317,-0.724 0.344,-0.709C0.37,-0.694 0.392,-0.671 0.408,-0.641L0.358,-0.611C0.347,-0.631 0.333,-0.647 0.314,-0.658C0.295,-0.668 0.272,-0.674 0.246,-0.674C0.211,-0.674 0.183,-0.663 0.162,-0.643C0.141,-0.622 0.131,-0.594 0.131,-0.559C0.131,-0.509 0.172,-0.462 0.255,-0.419C0.27,-0.411 0.281,-0.405 0.289,-0.401C0.35,-0.367 0.391,-0.336 0.411,-0.306C0.432,-0.276 0.442,-0.237 0.442,-0.19C0.442,-0.126 0.423,-0.075 0.386,-0.037C0.348,0 0.297,0.019 0.233,0.019C0.186,0.019 0.146,0.007 0.113,-0.016C0.079,-0.039 0.053,-0.074 0.034,-0.12Z" style="fill-rule:nonzero;"/>
</g>
</g>
</svg>
</a> </a>
<div class="center logo-message"> <div class="center logo-message">
<div style="height: 30px; text-align: center;">Version <span id="version" class="select">{version}</span></div> <div style="height: 30px; text-align: center;">Version <span id="version" class="select">{version}</span></div>
<div style="height: 30px; text-align: center;">Copyright &copy; <a href="https://www.lutzroeder.com" target="blank_">Lutz Roeder</a></div> <div style="height: 30px; text-align: center;">Copyright &copy; <a href="https://github.com/ZhangGe6" target="blank_">Lutz Roeder</a></div>
</div> </div>
<a id="logo-github" class="center logo-github" href="https://github.com/lutzroeder/netron" target="blank_"> <a id="logo-github" class="center logo-github" href="https://github.com/ZhangGe6/onnx-modifier" target="blank_">
<svg viewbox="0 0 438.549 438.549"> <svg viewbox="0 0 438.549 438.549">
<path class="logo-fill" d="M409.132,114.573c-19.608-33.596-46.205-60.194-79.798-79.8C295.736,15.166,259.057,5.365,219.271,5.365 <path class="logo-fill" d="M409.132,114.573c-19.608-33.596-46.205-60.194-79.798-79.8C295.736,15.166,259.057,5.365,219.271,5.365
c-39.781,0-76.472,9.804-110.063,29.408c-33.596,19.605-60.192,46.204-79.8,79.8C9.803,148.168,0,184.854,0,224.63 c-39.781,0-76.472,9.804-110.063,29.408c-33.596,19.605-60.192,46.204-79.8,79.8C9.803,148.168,0,184.854,0,224.63
@ -411,7 +299,7 @@ button { font-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI"
<span class="center consent-message">This app uses cookies to report errors and anonymous usage information.</span> <span class="center consent-message">This app uses cookies to report errors and anonymous usage information.</span>
<button id="consent-accept-button" class="center consent-accept-button">Accept</button> <button id="consent-accept-button" class="center consent-accept-button">Accept</button>
<button id="open-file-button" class="center open-file-button">Open Model&hellip;</button> <button id="open-file-button" class="center open-file-button">Open Model&hellip;</button>
<button id="github-button" class="center github-button">Download</button> <button id="github-button" class="center github-button">Github repo</button>
<input type="file" id="open-file-dialog" class="open-file-dialog" multiple="false" accept=".onnx, .ort, .pb, .meta, .tflite, .lite, .tfl, .keras, .h5, .hd5, .hdf5, .json, .model, .mar, .params, .param, .armnn, .mnn, .ncnn, .tnnproto, .tmfile, .ms, .om, .nn, .uff, .rknn, .xmodel, .kmodel, .paddle, .pdmodel, .pdparams, .nb, .dnn, .cmf, .mlmodel, .mlpackage, .caffemodel, .pbtxt, .prototxt, .pkl, .pt, .pth, .ptl, .t7, .joblib, .cfg, .xml, .zip, .tar"> <input type="file" id="open-file-dialog" class="open-file-dialog" multiple="false" accept=".onnx, .ort, .pb, .meta, .tflite, .lite, .tfl, .keras, .h5, .hd5, .hdf5, .json, .model, .mar, .params, .param, .armnn, .mnn, .ncnn, .tnnproto, .tmfile, .ms, .om, .nn, .uff, .rknn, .xmodel, .kmodel, .paddle, .pdmodel, .pdparams, .nb, .dnn, .cmf, .mlmodel, .mlpackage, .caffemodel, .pbtxt, .prototxt, .pkl, .pt, .pth, .ptl, .t7, .joblib, .cfg, .xml, .zip, .tar">
<!-- Preload fonts to workaround Chrome SVG layout issue --> <!-- Preload fonts to workaround Chrome SVG layout issue -->
<div style="font-weight: normal; color: rgba(0, 0, 0, 0.01); user-select: none;">.</div> <div style="font-weight: normal; color: rgba(0, 0, 0, 0.01); user-select: none;">.</div>

Loading…
Cancel
Save