From 30324c1c2ea0d9ec00cfc8577c30d7106256cb44 Mon Sep 17 00:00:00 2001 From: ZhangGe6 Date: Sun, 19 Jun 2022 23:57:14 +0800 Subject: [PATCH] Windows exe is created --- .gitignore | 16 +++++++++--- __pycache__/onnx_modifier.cpython-38.pyc | Bin 7195 -> 7125 bytes app_desktop.py | 31 ++++++++++++++++++++++- readme.md | 15 ++++++++++- static/favicon.png | Bin 0 -> 4610 bytes static/index.js | 6 +++-- 6 files changed, 60 insertions(+), 8 deletions(-) create mode 100644 static/favicon.png diff --git a/.gitignore b/.gitignore index 79a271c..168e62f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,16 @@ +# tmp files */__pycache__/ -gym/ -*ppt -*pptx +build/ +dist/ +*.spec + +# onnx files *.onnx /test_onnx/ -/modified_onnx/ \ No newline at end of file +/modified_onnx/ + +# self maintained files +gym/ +*ppt +*pptx diff --git a/__pycache__/onnx_modifier.cpython-38.pyc b/__pycache__/onnx_modifier.cpython-38.pyc index 04fc9e0f3add0320670a0d638ec20c48c862fa49..3e2d804b64024037aad7f5957408a12233e5f9b8 100644 GIT binary patch delta 33 ncmbPjan+nVl$V!_0SKaW*Kg#OVPgL!rl+T`r?7lvjo330?a&Ky7V{~&|Z*FdQEp2aPX=Z6< Ja In this branch + # Introduction To edit an ONNX model, One common way is to visualize the model graph, and edit it using ONNX Python API. This works fine. However, we have to code to edit, then visualize to check. The two processes may iterate for many times, which is time-consuming. 👋 @@ -27,6 +29,9 @@ Hope it helps! # Getting started +We have two methods to launch `onnx-modifier` now. + +## launch from command line Clone the repo and install the required Python packages by ```bash @@ -45,6 +50,13 @@ python app.py Click the url in the output info generated by flask (`http://127.0.0.1:5000/` for example), then `onnx-modifier` will be launched in the web browser. +## launch from executable file +- Windows: Download [onnx-modifier.exe](https://drive.google.com/file/d/1y7mYlvF0G5iiNDgOFh1ESXlTs8I2ipVQ/view?usp=sharing), double-click it and enjoy. + - Egde browser is used for viewing by default. + +> I recorded how I made the the executable file in `app_desktop.py`. The executable file for other platforms are left for future work. + + Click `Open Model...` to upload the ONNX model to edit. The model will be parsed and shown on the page. # Usage @@ -145,7 +157,7 @@ For quick testing, some typical sample models are provided as following. Most of - [ ] Create executable file for easier launching for the following platforms: - [ ] Linux - - [ ] Windows + - [x] Windows - [ ] Add `merge models` feature # Credits and referred materials @@ -157,3 +169,4 @@ For quick testing, some typical sample models are provided as following. Most of - ONNX IO Stream [Leimao's Blog](https://leimao.github.io/blog/ONNX-IO-Stream/) - [onnx-utils](https://github.com/saurabh-shandilya/onnx-utils) - [sweetalert](https://github.com/t4t5/sweetalert) +- [flaskwebgui](https://github.com/ClimenteA/flaskwebgui) \ No newline at end of file diff --git a/static/favicon.png b/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..39ace4404593e1a87ef81fe1ec443defa072454b GIT binary patch literal 4610 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 console.log(data)) + .then(data => {}) + // .then(data => console.log(data)) } setInterval(keep_alive_server, interval_request)