Procházet zdrojové kódy

Remove --optimize from python server

Lutz Roeder před 8 roky
rodič
revize
627ecb01fb
5 změnil soubory, kde provedl 8 přidání a 81 odebrání
  1. 4 5
      setup.py
  2. 1 2
      src/netron
  3. 3 49
      src/netron.py
  4. 0 22
      src/onnx_ml_pb2.py
  5. 0 3
      tools/onnx-generate

+ 4 - 5
setup.py

@@ -20,10 +20,10 @@ package_data={
         'netron',
         'netron.py',
         'logo.svg',
-        'onnx_ml_pb2.py',
+        'favicon.ico',
         'onnx.js',
         'onnx-operator.json',
-        'view-browser.js',
+        'onnx-model.js',
         'tf.js',
         'tf-operator.pb',
         'tf-model.js',
@@ -33,9 +33,8 @@ package_data={
         'hdf5.js',
         'keras-operator.json',
         'keras-model.js',
-        'favicon.ico',
         'view-browser.html',
-        'onnx-model.js',
+        'view-browser.js',
         'view-render.css',
         'view-render.js',
         'view-template.js',
@@ -44,7 +43,7 @@ package_data={
     ]
 }
 
-install_requires = [ 'protobuf' ]
+install_requires = [ ]
 
 scripts = [ 'src/netron' ]
 

+ 1 - 2
src/netron

@@ -12,10 +12,9 @@ if __name__ == '__main__':
     parser.add_argument('--port', help='port to serve (default: 8080)', type=int, default=8080)
     parser.add_argument('--host', help='host to serve (default: localhost)', default='localhost')
     parser.add_argument('--browse', help='launch web browser', action='store_true')
-    parser.add_argument('-o', '--optimize', help='remove tensor data', action='store_true')
     args = parser.parse_args()
     if not os.path.exists(args.file):
         print("Model file '" + args.file + "' does not exist.")
         sys.exit(2)
-    netron.serve_file(args.file, verbose=args.verbose, browse=args.browse, port=args.port, host=args.host, optimize=args.optimize)
+    netron.serve_file(args.file, verbose=args.verbose, browse=args.browse, port=args.port, host=args.host)
     sys.exit(0)

+ 3 - 49
src/netron.py

@@ -6,7 +6,6 @@ import platform
 import sys
 import threading
 import webbrowser
-from .onnx_ml_pb2 import ModelProto
 
 if sys.version_info[0] > 2:
     from urllib.parse import urlparse
@@ -95,59 +94,14 @@ class MyHTTPServer(HTTPServer):
         self.RequestHandlerClass.data = data
         self.RequestHandlerClass.verbose = verbose
 
-def optimize_onnx(model):
-    def remove_tensor_data(tensor):
-        del tensor.string_data[:]
-        del tensor.int32_data[:]
-        del tensor.int64_data[:]
-        del tensor.float_data[:]
-        if tensor.HasField('raw_data'):
-            tensor.raw_data = b''
-    # Remove raw initializer data
-    onnx_model = ModelProto()
-    try:
-        onnx_model.ParseFromString(model.data)
-    except:
-        return False
-    for initializer in onnx_model.graph.initializer:
-        remove_tensor_data(initializer)
-    for node in onnx_model.graph.node:
-        for attribute in node.attribute:
-            if attribute.HasField('t'):
-                remove_tensor_data(attribute.t)
-    model.data = onnx_model.SerializeToString()
-    return True
-
-def optimize_tf(model):
-    return True
-
-def optimize_tflite(model):
-    return True
-
-def optimize_keras(model):
-    return True
-
 class Model:
     def __init__(self, data, file):
         self.data = data
         self.file = file
 
-def serve_data(data, file, verbose=False, browse=False, port=8080, host='localhost', optimize=False):
+def serve_data(data, file, verbose=False, browse=False, port=8080, host='localhost'):
     server = MyHTTPServer((host, port), MyHTTPRequestHandler)
     model = Model(data, file)
-    if optimize:
-        print("Processing '" + file + "'...")
-        ok = False
-        if not ok and file.endswith('.tflite'):
-             ok = optimize_tflite(model)
-        if not ok and os.path.basename(file) == 'saved_model.pb':
-            ok = optimize_tf(model)
-        if not ok and file.endswith('.onnx') or file.endswith('.pb'):
-            ok = optimize_onnx(model)
-        if not ok and file.endswith('.json') or file.endswith('.h5') or file.endswith('.keras'):
-            ok = optimize_keras(model)
-        if not ok and file.endswith('.pb'):
-            ok = optimize_tf(model)
     url = 'http://' + host + ':' + str(port)
     print("Serving '" + file + "' at " + url + "...")
     server.initialize_data(model, verbose)
@@ -160,9 +114,9 @@ def serve_data(data, file, verbose=False, browse=False, port=8080, host='localho
         print("\nStopping...")
         server.server_close()
 
-def serve_file(file, verbose=False, browse=False, port=8080, host='localhost', optimize=False):
+def serve_file(file, verbose=False, browse=False, port=8080, host='localhost'):
     print("Reading '" + file + "'...")
     data = None
     with open(file, 'rb') as binary:
         data = binary.read()
-    serve_data(data, file, verbose=verbose, browse=browse, port=port, host=host, optimize=optimize)
+    serve_data(data, file, verbose=verbose, browse=browse, port=port, host=host)

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 22
src/onnx_ml_pb2.py


+ 0 - 3
tools/onnx-generate

@@ -29,6 +29,3 @@ PYTHONPATH=../third_party/onnx/build/lib python onnx-operator-json.py
 
 echo "Generate '../src/onnx.js'"
 ../node_modules/protobufjs/bin/pbjs -t static-module -w closure -r onnx -o ../src/onnx.js ../third_party/onnx/onnx/onnx-ml.proto
-
-echo "Generate '../src/onnx.py'"
-protoc --python_out=../src --proto_path ../third_party/onnx/onnx onnx-ml.proto

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů