[
  {
    "path": ".codecov.yml",
    "content": "codecov:\n    bot: lanpa\ncoverage:\n  status:\n    project:                   # measuring the overall project coverage\n      default:                 # context, you can create multiple ones with custom titles\n        enabled: yes \n    patch:\n      default:\n        enabled: no\ncomment:\n  layout: \"diff, flags, files\"\n  behavior: default\n  require_changes: false  # if true: only post the comment if coverage changes\n  require_base: no        # [yes :: must have a base report to post]\n  require_head: yes       # [yes :: must have a head report to post]\n  branches: null\n"
  },
  {
    "path": ".flake8",
    "content": "[flake8]\nmax-line-length = 120\nignore = W605,E305,E402,E721,E741,F401,F403,F405,F821,F841,F999\nexclude = tensorboardX/proto"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "content": "---\nname: Bug report\nabout: Create bug report\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Describe the bug**\nA clear and concise description of what the bug is.\n\n**Minimal runnable code to reproduce the behavior**\n```\nfrom tensorboardX import SummaryWriter\n...\n```\n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\n\n**Screenshots**\nIf applicable, add screenshots to help explain your problem.\n\n**Environment**\nWhat is the result of \n`pip list|grep -E \"torch|proto|tensor\"`\nIf the version is too old, please try to update first.\n\n\n**Python environment**\nWhich version of python are you using? Did you use Andconda or Virtualenv?\n\n**Additional context**\nAdd any other context about the problem here.\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature-requests-or-general-questions.md",
    "content": "---\nname: Feature requests or General questions\nabout: Feature requests or general questions\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n\n"
  },
  {
    "path": ".github/workflows/build-wheel.yml",
    "content": "# This workflow will install Python dependencies, run tests and lint with a single version of Python\n# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions\n\nname: Build and test the python package\non:\n  push:\n    branches:\n      - 'releases/**'\njobs: \n  build:\n    name: Build whl from source\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v3\n    - name: Set up Python 3.9\n      uses: actions/setup-python@v3\n      with:\n        python-version: 3.9\n\n    - name: Fetch git tags from origin\n      run: git fetch --tags origin\n\n    - name: Install build and wheel packages\n      run: >-\n        python -m\n        pip install\n        build wheel\n        --user\n\n    - name: Build wheel and source distribution\n      run: |\n        echo `pwd`\n        echo `git describe --tags`\n        python -m build --wheel --sdist\n\n    - name: Archive production artifacts\n      uses: actions/upload-artifact@v4\n      with:\n        name: dist-pip-whl\n        path: |\n          dist\n\n  test-the-wheel:\n    name: Install whl and run demo\n    needs: build\n    runs-on: ubuntu-latest\n    steps:\n    - name: Dump GitHub context\n      id: github_context_step\n      run: echo '${{ toJSON(github) }}'\n\n    - uses: actions/checkout@v3\n    - name: Set up Python 3.9\n      uses: actions/setup-python@v3\n      with:\n        python-version: 3.9\n\n    - name: Download build artifacts\n      uses: actions/download-artifact@v4.1.7\n      with:\n        name: dist-pip-whl\n\n    - name: Install tensorboardX from wheel\n      run: pip install tensorboardx*.whl\n\n    - name: Install torch torchvision for demo\n      run: pip install torch torchvision\n\n    - name: Print version\n      run: python -c \"import tensorboardX; print(tensorboardX.__version__)\"\n\n    - name: Run examples\n      run: |\n        cd examples\n        python demo.py\n\n    - name: Archive demo artifacts\n      uses: actions/upload-artifact@v4\n      with:\n        name: demo-results\n        path: |\n          examples/runs\n\n"
  },
  {
    "path": ".github/workflows/publish-pypi.yml",
    "content": "on:\n  workflow_dispatch:\n    inputs:\n      publish_version:\n        required: true\n        type: string\n\njobs:\n  log-the-inputs:\n    runs-on: ubuntu-latest\n    steps:\n      - run: |\n          echo \"target version: ${{ github.event.inputs.publish_version }}\"\n        env:\n          VERSION: ${{ github.event.inputs.publish_version }}\n\n  upload-to-pypi:\n    name: Publish to PyPI test site\n    runs-on: ubuntu-latest\n    steps:\n    - name: Dump GitHub context\n      id: github_context_step\n      run: |\n          echo '${{ toJSON(github) }}'\n          echo \"target version: ${{ github.event.inputs.publish_version }}\"\n\n    - uses: actions/checkout@v3\n    - name: Set up Python 3.9\n      uses: actions/setup-python@v3\n      with:\n        python-version: 3.9\n\n    - name: Make sure the branch name is \"refs/heads/releases/*\"\n      run: |\n        if [[ \"${{ github.ref }}\" != refs/heads/releases/* ]]; then\n          echo \"This workflow only runs on branches matching 'releases/*'. Current branch: ${{ github.ref }}\"\n          exit 1\n        fi\n\n    - name: Fetch git tags and create version tag\n      run: |\n        git fetch --tags origin\n        git tag ${{ github.event.inputs.publish_version }}\n\n    - name: Install build and wheel packages\n      run: >-\n        python -m\n        pip install\n        build wheel\n        --user\n\n    - name: Build wheel and source distribution\n      run: |\n        echo `pwd`\n        python -m build --wheel --sdist\n\n    - name: Install tensorboardX from wheel\n      run: pip install dist/tensorboardx*.whl\n\n    - name: Print version\n      run: python -c \"import tensorboardX; print(tensorboardX.__version__)\"\n\n    - name: Check version matches publish_version\n      run: |\n        VERSION=$(python -c \"import tensorboardX; print(tensorboardX.__version__)\")\n        if [ \"$VERSION\" != \"${{ github.event.inputs.publish_version }}\" ]; then\n          echo \"Version mismatch: $VERSION does not match ${{ github.event.inputs.publish_version }}\"\n          exit 1\n        fi\n\n    - name: Publish to Test PyPI\n      uses: pypa/gh-action-pypi-publish@release/v1\n      with:\n        password: ${{ secrets.PYPI_API_TESTSITE }}\n        repository-url: https://test.pypi.org/legacy/\n        attestations: false\n\n    - name: Publish to PyPI\n      uses: pypa/gh-action-pypi-publish@release/v1\n      with:\n        password: ${{ secrets.PYPI_API }}\n        repository_url: https://upload.pypi.org/legacy/\n        attestations: false\n\n\n"
  },
  {
    "path": ".github/workflows/test-matrix.yml",
    "content": "# This workflow will install Python dependencies, run tests and lint with a single version of Python\n# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions\n\nname: Python application\n\non:\n  push:\n    branches: [ master ]\n  pull_request:\n    branches: [ master ]\n\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    strategy:\n      matrix:\n        python-version: [\"3.9\", \"3.10\", \"3.11\", \"3.12\"]\n    steps:\n    - uses: actions/checkout@v2\n    - name: Install system dependencies and setup Python environment\n      run: |\n        sudo apt-get install libsndfile1\n        curl -LsSf https://astral.sh/uv/install.sh | sh\n        uv venv --python ${{ matrix.python-version }}\n        source .venv/bin/activate\n        uv sync\n    - name: Lint with ruff\n      run: |\n        source .venv/bin/activate\n        ruff check tensorboardX/\n    - name: Test with pytest\n      env:\n          MPLBACKEND: Agg\n          PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION: python\n      run: |\n        source .venv/bin/activate\n        visdom &\n        pytest --cov=tensorboardX --cov-report=xml tests/\n\n    - name: Upload coverage to Codecov\n      if: ${{ !cancelled() && matrix.python-version == '3.11' }}\n      run: |\n        curl -Os https://cli.codecov.io/latest/linux/codecov\n        chmod +x codecov\n        ./codecov --verbose upload-process --fail-on-error -n 'service'-${{ github.run_id }} -F service -f coverage.xml\n\n  test:\n    needs: build\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v2\n    - name: Install dependencies and run examples\n      run: |\n        curl -LsSf https://astral.sh/uv/install.sh | sh\n        uv venv --python 3.9\n        source .venv/bin/activate\n        uv pip install six tensorboard pytest matplotlib torchvision protobuf==4.22.3 moviepy==1.0.3 imageio==2.27\n        python examples/demo.py\n        python examples/demo_graph.py\n        python examples/demo_embedding.py\n        python examples/demo_custom_scalars.py\n        python examples/demo_multiple_embedding.py\n        python examples/demo_purge.py\n        python examples/demo_matplotlib.py\n\n  test-protobuf-versions:\n    needs: build\n    runs-on: ubuntu-latest\n    strategy:\n      matrix:\n        protobuf-version: [\"3.20\", \"4.21\", \"4.22\", \"4.23\"]\n    steps:\n    - uses: actions/checkout@v2\n    - name: Install python 3.11 and setup environment\n      run: |\n        curl -LsSf https://astral.sh/uv/install.sh | sh\n        uv venv --python 3.11\n \n    - name: Run basic import check\n      run: |\n        source .venv/bin/activate\n        uv pip install numpy protobuf==${{ matrix.protobuf-version }}\n        python -c \"import tensorboardX\"\n \n"
  },
  {
    "path": ".gitignore",
    "content": "proto_src/\nprotoc-*.zip\nprotoc/\n__pycache__\ndocs/_*\nbuild\ndist\n*.egg-info\nruns/*\n*.pyc\nmnist\ntensorboardX/_version.py\ns3:\n.coverage\n.vscode\n.DS_store\nuv.lock\n"
  },
  {
    "path": ".readthedocs.yaml",
    "content": "# Read the Docs configuration file for Sphinx projects\n# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details\n\n# Required\nversion: 2\n\n# Set the OS, Python version and other tools you might need\nbuild:\n  os: ubuntu-22.04\n  tools:\n    python: \"3.11\"\n    # You can also specify other tool versions:\n    # nodejs: \"20\"\n    # rust: \"1.70\"\n    # golang: \"1.20\"\n\n# Build documentation in the \"docs/\" directory with Sphinx\nsphinx:\n  configuration: docs/conf.py\n  # You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs\n  # builder: \"dirhtml\"\n  # Fail on all warnings to avoid broken references\n  # fail_on_warning: true\n\n# Optionally build your docs in additional formats such as PDF and ePub\n# formats:\n#    - pdf\n#    - epub\n\n# Optional but recommended, declare the Python requirements required\n# to build your documentation\n# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html\npython:\n  install:\n    - requirements: docs/requirements.txt\n\n"
  },
  {
    "path": "HISTORY.rst",
    "content": "History\n=======\n2.6.3 (2025-04-24)\n---------------------\n* Support PaddlePaddle tensors\n* Added a use_metadata context manager\n* MoviePy version 2 support\n\n2.6.2.2 (2023-08-20)\n---------------------\n* Added protobuf's lower bound version (>=3.20)\n\n2.6.2.1 (2023-08-20)\n---------------------\n* [Yanked because operation miss] Added protobuf's lower bound version (>=3.20)\n\n2.6.2 (2023-07-30)\n-------------------\n* [Yanked because wrong dependency] Removed version limit for protobuf\n\n2.6.1 (2023-06-18)\n-------------------\n* Expose use_strict_trace parameter in add_graph (#694)\n* Upgrade to protobuf 4\n* Fix git based package versioning\n* Fix GCS Connection Error #606 (#686)\n\n2.6 (2023-02-12)\n-------------------\n* Fixed several deprecation warnings\n* Update dependencies\n\n2.5.1 (2022-06-05)\n-------------------\n* Enforce protobuf's version upper bound\n\n2.5 (2022-02-22)\n-----------------\n* Fix deprecation warnings\n* Comet integration improvements (#658)\n\n2.4.1 (2021-11-20)\n-------------------\n* Fix a comet plugin bug if writer is reused. (#639)\n\n2.4 (2021-06-30)\n-----------------\n* Remove a dependency issue. (#631)\n\n2.3 (2021-06-20)\n-----------------\n* Support logging to comet.ml simutaneously.\n\n2.2 (2021-04-03)\n-----------------\n* Support for type hints.\n* Dropped Python 2 support.\n* Bug fixes, see the commit log in Github.\n\n2.1 (2020-07-05)\n-----------------\n* Global SummaryWriter that mimics python's default logger class, concurrent write is supported.\n* 200x speed up for add_audio. Please install the soundfile package for this feature.\n* Supports jax tensors.\n* The add_graph function is delegated to the one in torch.utils.tensorboard.\n* Bug fixes, see the commit log in Github.\n\n2.0 (2019-12-31)\n-----------------\n* Now you can tag Hparams trials with custom name instead of the default epoch time\n* Fixed a bug that add_hparams are rendered incorrectly with non-string values\n* Supports logging to Amazon S3 or Google Cloud Storage\n* Bug fixes and error message for add_embedding function\n* Draw openvino format with add_openvino_graph\n\n1.9 (2019-10-04)\n-----------------\n* Use new JIT backend for pytorch. This works better with pytorch 1.2 and 1.3\n* Supports hparams plugin\n* add_embedding now supports numpy array input\n\n1.8 (2019-07-05)\n-----------------\n* Draw label text on image with bounding box provided.\n* crc32c speed up (optional by installing crc32c manually)\n* Rewrite add_graph. onnx backend is replaced by JIT to support more advanced structure.\n* Now you can add_mesh() to visualize colorful point cloud or meshes.\n\n1.7 (2019-05-19)\n-----------------\n* Able to write to S3\n* Fixed raw histogram issue that nothing is shown in TensorBoard\n* Users can use various image/video dimension permutation by passing 'dataformats' parameter.\n* You can bybass the writer by passing write_to_disk=True to SummaryWriter\n\n\n1.6 (2019-01-02)\n-----------------\n* Many graph related bug is fixed in this version.\n* New function: add_images(). This function accepts 4D iamge tensor. See documentation.\n* Make add_image_with_boxes() usable.\n* API change: add_video now accepts BxTxCxHxW instead of BxCxTxHxW tensor.\n\n1.5 (2018-12-10)\n-----------------\n* Add API for Custom scalar\n* Add support for logging directly to S3\n* Add support for Caffe2 graph\n* Pytorch 1.0.0 JIT graph support (alpha-release)\n\n1.4 (2018-08-09)\n-----------------\n* Made add_text compatible with tensorboard>1.6\n* Fix the issue of strange histogram if default binning method is used\n* Supports passing matplotlib figures to add_image()\n* Resolve namespace confliction with TF tensorboard\n* add_image_boxes function\n* Supports custom timestamp for event\n\n1.2 (2018-04-21)\n-----------------\n* Supports tensorshape information in graph visualization. Drop support for 0.3.1\n* Adds add_video function\n\n1.1 (2018-02-21)\n-----------------\n* Supports pytorch 0.3.1 (hacky)\n\n1.0 (2018-01-18)\n-----------------\n* Supports graph (the pretty one)\n\n0.9 (2017-11-11)\n-----------------\n* Supports markdown for add_text function\n* It's ready to log precision recall curve (needs tensorboard>=0.4)\n* Adds context manager for the SummaryWriter class\n\n0.8 (2017-09-25)\n-----------------\n* Package name renamed to tensorboardX to fix namespace confliction with tensorflow's tensorboard\n* Supports multi-scalars and JSON export\n* Multiple Embeddings in One Experiment \n* Supports Chainer and mxnet\n\n0.7 (2017-08-22)\n-----------------\n* remove tensorflow dependency for embedding function\n* fixed incorrect image<->label pairing in embedding function (#12)\n* unifies API call and adds docstring. Documentation is available at: http://tensorboard-pytorch.readthedocs.io/\n\n0.6.5 (2017-07-30)\n------------------\n* add travis test (py2.7, py3.6)\n* add support for python2 (in PyPI)\n\n0.6 (2017-07-18)\n-----------------\n* supports embedding\n\n0.5 (2017-07-18)\n-----------------\n* supports graph summary\n* fixed np.histogram issue\n\n0.4 (2017-07-12)\n-----------------\n* supports text summary\n\n0.3 (2017-07-03)\n-----------------\n* supports audio summary\n\n0.2 (2017-06-24)\n-----------------\n* simplifies add_image API\n* speed up add_histogram API by 35x\n\n\n0.1 (2017-06-13)\n------------------\n* First commit. Reference:\n\nhttps://github.com/TeamHG-Memex/tensorboard_logger\nhttps://github.com/dmlc/tensorboard\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2025 Tzu-Wei Huang\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "MANIFEST.in",
    "content": "include HISTORY.rst\ninclude LICENSE\ninclude compile.sh\nrecursive-include tensorboardX/proto *\nrecursive-exclude test *\nrecursive-exclude examples *\nrecursive-include tensorboardX/beholder *\nglobal-exclude *.pyc"
  },
  {
    "path": "README.md",
    "content": "# tensorboardX\n\n[![PyPI version](https://badge.fury.io/py/tensorboardX.svg)](https://badge.fury.io/py/tensorboardX)\n[![Documentation Status](https://readthedocs.org/projects/tensorboardx/badge/?version=latest)](https://tensorboardx.readthedocs.io/en/latest/?badge=latest)\n[![Coverage Status](https://codecov.io/gh/lanpa/tensorboardX/branch/master/graph/badge.svg)](https://codecov.io/gh/lanpa/tensorboardX/)\n\nWrite TensorBoard events with simple function call.\n\nThe current release (v2.6.3) is tested with PyTorch 2.6 / torchvision 0.21.0 / tensorboard 2.19.0 on Python 3.9 to 3.12\n\n* Support `scalar`, `image`, `figure`, `histogram`, `audio`, `text`, `graph`, `onnx_graph`, `embedding`, `pr_curve`, `mesh`, `hyper-parameters`\n  and `video` summaries.\n\n* [FAQ](https://github.com/lanpa/tensorboardX/wiki)\n\n\n## Install\n\n`pip install tensorboardX`\n\nor build from source:\n\n`pip install 'git+https://github.com/lanpa/tensorboardX'`\n\nYou can optionally install [`crc32c`](https://github.com/ICRAR/crc32c) to speed up.\n\n`pip install crc32c`\n\nStarting from tensorboardX 2.1, You need to install `soundfile` for the `add_audio()` function (200x speedup).\n\n`pip install soundfile`\n\n## Example\n\n* Clone the files in https://github.com/lanpa/tensorboardX/tree/master/examples\n* Run the demo script: e.g. `python examples/demo.py`\n* Start TensorBoard with `tensorboard --logdir runs`  \n\n\n```python\n# demo.py\n\nimport torch\nimport torchvision.utils as vutils\nimport numpy as np\nimport torchvision.models as models\nfrom torchvision import datasets\nfrom tensorboardX import SummaryWriter\n\nresnet18 = models.resnet18(False)\nwriter = SummaryWriter()\nsample_rate = 44100\nfreqs = [262, 294, 330, 349, 392, 440, 440, 440, 440, 440, 440]\n\nfor n_iter in range(100):\n\n    dummy_s1 = torch.rand(1)\n    dummy_s2 = torch.rand(1)\n    # data grouping by `slash`\n    writer.add_scalar('data/scalar1', dummy_s1[0], n_iter)\n    writer.add_scalar('data/scalar2', dummy_s2[0], n_iter)\n\n    writer.add_scalars('data/scalar_group', {'xsinx': n_iter * np.sin(n_iter),\n                                             'xcosx': n_iter * np.cos(n_iter),\n                                             'arctanx': np.arctan(n_iter)}, n_iter)\n\n    dummy_img = torch.rand(32, 3, 64, 64)  # output from network\n    if n_iter % 10 == 0:\n        x = vutils.make_grid(dummy_img, normalize=True, scale_each=True)\n        writer.add_image('Image', x, n_iter)\n\n        dummy_audio = torch.zeros(sample_rate * 2)\n        for i in range(x.size(0)):\n            # amplitude of sound should in [-1, 1]\n            dummy_audio[i] = np.cos(freqs[n_iter // 10] * np.pi * float(i) / float(sample_rate))\n        writer.add_audio('myAudio', dummy_audio, n_iter, sample_rate=sample_rate)\n\n        writer.add_text('Text', 'text logged at step:' + str(n_iter), n_iter)\n\n        for name, param in resnet18.named_parameters():\n            writer.add_histogram(name, param.clone().cpu().data.numpy(), n_iter)\n\n        # needs tensorboard 0.4RC or later\n        writer.add_pr_curve('xoxo', np.random.randint(2, size=100), np.random.rand(100), n_iter)\n\ndataset = datasets.MNIST('mnist', train=False, download=True)\nimages = dataset.test_data[:100].float()\nlabel = dataset.test_labels[:100]\n\nfeatures = images.view(100, 784)\nwriter.add_embedding(features, metadata=label, label_img=images.unsqueeze(1))\n\n# export scalar data to JSON for external processing\nwriter.export_scalars_to_json(\"./all_scalars.json\")\nwriter.close()\n```\n\n## Screenshots\n\n<img src=\"screenshots/Demo.gif\">\n\n## Using TensorboardX with Comet\n\nTensorboardX now supports logging directly to [Comet](https://www.comet.com/site/products/ml-experiment-tracking/?utm_source=tensorboardx&utm_medium=partner&utm_campaign=partner_tensorboardx_2023). Comet is a **free** cloud based solution that allows you to automatically track, compare and explain your experiments. It adds a lot of functionality on top of tensorboard such as dataset management, diffing experiments, seeing the code that generated the results and more.\n\nThis works out of the box and just require an additional line of code. See a full code example in this [Colab Notebook](https://colab.research.google.com/drive/1cTO3tgZ03nuJQ8kOjZhEiwbB-45tV4lm?usp=sharing)\n\n<p align=\"center\">\n<img src=\"screenshots/comet.gif\" width=\"750\" height=\"400\">\n</p>\n\n## Tweaks\n\nTo add more ticks for the slider (show more image history), check https://github.com/lanpa/tensorboardX/issues/44 or \nhttps://github.com/tensorflow/tensorboard/pull/1138\n\n## Reference\n\n* [TeamHG-Memex/tensorboard_logger](https://github.com/TeamHG-Memex/tensorboard_logger)\n* [dmlc/tensorboard](https://github.com/dmlc/tensorboard)\n"
  },
  {
    "path": "compile.sh",
    "content": "#!/bin/bash\n\n# Exit on error\n# set -e\n\nDESIRED_PROTO_VERSION=\"22.3\"\n\n# call protoc direclty, if version is not the desired one, download the desired vesrion.\n\n\nif [ -f \"protoc/bin/protoc\" ]; then\n  PROTOC_BIN=\"protoc/bin/protoc\"\nelse\n  PROTOC_BIN=`which protoc`\nfi\n\necho \"using\" $PROTOC_BIN\n\nCURRENT_PROTOC_VER=`${PROTOC_BIN} --version`\nif [ -z ${PROTOC_BIN} ] || [[ \"$CURRENT_PROTOC_VER\" != \"libprotoc \"$DESIRED_PROTO_VERSION ]]; then\n  # Download and use the latest version of protoc.\n  if [ \"$(uname)\" == \"Darwin\" ]; then\n    PROTOC_ZIP=\"protoc-\"$DESIRED_PROTO_VERSION\"-osx-x86_64.zip\"\n  else\n    PROTOC_ZIP=\"protoc-\"$DESIRED_PROTO_VERSION\"-linux-x86_64.zip\"\n  fi\n  WGET_BIN=`which wget`\n  if [[ ! -z ${WGET_BIN} ]]; then\n    ${WGET_BIN} https://github.com/protocolbuffers/protobuf/releases/download/v\"$DESIRED_PROTO_VERSION\"/${PROTOC_ZIP}\n    rm -rf protoc\n    python -c \"import zipfile; zipfile.ZipFile('\"${PROTOC_ZIP}\"','r').extractall('protoc')\"\n    PROTOC_BIN=protoc/bin/protoc\n    chmod +x ${PROTOC_BIN}\n  fi\nfi\n\n# Regenerate\nif [[ ! -z ${PROTOC_BIN} ]]; then\n  # Delete all existing Python protobuf (*_pb2.py) output\n  rm -rf tensorboardX/proto/*pb2*.py\n  ${PROTOC_BIN} tensorboardX/proto/*.proto --python_out=.\n\n  echo \"Done generating tensorboardX/proto/*pb2*.py\"\nelse\n  echo \"protoc not installed so can't regenerate tensorboardX/proto/*pb2*.py, using precompiled version.\"\nfi\n\n"
  },
  {
    "path": "docs/Makefile",
    "content": "# Minimal makefile for Sphinx documentation\n#\n\n# You can set these variables from the command line.\nSPHINXOPTS    =\nSPHINXBUILD   = sphinx-build\nSPHINXPROJ    = tensorboardX\nSOURCEDIR     = .\nBUILDDIR      = _build\n\n# Put it first so that \"make\" without argument is like \"make help\".\nhelp:\n\t@$(SPHINXBUILD) -M help \"$(SOURCEDIR)\" \"$(BUILDDIR)\" $(SPHINXOPTS) $(O)\n\n.PHONY: help Makefile\n\n# Catch-all target: route all unknown targets to Sphinx using the new\n# \"make mode\" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).\n%: Makefile\n\t@$(SPHINXBUILD) -M $@ \"$(SOURCEDIR)\" \"$(BUILDDIR)\" $(SPHINXOPTS) $(O)"
  },
  {
    "path": "docs/conf.py",
    "content": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# tensorboardX documentation build configuration file, created by\n# sphinx-quickstart on Wed Aug  9 01:38:01 2017.\n#\n# This file is execfile()d with the current directory set to its\n# containing dir.\n#\n# Note that not all possible configuration values are present in this\n# autogenerated file.\n#\n# All configuration values have a default; values that are commented out\n# serve to show the default.\n\n# If extensions (or modules to document with autodoc) are in another directory,\n# add these directories to sys.path here. If the directory is relative to the\n# documentation root, use os.path.abspath to make it absolute, like shown here.\n#\nimport os\nimport sys\n# sys.path.insert(0, os.path.abspath('.'))\nsys.path.append(os.path.join(os.path.dirname(__file__), '..'))\n#import tensorboard #uncomment to shadow pip installation\n# -- General configuration ------------------------------------------------\n\n# If your documentation needs a minimal Sphinx version, state it here.\n#\n# needs_sphinx = '1.0'\n\n# Add any Sphinx extension module names here, as strings. They can be\n# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom\n# ones.\nextensions = ['sphinx.ext.autodoc',\n    'sphinx.ext.mathjax',\n    'sphinx.ext.intersphinx',\n    'sphinx.ext.napoleon',\n    'sphinx.ext.viewcode',\n    'sphinx.ext.githubpages']\n\n# Add any paths that contain templates here, relative to this directory.\ntemplates_path = ['_templates']\n\n# The suffix(es) of source filenames.\n# You can specify multiple suffix as a list of string:\n#\n# source_suffix = ['.rst', '.md']\nsource_suffix = '.rst'\n\n# The master toctree document.\nmaster_doc = 'index'\n\n# General information about the project.\nproject = 'tensorboardX'\ncopyright = '2017, tensorboardX Contributors'\nauthor = 'tensorboardX Contributors'\n\n# The version info for the project you're documenting, acts as replacement for\n# |version| and |release|, also used in various other places throughout the\n# built documents.\n#\n# The short X.Y version.\nversion = ''\n# The full version, including alpha/beta/rc tags.\nrelease = ''\n\n# The language for content autogenerated by Sphinx. Refer to documentation\n# for a list of supported languages.\n#\n# This is also used if you do content translation via gettext catalogs.\n# Usually you set \"language\" from the command line for these cases.\nlanguage = None\n\n# List of patterns, relative to source directory, that match files and\n# directories to ignore when looking for source files.\n# This patterns also effect to html_static_path and html_extra_path\nexclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']\n\n# The name of the Pygments (syntax highlighting) style to use.\npygments_style = 'sphinx'\n\n# If true, `todo` and `todoList` produce output, else they produce nothing.\ntodo_include_todos = False\n\n\n# -- Options for HTML output ----------------------------------------------\n\n# The theme to use for HTML and HTML Help pages.  See the documentation for\n# a list of builtin themes.\n#\nhtml_theme = 'sphinx_rtd_theme'\n\n# Theme options are theme-specific and customize the look and feel of a theme\n# further.  For a list of options available for each theme, see the\n# documentation.\n#\n# html_theme_options = {}\n\n# Add any paths that contain custom static files (such as style sheets) here,\n# relative to this directory. They are copied after the builtin static files,\n# so a file named \"default.css\" will overwrite the builtin \"default.css\".\n# html_static_path = ['_static']\n\n\n# -- Options for HTMLHelp output ------------------------------------------\n\n# Output file base name for HTML help builder.\nhtmlhelp_basename = 'tensorboardXdoc'\n\n\n# -- Options for LaTeX output ---------------------------------------------\n\nlatex_elements = {\n    # The paper size ('letterpaper' or 'a4paper').\n    #\n    # 'papersize': 'letterpaper',\n\n    # The font size ('10pt', '11pt' or '12pt').\n    #\n    # 'pointsize': '10pt',\n\n    # Additional stuff for the LaTeX preamble.\n    #\n    # 'preamble': '',\n\n    # Latex figure (float) alignment\n    #\n    # 'figure_align': 'htbp',\n}\n\n# Grouping the document tree into LaTeX files. List of tuples\n# (source start file, target name, title,\n#  author, documentclass [howto, manual, or own class]).\nlatex_documents = [\n    (master_doc, 'tensorboardX.tex', 'tensorboardX Documentation',\n     'tensorboardX Contributors', 'manual'),\n]\n\n\n# -- Options for manual page output ---------------------------------------\n\n# One entry per manual page. List of tuples\n# (source start file, name, description, authors, manual section).\nman_pages = [\n    (master_doc, 'tensorboardX', 'tensorboardX Documentation',\n     [author], 1)\n]\n\n\n# -- Options for Texinfo output -------------------------------------------\n\n# Grouping the document tree into Texinfo files. List of tuples\n# (source start file, target name, title, author,\n#  dir menu entry, description, category)\ntexinfo_documents = [\n    (master_doc, 'tensorboardX', 'tensorboardX Documentation',\n     author, 'tensorboardX', 'One line description of project.',\n     'Miscellaneous'),\n]\n\n\n\n\n# Example configuration for intersphinx: refer to the Python standard library.\nintersphinx_mapping = {\n    'python':('https://docs.python.org/3', None),\n    'numpy': ('http://docs.scipy.org/doc/numpy/', None),\n    'torch': ('http://pytorch.org/docs/master', None),\n    'matplotlib': ('http://matplotlib.sourceforge.net/', None),\n    }\n"
  },
  {
    "path": "docs/index.rst",
    "content": ".. tensorboardX documentation master file, created by\n   sphinx-quickstart on Wed Aug  9 01:38:01 2017.\n   You can adapt this file completely to your liking, but it should at least\n   contain the root `toctree` directive.\n\nWelcome to tensorboardX's documentation!\n===============================================\n\n.. toctree::\n   :maxdepth: 2\n   :caption: Contents:\n\n   tensorboard\n   utils\n   tutorial\n   tutorial_zh\n\nIndices and tables\n==================\n\n* :ref:`genindex`\n* :ref:`modindex`\n* :ref:`search`\n"
  },
  {
    "path": "docs/requirements.txt",
    "content": "sphinx-rtd-theme\n\n"
  },
  {
    "path": "docs/tensorboard.rst",
    "content": "tensorboardX\n===================================\n.. automodule:: tensorboardX\n\n.. autoclass:: SummaryWriter\n    :members:\n    \n    .. automethod:: __init__\n\n.. autoclass:: GlobalSummaryWriter\n    :members:\n    \n    .. automethod:: __init__\n\n.. autoclass:: TorchVis\n    :members:\n\n    .. automethod:: __init__"
  },
  {
    "path": "docs/tutorial.rst",
    "content": "Tutorials\n*********\n\nWhat is tensorboard X?\n----------------------\n\nAt first, the package was named tensorboard, and soon there are issues about\nname confliction. The first alternative name came to my mind is\ntensorboard-pytorch, but in order to make it more general, I chose tensorboardX\nwhich stands for tensorboard for X.\n\nGoogle's tensorflow's tensorboard is a web server to serve visualizations of the\ntraining progress of a neural network, it visualizes scalar values, images,\ntext, etc.; these information are saved as events in tensorflow. It's a pity\nthat other deep learning frameworks lack of such tool, so there are already\npackages letting users to log the events without tensorflow; however they only\nprovides basic functionalities. The purpose of this package is to let\nresearchers use a simple interface to log events within PyTorch (and then show\nvisualization in tensorboard). This package currently supports logging scalar,\nimage, audio, histogram, text, embedding, and the route of back-propagation. The\nfollowing manual is tested on Ubuntu and Mac, and the environment are anaconda's\npython2 and python3.\n\n\nCreate a summary writer\n-----------------------\nBefore logging anything, we need to create a writer instance. This can be done with:\n\n.. code-block:: python\n\n    from tensorboardX import SummaryWriter\n    #SummaryWriter encapsulates everything\n    writer = SummaryWriter('runs/exp-1')\n    #creates writer object. The log will be saved in 'runs/exp-1'\n    writer2 = SummaryWriter()\n    #creates writer2 object with auto generated file name, the dir will be something like 'runs/Aug20-17-20-33'\n    writer3 = SummaryWriter(comment='3x learning rate')\n    #creates writer3 object with auto generated file name, the comment will be appended to the filename. The dir will be something like 'runs/Aug20-17-20-33-3xlearning rate'\n\nEach subfolder will be treated as different experiments in tensorboard. Each\ntime you re-run the experiment with different settings, you should change the\nname of the sub folder such as ``runs/exp2``, ``runs/myexp`` so that you can\neasily compare different experiment settings. Type ``tensorboard runs`` to compare\ndifferent runs in tensorboard.\n\n\nGeneral api format\n------------------\n.. code-block:: python\n\n    add_something(tag name, object, iteration number)\n\n\nAdd scalar\n-----------\nScalar value is the most simple data type to deal with. Mostly we save the loss\nvalue of each training step, or the accuracy after each epoch. Sometimes I save\nthe corresponding learning rate as well. It's cheap to save scalar value. Just\nlog anything you think is important. To log a scalar value, use\n``writer.add_scalar('myscalar', value, iteration)``. Note that the program complains\nif you feed a PyTorch tensor. Remember to extract the scalar value by\n``x.item()`` if ``x`` is a torch scalar tensor.\n\n\nAdd image\n---------\nAn image is represented as 3-dimensional tensor. The simplest case is save one\nimage at a time. In this case, the image should be passed as a 3-dimension\ntensor of size ``[3, H, W]``. The three dimensions correspond to R, G, B channel of\nan image. After your image is computed, use ``writer.add_image('imresult', x,\niteration)`` to save the image. If you have a batch of images to show, use\n``torchvision``'s ``make_grid`` function to prepare the image array and send the result\nto ``add_image(...)`` (``make_grid`` takes a 4D tensor and returns tiled images in 3D tensor).\n\n.. Note::\n\tRemember to normalize your image.\n\n\nAdd histogram\n-------------\nSaving histograms is expensive. Both in computation time and storage. If training\nslows down after using this package, check this first. To save a histogram,\nconvert the array into numpy array and save with ``writer.add_histogram('hist',\narray, iteration)``.\n\n\nAdd figure\n----------\nYou can save a matplotlib figure to tensorboard with the add_figure function. ``figure`` input should be ``matplotlib.pyplot.figure`` or a list of ``matplotlib.pyplot.figure``.\nCheck `<https://tensorboardx.readthedocs.io/en/latest/tensorboard.html#tensorboardX.SummaryWriter.add_figure>`_ for the detailed usage.\n\nAdd graph\n---------\nTo visualize a model, you need a model ``m`` and the input ``t``. ``t`` can be a tensor or a list of tensors\ndepending on your model. If error happens, make sure that ``m(t)`` runs without problem first. See\n`The graph demo <https://github.com/lanpa/tensorboardX/blob/master/examples/demo_graph.py>`_ for\ncomplete example.\n\n\nAdd audio\n---------\nTo log a single channel audio, use ``add_audio(tag, audio, iteration, sample_rate)``, where ``audio`` is an one dimensional array, and each element in the array represents the consecutive amplitude samples.\nFor a 2 seconds audio with ``sample_rate`` 44100 Hz, the input ``x`` should have 88200 elements.\nEach element should lie in [−1, 1].\n\nAdd embedding\n-------------\nEmbeddings, high dimensional data, can be visualized and converted\ninto human perceptible 3D data by tensorboard, which provides PCA and\nt-sne to project the data into low dimensional space. What you need to do is\nprovide a bunch of points and tensorboard will do the rest for you. The bunch of\npoints is passed as a tensor of size ``n x d``, where ``n`` is the number of points and\n``d`` is the feature dimension. The feature representation can either be raw data\n(*e.g.* the MNIST image) or a representation learned by your network (extracted\nfeature). This determines how the points distributes. To make the visualization\nmore informative, you can pass optional metadata or ``label_imgs`` for each data\npoints. In this way you can see that neighboring point have similar label and\ndistant points have very different label (semantically or visually). Here the\nmetadata is a list of labels, and the length of the list should equal to ``n``, the\nnumber of the points. The ``label_imgs`` is a 4D tensor of size ``NCHW``. ``N`` should equal\nto ``n`` as well. See\n`The embedding demo <https://github.com/lanpa/tensorboardX/blob/master/examples/demo_embedding.py>`_ for\ncomplete example.\n\n\nUseful commands\n---------------\nInstall\n=======\n\nSimply type ``pip install tensorboardX`` in a unix shell to install this package.\nTo use the newest version, you might need to build from source or ``pip install\ntensorboardX —-no-cache-dir`` .  To run tensorboard web server, you need\nto install it using ``pip install tensorboard``.\nAfter that, type ``tensorboard --logdir=<your_log_dir>`` to start the server, where\n``your_log_dir`` is the parameter of the object constructor. I think this command is\ntedious, so I add a line alias ``tb='tensorboard --logdir '`` in ``~/.bashrc``. In\nthis way, the above command is simplified as ``tb <your_log_dir>``. Use your favorite\nbrowser to load the tensorboard page, the address will be shown in the terminal\nafter starting the server.\n\n\nMisc\n----\nPerformance issue\n=================\nLogging is cheap, but display is expensive.\nFor my experience, if there are 3 or more experiments to show at a time and each\nexperiment have, say, 50k points, tensorboard might need a lot of time to\npresent the data.\n\n\nGrouping plots\n==============\nUsually, there are many numbers to log in one experiment. For example, when\ntraining GANs you should log the loss of the generator, discriminator. If the\nloss is composed of two other loss functions, say L1 and MSE, you might want to\nlog the value of the other two losses as well. In this case, you can write the\ntags as Gen/L1, Gen/MSE, Desc/L1, Desc/MSE. In this way, tensorboard will group\nthe plots into two sections (Gen, Desc). You can also use the regular expression\nto filter data.\n"
  },
  {
    "path": "docs/tutorial_zh.rst",
    "content": "Tutorials_zh\n*************\n\n緣起\n------\nGoogle TensorFlow 附加的工具 Tensorboard 是一個很好用的視覺化工具。他可以記錄數字，影像或者是聲音資訊，對於觀察類神經網路訓練的過程非常有幫助。很可惜的是其他的訓練框架（PyTorch, Chainer, numpy）並沒有這麼好用的工具。網路上稍加搜尋可以發現已經有一些現成的套件可以讓不同的訓練框架使用 web 介面來觀察訓練情形，不過他們可以記錄的東西比較有限或是使用起來比較複雜 (tensorboard_logger, visdom)。tensorboardX 的目的就是讓其他 tensorboard 的功能都可以輕易的被非 TensorFlow 的框架使用。\n目前這個套件除了 tensorboard beholder 之外支援所有 tensorboard 的紀錄型態。這個套件目前的標準測試環境為 Ubuntu 或是 Mac ，windows 則是有不定期手動測試；使用的 python 版本為 anaconda 的 python3。\n\n安裝\n-------\n在命令列輸入 ``pip install tensorboardX`` 即可\n或是最新版源碼安裝 ``pip install tensorboardX``\n\n使用\n-------\n建立 event writer 實體\n在紀錄任何東西之前，我們需要建立一個 event writer 實體。\nfrom tensorboardX import SummaryWriter \n#SummaryWriter 是一個類別，包含這套件的所有功能。\n\n``writer = SummaryWriter('runs/exp-1')``\n#建立實體。資料存放在：``'runs/exp-1'``\n#接下來要寫入任何資料都是呼叫 ``writer.add_某功能()``\n\n``writer = SummaryWriter()``\n#使用預設名稱建立實體。資料存放在：``'runs/現在時間-機器名字'`` ex. ``'runs/Aug20-obov01'``\n\n``writer = SummaryWriter(comment='3xLR')``\n#在預設資料夾後面加上註解 檔名變為：``'runs/Aug20-obov01-3xLR'``\n上面的程式碼會在目前的工作目錄下建立一個叫 ``runs`` 的資料夾\u001c以及子目錄 ``exp1``。 每個子目錄都會被視為一個實驗。每次執行新的實驗時，比如說改了一些參數，這時請將資料夾重新命名，像是： ``runs/exp2``, ``runs/myexp`` 這樣可以便於比較實驗的結果。 建議：資料夾可以用時間命名或者是直接把參數當成資料夾的名稱。\n建立 writer 實體之後就可以開始紀錄資料了\nAPI 的長相大概是：``add_xxx(標籤，要記錄的東西，時間戳，其他參數)``\n\n紀錄純量\n-------------\n純量是最好記錄的東西。通常我們會把每次訓練的損失記錄下來或者是測試的準確度都是值得記錄的東西。其他數據，像是學習率也值得紀錄。\n紀錄純量的方法是 ``writer.add_scalar('myscalar', value, iteration)``\nvalue 可以是 PyTorch tensor ， numpy或是 float，int 之類的python原生數字類別。\n\n記錄影像\n-------------\n影像使用一個三維的矩陣來表示。這三個維度分別代表紅色，綠色，藍色的強度。一張寬200， 高100的影像其對應的矩陣大小為[3, 100, 200] （CHW）。最簡單情況是只有一張影像要存。這時候只需要注意一下是不是符合上述的規格然後將它傳到: ``writer.add_image('imresult', image, iteration)`` 即可。 \n通常訓練的時候會採用批次處理，所以有一大堆影像要存。這時候請確定你的資料維度是 ``(NCHW)``, 其中 ``N`` 是batchsize。``add_image`` 會自動將他排列成適當大小。要注意的是，如果要記錄的影像是 OpenCV/numpy 格式，他們通常呈現 ``(HWC)`` 的排列，這時候要呼叫 ``numpy.transpose`` 將其轉為正確的維度，否則會報錯。另外就是注意影像的值的範圍要介於 [0, 1] 之間。 \n\n紀錄直方圖（histogram）\n-------------------------------\n記錄直方圖很耗 CPU 資源，不要常用。如果你用了這個套件之後覺得速度變慢了請先檢查一下是不是這個原因。使用方法很簡單，呼叫 ``writer.add_histogram('hist', array, iteration)`` 即可紀錄。\n\n紀錄聲音\n-------------\n``writer.add_audio('myaudio', audio, iteration, sample_rate)``\n這功能只支援單聲道。 add_audio 要傳入的聲音資訊是個一維陣列，陣列的每一個元素代表在每一個取樣點的振幅大小。取樣頻率(sample_rate)為 44100 kHz 的情況下。一段2秒鐘的聲音應該要有88200個點；注意其中每個元素的值應該都介於正負1之間。\n\n紀錄文字\n-------------\n``writer.add_text('mytext', 'this is a pen', iteration)``\n除了一般字串之外，也支援簡單的 markdown 表格。\n\n記錄網路架構。\n--------------------------\n(實驗性的功能，模型複雜的時候不確定對不對)\n問題很多的功能。使用上比較複雜。需要準備兩個東西：網路模型 以及 你要餵給他的 tensor \n舉例來說，令模型為 m，輸入為 x，則使用方法為：\n``add_graph(m, (x, ))`` 這裡使用 tuple 的原因是當網路有多個輸入時，可以把他擴充成\n``add_graph(m, (x, y, z))`` ，如果只有單一輸入，寫成 ``add_graph(m, x)`` 也無妨。 \n常會出錯的原因： \n- 較新的 operator pytorch本身不支援JIT\n- 輸入是 cpu tensor，model 在 GPU 上。（或是反過來）\n- 輸入的 tensor 大小錯誤，跑到後面幾層維度消失了\n- model 寫錯，前後兩層 feature dimension 對不上\n除錯方法\n\nforward propagate 一次 ``m(x)`` 或是多個輸入時：``m((x, y, z))``\n2. 用 ``torch.onnx.export`` 導出模型，觀察錯誤訊息。\n\n高維度資料視覺化／降維 (embedding)\n---------------------------------------------------\n因為人類對物體的了解程度只有三維，所以當資料的維度超過三的時候我們沒辦法將他視覺化。這時候就需要降維來讓資料的維度小於等於三。降維運算由 tensorboard 以 Javascript 執行，演算法有 PCA 及 t-sne 兩種可選。這邊我們只需要負責提供每個點的高維度特徵即可。提供的格式是一個矩陣，一個 ``n x d`` 的矩陣 ``n`` 點的數量， ``d`` 是維度的多寡。 高維度特徵可以是原始資料。比如說影像，或是網路學到的壓縮結果。這原始資料決定了資料的分佈情形。如果要看得更清楚一點，你可以再傳 metadata / label_imgs 的參數進去（metadata是一個 python list 長度為 ``n``, ``label_imgs`` 是一個 4 維矩陣，大小是 ``nCHW``。這樣每個點就會有他對應的文字或圖在旁邊。不懂的話就看範例吧：https://github.com/lanpa/tensorboardX/blob/master/examples/demo_embedding.py\n\n紀錄短片\n---------------\n類似於紀錄影像，不過傳入的物件維度是 ``[B, C, T ,H, W]``，其中 ``T`` 是影格的數量。所以一個 30 frame 的彩色影片 維度是 ``[B, 3, 30 ,H, W]``。\n\n紀錄 pr curve\n-------------------\n根據預測的機率值以及其對應的標準答案計算 precision-recall 的結果並保存。\n``add_pr_curve (tag, labels, predictions, step)``\nlabels是標準答案，predictions是程式對樣本的預測。 \n假設有十筆資料 labels就會長得像 ``[0, 0, 1, 0, 0, 1, 0, 1, 0, 1]``，predictions則長的像 ``[0.1, 0.3, 0.8, 0.2, 0.4, 0.5, 0.1, 0.7, 0.9, 0.2]``。\n\npyplot 的圖表\n------------------------------\n\n用 matplotlib 畫了美美的圖表想紀錄？請用 ``add_figure`` 。傳入的物件是 matplotlib 的 figure。 \n顯示結果 \nTensorboard 本質是個網頁伺服器，他讀取的資料來自於訓練網路的時候程式 (tensorboardX) 寫下的事件檔。因為 tensorboard 包含於 tensorflow，所以你需要另外安裝一份 tensorflow 在伺服器主機。我想大部分人都已經裝過了。沒裝過的話就在 unix shell 介面輸入 ``pip install tensorboard``。如果沒有使用 TensorFlow 訓練的需求，建議裝非 GPU 版本，啟動速度快得多。\n接下來在命令列輸入 ``tensorboard --logdir=<your_log_dir>`` （以前面的例子來說：``tensorboard --logdir=runs``）伺服器就會啟動了。這個指令打起來很麻煩，所以我都在 ``~/.bashrc`` 加一行：``alias tb='tensorboard --logdir '`` 如此一來指令就簡化成 ``tb <your_log_dir>``。接下來就是照著終端機上的指示打開你的瀏覽器就可以看到畫面了。\n"
  },
  {
    "path": "docs/utils.rst",
    "content": "Helper functions\n===================================\n.. autofunction:: tensorboardX.utils.figure_to_image"
  },
  {
    "path": "examples/RUN_AFTER_PIP_INSTALL",
    "content": ""
  },
  {
    "path": "examples/__init__.py",
    "content": ""
  },
  {
    "path": "examples/chainer/extension_logger/net.py",
    "content": "#!/usr/bin/env python\n\nfrom __future__ import print_function\n\nimport numpy\n\nimport chainer\nfrom chainer import cuda\nimport chainer.functions as F\nimport chainer.links as L\n\n\ndef add_noise(h, sigma=0.2):\n    xp = cuda.get_array_module(h.data)\n    if chainer.config.train:\n        return h + sigma * xp.random.randn(*h.shape)\n    else:\n        return h\n\n\nclass Generator(chainer.Chain):\n\n    def __init__(self, n_hidden, bottom_width=4, ch=512, wscale=0.02):\n        super(Generator, self).__init__()\n        self.n_hidden = n_hidden\n        self.ch = ch\n        self.bottom_width = bottom_width\n\n        with self.init_scope():\n            w = chainer.initializers.Normal(wscale)\n            self.l0 = L.Linear(self.n_hidden, bottom_width * bottom_width * ch,\n                               initialW=w)\n            self.dc1 = L.Deconvolution2D(ch, ch // 2, 4, 2, 1, initialW=w)\n            self.dc2 = L.Deconvolution2D(ch // 2, ch // 4, 4, 2, 1, initialW=w)\n            self.dc3 = L.Deconvolution2D(ch // 4, ch // 8, 4, 2, 1, initialW=w)\n            self.dc4 = L.Deconvolution2D(ch // 8, 3, 3, 1, 1, initialW=w)\n            self.bn0 = L.BatchNormalization(bottom_width * bottom_width * ch)\n            self.bn1 = L.BatchNormalization(ch // 2)\n            self.bn2 = L.BatchNormalization(ch // 4)\n            self.bn3 = L.BatchNormalization(ch // 8)\n\n    def make_hidden(self, batchsize):\n        return numpy.random.uniform(-1, 1, (batchsize, self.n_hidden, 1, 1))\\\n            .astype(numpy.float32)\n\n    def __call__(self, z):\n        h = F.reshape(F.relu(self.bn0(self.l0(z))),\n                      (len(z), self.ch, self.bottom_width, self.bottom_width))\n        h = F.relu(self.bn1(self.dc1(h)))\n        h = F.relu(self.bn2(self.dc2(h)))\n        h = F.relu(self.bn3(self.dc3(h)))\n        x = F.sigmoid(self.dc4(h))\n        return x\n\n\nclass Discriminator(chainer.Chain):\n\n    def __init__(self, bottom_width=4, ch=512, wscale=0.02):\n        w = chainer.initializers.Normal(wscale)\n        super(Discriminator, self).__init__()\n        with self.init_scope():\n            self.c0_0 = L.Convolution2D(3, ch // 8, 3, 1, 1, initialW=w)\n            self.c0_1 = L.Convolution2D(ch // 8, ch // 4, 4, 2, 1, initialW=w)\n            self.c1_0 = L.Convolution2D(ch // 4, ch // 4, 3, 1, 1, initialW=w)\n            self.c1_1 = L.Convolution2D(ch // 4, ch // 2, 4, 2, 1, initialW=w)\n            self.c2_0 = L.Convolution2D(ch // 2, ch // 2, 3, 1, 1, initialW=w)\n            self.c2_1 = L.Convolution2D(ch // 2, ch // 1, 4, 2, 1, initialW=w)\n            self.c3_0 = L.Convolution2D(ch // 1, ch // 1, 3, 1, 1, initialW=w)\n            self.l4 = L.Linear(bottom_width * bottom_width * ch, 1, initialW=w)\n            self.bn0_1 = L.BatchNormalization(ch // 4, use_gamma=False)\n            self.bn1_0 = L.BatchNormalization(ch // 4, use_gamma=False)\n            self.bn1_1 = L.BatchNormalization(ch // 2, use_gamma=False)\n            self.bn2_0 = L.BatchNormalization(ch // 2, use_gamma=False)\n            self.bn2_1 = L.BatchNormalization(ch // 1, use_gamma=False)\n            self.bn3_0 = L.BatchNormalization(ch // 1, use_gamma=False)\n\n    def __call__(self, x):\n        h = add_noise(x)\n        h = F.leaky_relu(add_noise(self.c0_0(h)))\n        h = F.leaky_relu(add_noise(self.bn0_1(self.c0_1(h))))\n        h = F.leaky_relu(add_noise(self.bn1_0(self.c1_0(h))))\n        h = F.leaky_relu(add_noise(self.bn1_1(self.c1_1(h))))\n        h = F.leaky_relu(add_noise(self.bn2_0(self.c2_0(h))))\n        h = F.leaky_relu(add_noise(self.bn2_1(self.c2_1(h))))\n        h = F.leaky_relu(add_noise(self.bn3_0(self.c3_0(h))))\n        return self.l4(h)\n"
  },
  {
    "path": "examples/chainer/extension_logger/train_dcgan.py",
    "content": "#!/usr/bin/env python\n\nfrom __future__ import print_function\nimport argparse\nimport os\n\nimport chainer\nfrom chainer import training\nfrom chainer.training import extensions\n\nfrom net import Discriminator\nfrom net import Generator\nfrom updater import DCGANUpdater\nfrom visualize import out_generated_image\nfrom tensorboardX import SummaryWriter\nfrom writetensorboard import LogTensorboard\n\n\ndef main():\n    parser = argparse.ArgumentParser(description='Chainer example: DCGAN')\n    parser.add_argument('--batchsize', '-b', type=int, default=50,\n                        help='Number of images in each mini-batch')\n    parser.add_argument('--epoch', '-e', type=int, default=1000,\n                        help='Number of sweeps over the dataset to train')\n    parser.add_argument('--gpu', '-g', type=int, default=-1,\n                        help='GPU ID (negative value indicates CPU)')\n    parser.add_argument('--dataset', '-i', default='',\n                        help='Directory of image files.  Default is cifar-10.')\n    parser.add_argument('--out', '-o', default='result',\n                        help='Directory to output the result')\n    parser.add_argument('--resume', '-r', default='',\n                        help='Resume the training from snapshot')\n    parser.add_argument('--n_hidden', '-n', type=int, default=100,\n                        help='Number of hidden units (z)')\n    parser.add_argument('--seed', type=int, default=0,\n                        help='Random seed of z at visualization stage')\n    parser.add_argument('--snapshot_interval', type=int, default=1000,\n                        help='Interval of snapshot')\n    parser.add_argument('--display_interval', type=int, default=100,\n                        help='Interval of displaying log to console')\n    args = parser.parse_args()\n\n    print('GPU: {}'.format(args.gpu))\n    print('# Minibatch-size: {}'.format(args.batchsize))\n    print('# n_hidden: {}'.format(args.n_hidden))\n    print('# epoch: {}'.format(args.epoch))\n    print('')\n    writer = SummaryWriter()\n    # Set up a neural network to train\n    gen = Generator(n_hidden=args.n_hidden)\n    dis = Discriminator()\n\n    if args.gpu >= 0:\n        # Make a specified GPU current\n        chainer.cuda.get_device_from_id(args.gpu).use()\n        gen.to_gpu()  # Copy the model to the GPU\n        dis.to_gpu()\n\n    # Setup an optimizer\n    def make_optimizer(model, alpha=0.0002, beta1=0.5):\n        optimizer = chainer.optimizers.Adam(alpha=alpha, beta1=beta1)\n        optimizer.setup(model)\n        optimizer.add_hook(chainer.optimizer.WeightDecay(0.0001), 'hook_dec')\n        return optimizer\n    opt_gen = make_optimizer(gen)\n    opt_dis = make_optimizer(dis)\n\n    if args.dataset == '':\n        # Load the CIFAR10 dataset if args.dataset is not specified\n        train, _ = chainer.datasets.get_cifar10(withlabel=False, scale=255.)\n    else:\n        all_files = os.listdir(args.dataset)\n        image_files = [f for f in all_files if ('png' in f or 'jpg' in f)]\n        print('{} contains {} image files'\n              .format(args.dataset, len(image_files)))\n        train = chainer.datasets\\\n            .ImageDataset(paths=image_files, root=args.dataset)\n\n    train_iter = chainer.iterators.SerialIterator(train, args.batchsize)\n\n    # Set up a trainer\n    updater = DCGANUpdater(\n        models=(gen, dis),\n        iterator=train_iter,\n        optimizer={\n            'gen': opt_gen, 'dis': opt_dis},\n        device=args.gpu)\n    trainer = training.Trainer(updater, (args.epoch, 'epoch'), out=args.out)\n\n    snapshot_interval = (args.snapshot_interval, 'iteration')\n    display_interval = (args.display_interval, 'iteration')\n    trainer.extend(\n        extensions.snapshot(filename='snapshot_iter_{.updater.iteration}.npz'),\n        trigger=snapshot_interval)\n    trainer.extend(extensions.snapshot_object(\n        gen, 'gen_iter_{.updater.iteration}.npz'), trigger=snapshot_interval)\n    trainer.extend(extensions.snapshot_object(\n        dis, 'dis_iter_{.updater.iteration}.npz'), trigger=snapshot_interval)\n    trainer.extend(extensions.LogReport(trigger=display_interval))\n    trainer.extend(LogTensorboard(trigger=display_interval, logger=writer))\n    trainer.extend(extensions.PrintReport([\n        'epoch', 'iteration', 'gen/loss', 'dis/loss',\n    ]), trigger=display_interval)\n    trainer.extend(extensions.ProgressBar(update_interval=10))\n    trainer.extend(\n        out_generated_image(\n            gen, dis,\n            10, 10, args.seed, args.out, writer),\n        trigger=snapshot_interval)\n\n    if args.resume:\n        # Resume from a snapshot\n        chainer.serializers.load_npz(args.resume, trainer)\n\n    # Run the training\n    trainer.run()\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "examples/chainer/extension_logger/updater.py",
    "content": "#!/usr/bin/env python\n\nfrom __future__ import print_function\n\nimport chainer\nimport chainer.functions as F\nfrom chainer import Variable\n\n\nclass DCGANUpdater(chainer.training.StandardUpdater):\n\n    def __init__(self, *args, **kwargs):\n        self.gen, self.dis = kwargs.pop('models')\n        super(DCGANUpdater, self).__init__(*args, **kwargs)\n\n    def loss_dis(self, dis, y_fake, y_real):\n        batchsize = len(y_fake)\n        L1 = F.sum(F.softplus(-y_real)) / batchsize\n        L2 = F.sum(F.softplus(y_fake)) / batchsize\n        loss = L1 + L2\n        chainer.report({'loss': loss}, dis)\n        return loss\n\n    def loss_gen(self, gen, y_fake):\n        batchsize = len(y_fake)\n        loss = F.sum(F.softplus(-y_fake)) / batchsize\n        chainer.report({'loss': loss}, gen)\n        return loss\n\n    def update_core(self):\n        gen_optimizer = self.get_optimizer('gen')\n        dis_optimizer = self.get_optimizer('dis')\n\n        batch = self.get_iterator('main').next()\n        x_real = Variable(self.converter(batch, self.device)) / 255.\n        xp = chainer.cuda.get_array_module(x_real.data)\n\n        gen, dis = self.gen, self.dis\n        batchsize = len(batch)\n\n        y_real = dis(x_real)\n\n        z = Variable(xp.asarray(gen.make_hidden(batchsize)))\n        x_fake = gen(z)\n        y_fake = dis(x_fake)\n\n        dis_optimizer.update(self.loss_dis, dis, y_fake, y_real)\n        gen_optimizer.update(self.loss_gen, gen, y_fake)\n"
  },
  {
    "path": "examples/chainer/extension_logger/visualize.py",
    "content": "#!/usr/bin/env python\n\nimport os\n\nimport numpy as np\nfrom PIL import Image\n\nimport chainer\nimport chainer.cuda\nfrom chainer import Variable\n\n\ndef out_generated_image(gen, dis, rows, cols, seed, dst, writer):\n    @chainer.training.make_extension()\n    def make_image(trainer):\n        np.random.seed(seed)\n        n_images = rows * cols\n        xp = gen.xp\n        z = Variable(xp.asarray(gen.make_hidden(n_images)))\n        with chainer.using_config('train', False):\n            x = gen(z)\n        writer.add_image('img', x, trainer.updater.iteration)\n\n    return make_image\n"
  },
  {
    "path": "examples/chainer/extension_logger/writetensorboard.py",
    "content": "import json\nimport os\nimport shutil\nimport tempfile\n\nimport six\nfrom chainer import reporter\nfrom chainer import serializer as serializer_module\nfrom chainer.training import extension\nfrom chainer.training import trigger as trigger_module\n\n\nclass LogTensorboard(extension.Extension):\n\n    \"\"\"Trainer extension to output the accumulated results to a log file.\n\n    This extension accumulates the observations of the trainer to\n    :class:`~chainer.DictSummary` at a regular interval specified by a supplied\n    trigger, and writes them into a log file in JSON format.\n\n    There are two triggers to handle this extension. One is the trigger to\n    invoke this extension, which is used to handle the timing of accumulating\n    the results. It is set to ``1, 'iteration'`` by default. The other is the\n    trigger to determine when to emit the result. When this trigger returns\n    True, this extension appends the summary of accumulated values to the list\n    of past summaries, and writes the list to the log file. Then, this\n    extension makes a new fresh summary object which is used until the next\n    time that the trigger fires.\n\n    It also adds some entries to each result dictionary.\n\n    - ``'epoch'`` and ``'iteration'`` are the epoch and iteration counts at the\n      output, respectively.\n    - ``'elapsed_time'`` is the elapsed time in seconds since the training\n      begins. The value is taken from :attr:`Trainer.elapsed_time`.\n\n    Args:\n        keys (iterable of strs): Keys of values to accumulate. If this is None,\n            all the values are accumulated and output to the log file.\n        trigger: Trigger that decides when to aggregate the result and output\n            the values. This is distinct from the trigger of this extension\n            itself. If it is a tuple in the form ``<int>, 'epoch'`` or\n            ``<int>, 'iteration'``, it is passed to :class:`IntervalTrigger`.\n        postprocess: Callback to postprocess the result dictionaries. Each\n            result dictionary is passed to this callback on the output. This\n            callback can modify the result dictionaries, which are used to\n            output to the log file.\n        log_name (str): Name of the log file under the output directory. It can\n            be a format string: the last result dictionary is passed for the\n            formatting. For example, users can use '{iteration}' to separate\n            the log files for different iterations. If the log name is None, it\n            does not output the log to any file.\n\n    \"\"\"\n\n    def __init__(self, keys=None, trigger=(1, 'epoch'), postprocess=None,\n                 log_name='log', logger=None):\n        self._keys = keys\n        self._trigger = trigger_module.get_trigger(trigger)\n        self._postprocess = postprocess\n        self._log_name = log_name\n        self._log = []\n        self._logger = logger\n        self._init_summary()\n\n    def __call__(self, trainer):\n        # accumulate the observations\n        keys = self._keys\n        observation = trainer.observation\n        summary = self._summary\n\n        if keys is None:\n            summary.add(observation)\n        else:\n            summary.add({k: observation[k] for k in keys if k in observation})\n        for k, v in observation.items():\n            #self._logger.add_scalar(k, chainer.cuda.to_cpu(observation[k].data), trainer.updater.iteration)\n            self._logger.add_scalar(\n                k, observation[k], trainer.updater.iteration)\n        if self._trigger(trainer):\n            # output the result\n            stats = self._summary.compute_mean()\n            stats_cpu = {}\n            for name, value in six.iteritems(stats):\n                stats_cpu[name] = float(value)  # copy to CPU\n\n            updater = trainer.updater\n            stats_cpu['epoch'] = updater.epoch\n            stats_cpu['iteration'] = updater.iteration\n            stats_cpu['elapsed_time'] = trainer.elapsed_time\n\n            if self._postprocess is not None:\n                self._postprocess(stats_cpu)\n\n            self._log.append(stats_cpu)\n\n            # write to the log file\n            if self._log_name is not None:\n                log_name = self._log_name.format(**stats_cpu)\n                fd, path = tempfile.mkstemp(prefix=log_name, dir=trainer.out)\n                with os.fdopen(fd, 'w') as f:\n                    json.dump(self._log, f, indent=4)\n\n                new_path = os.path.join(trainer.out, log_name)\n                shutil.move(path, new_path)\n\n            # reset the summary for the next output\n            self._init_summary()\n\n    @property\n    def log(self):\n        \"\"\"The current list of observation dictionaries.\"\"\"\n        return self._log\n\n    def serialize(self, serializer):\n        if hasattr(self._trigger, 'serialize'):\n            self._trigger.serialize(serializer['_trigger'])\n\n        # Note that this serialization may lose some information of small\n        # numerical differences.\n        if isinstance(serializer, serializer_module.Serializer):\n            log = json.dumps(self._log)\n            serializer('_log', log)\n        else:\n            log = serializer('_log', '')\n            self._log = json.loads(log)\n\n    def _init_summary(self):\n        self._summary = reporter.DictSummary()\n"
  },
  {
    "path": "examples/chainer/plain_logger/data.py",
    "content": "import gzip\nimport os\n\nimport numpy as np\nimport six\nfrom six.moves.urllib import request\n\nparent = 'http://yann.lecun.com/exdb/mnist'\ntrain_images = 'train-images-idx3-ubyte.gz'\ntrain_labels = 'train-labels-idx1-ubyte.gz'\ntest_images = 't10k-images-idx3-ubyte.gz'\ntest_labels = 't10k-labels-idx1-ubyte.gz'\nnum_train = 60000\nnum_test = 10000\ndim = 784\n\n\ndef load_mnist(images, labels, num):\n    data = np.zeros(num * dim, dtype=np.uint8).reshape((num, dim))\n    target = np.zeros(num, dtype=np.uint8).reshape((num, ))\n\n    with gzip.open(images, 'rb') as f_images,\\\n            gzip.open(labels, 'rb') as f_labels:\n        f_images.read(16)\n        f_labels.read(8)\n        for i in six.moves.range(num):\n            target[i] = ord(f_labels.read(1))\n            for j in six.moves.range(dim):\n                data[i, j] = ord(f_images.read(1))\n\n    return data, target\n\n\ndef download_mnist_data():\n    print('Downloading {:s}...'.format(train_images))\n    request.urlretrieve('{:s}/{:s}'.format(parent, train_images), train_images)\n    print('Done')\n    print('Downloading {:s}...'.format(train_labels))\n    request.urlretrieve('{:s}/{:s}'.format(parent, train_labels), train_labels)\n    print('Done')\n    print('Downloading {:s}...'.format(test_images))\n    request.urlretrieve('{:s}/{:s}'.format(parent, test_images), test_images)\n    print('Done')\n    print('Downloading {:s}...'.format(test_labels))\n    request.urlretrieve('{:s}/{:s}'.format(parent, test_labels), test_labels)\n    print('Done')\n\n    print('Converting training data...')\n    data_train, target_train = load_mnist(train_images, train_labels,\n                                          num_train)\n    print('Done')\n    print('Converting test data...')\n    data_test, target_test = load_mnist(test_images, test_labels, num_test)\n    mnist = {'data': np.append(data_train, data_test, axis=0),\n             'target': np.append(target_train, target_test, axis=0)}\n    print('Done')\n    print('Save output...')\n    with open('mnist.pkl', 'wb') as output:\n        six.moves.cPickle.dump(mnist, output, -1)\n    print('Done')\n    print('Convert completed')\n\n\ndef load_mnist_data():\n    if not os.path.exists('mnist.pkl'):\n        download_mnist_data()\n    with open('mnist.pkl', 'rb') as mnist_pickle:\n        mnist = six.moves.cPickle.load(mnist_pickle)\n    return mnist\n"
  },
  {
    "path": "examples/chainer/plain_logger/net.py",
    "content": "import six\n\nimport chainer\nimport chainer.functions as F\nfrom chainer.functions.loss.vae import gaussian_kl_divergence\nimport chainer.links as L\n\n\nclass VAE(chainer.Chain):\n    \"\"\"Variational AutoEncoder\"\"\"\n\n    def __init__(self, n_in, n_latent, n_h):\n        super(VAE, self).__init__()\n        with self.init_scope():\n            # encoder\n            self.le1 = L.Linear(n_in, n_h)\n            self.le2_mu = L.Linear(n_h, n_latent)\n            self.le2_ln_var = L.Linear(n_h, n_latent)\n            # decoder\n            self.ld1 = L.Linear(n_latent, n_h)\n            self.ld2 = L.Linear(n_h, n_in)\n\n    def __call__(self, x, sigmoid=True):\n        \"\"\"AutoEncoder\"\"\"\n        return self.decode(self.encode(x)[0], sigmoid)\n\n    def encode(self, x):\n        h1 = F.tanh(self.le1(x))\n        mu = self.le2_mu(h1)\n        ln_var = self.le2_ln_var(h1)  # log(sigma**2)\n        return mu, ln_var\n\n    def decode(self, z, sigmoid=True):\n        h1 = F.tanh(self.ld1(z))\n        h2 = self.ld2(h1)\n        if sigmoid:\n            return F.sigmoid(h2)\n        else:\n            return h2\n\n    def get_loss_func(self, C=1.0, k=1):\n        \"\"\"Get loss function of VAE.\n\n        The loss value is equal to ELBO (Evidence Lower Bound)\n        multiplied by -1.\n\n        Args:\n            C (int): Usually this is 1.0. Can be changed to control the\n                second term of ELBO bound, which works as regularization.\n            k (int): Number of Monte Carlo samples used in encoded vector.\n        \"\"\"\n        def lf(x):\n            mu, ln_var = self.encode(x)\n            batchsize = len(mu.data)\n            # reconstruction loss\n            rec_loss = 0\n            for l in six.moves.range(k):\n                z = F.gaussian(mu, ln_var)\n                rec_loss += F.bernoulli_nll(x, self.decode(z, sigmoid=False)) \\\n                    / (k * batchsize)\n            self.rec_loss = rec_loss\n            self.loss = self.rec_loss + \\\n                C * gaussian_kl_divergence(mu, ln_var) / batchsize\n            return self.loss\n        return lf\n"
  },
  {
    "path": "examples/chainer/plain_logger/train_vae.py",
    "content": "#!/usr/bin/env python\n\"\"\"Chainer example: train a VAE on MNIST\n\"\"\"\nfrom __future__ import print_function\nimport argparse\n\nimport matplotlib\n# Disable interactive backend\nmatplotlib.use('Agg')\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport six\n\nimport chainer\nfrom chainer import computational_graph\nfrom chainer import cuda\nfrom chainer import optimizers\nfrom chainer import serializers\nfrom tensorboardX import SummaryWriter\nimport data\nimport net\n\nwriter = SummaryWriter()\n\nparser = argparse.ArgumentParser(description='Chainer example: MNIST')\nparser.add_argument('--initmodel', '-m', default='',\n                    help='Initialize the model from given file')\nparser.add_argument('--resume', '-r', default='',\n                    help='Resume the optimization from snapshot')\nparser.add_argument('--gpu', '-g', default=-1, type=int,\n                    help='GPU ID (negative value indicates CPU)')\nparser.add_argument('--epoch', '-e', default=100, type=int,\n                    help='number of epochs to learn')\nparser.add_argument('--dimz', '-z', default=20, type=int,\n                    help='dimention of encoded vector')\nparser.add_argument('--batchsize', '-b', type=int, default=100,\n                    help='learning minibatch size')\nparser.add_argument('--test', action='store_true',\n                    help='Use tiny datasets for quick tests')\nargs = parser.parse_args()\n\nbatchsize = args.batchsize\nn_epoch = args.epoch\nn_latent = args.dimz\n\nwriter.add_text('config', str(args))\n\nprint('GPU: {}'.format(args.gpu))\nprint('# dim z: {}'.format(args.dimz))\nprint('# Minibatch-size: {}'.format(args.batchsize))\nprint('# epoch: {}'.format(args.epoch))\nprint('')\n\n# Prepare dataset\nprint('load MNIST dataset')\nmnist = data.load_mnist_data()\nmnist['data'] = mnist['data'].astype(np.float32)\nmnist['data'] /= 255\nmnist['target'] = mnist['target'].astype(np.int32)\n\nif args.test:\n    mnist['data'] = mnist['data'][0:100]\n    mnist['target'] = mnist['target'][0:100]\n    N = 30\nelse:\n    N = 60000\n\nx_train, x_test = np.split(mnist['data'],   [N])\ny_train, y_test = np.split(mnist['target'], [N])\nN_test = y_test.size\n\n# Prepare VAE model, defined in net.py\nmodel = net.VAE(784, n_latent, 500)\nif args.gpu >= 0:\n    cuda.get_device_from_id(args.gpu).use()\n    model.to_gpu()\nxp = np if args.gpu < 0 else cuda.cupy\n\n# Setup optimizer\noptimizer = optimizers.Adam()\noptimizer.setup(model)\n\n# Init/Resume\nif args.initmodel:\n    print('Load model from', args.initmodel)\n    serializers.load_npz(args.initmodel, model)\nif args.resume:\n    print('Load optimizer state from', args.resume)\n    serializers.load_npz(args.resume, optimizer)\n\n# Learning loop\nfor epoch in six.moves.range(1, n_epoch + 1):\n    print('epoch', epoch)\n\n    # training\n    perm = np.random.permutation(N)\n    sum_loss = 0       # total loss\n    sum_rec_loss = 0   # reconstruction loss\n    for i in six.moves.range(0, N, batchsize):\n        x = chainer.Variable(xp.asarray(x_train[perm[i:i + batchsize]]))\n        optimizer.update(model.get_loss_func(), x)\n        if epoch == 1 and i == 0:\n            with open('graph.dot', 'w') as o:\n                g = computational_graph.build_computational_graph(\n                    (model.loss, ))\n                o.write(g.dump())\n            print('graph generated')\n        writer.add_scalar('train/loss', model.loss, epoch * N + i)\n        writer.add_scalar('train/rec_loss', model.rec_loss, epoch * N + i)\n        sum_loss += float(model.loss.data) * len(x.data)\n        sum_rec_loss += float(model.rec_loss.data) * len(x.data)\n\n    print('train mean loss={}, mean reconstruction loss={}'\n          .format(sum_loss / N, sum_rec_loss / N))\n\n    # evaluation\n    sum_loss = 0\n    sum_rec_loss = 0\n    with chainer.no_backprop_mode():\n        for i in six.moves.range(0, N_test, batchsize):\n            x = chainer.Variable(xp.asarray(x_test[i:i + batchsize]))\n            loss_func = model.get_loss_func(k=10)\n            loss_func(x)\n            sum_loss += float(model.loss.data) * len(x.data)\n            sum_rec_loss += float(model.rec_loss.data) * len(x.data)\n            writer.add_scalar('test/loss', model.loss, epoch * N_test + i)\n            writer.add_scalar('test/rec_loss', model.rec_loss,\n                              epoch * N_test + i)\n            writer.add_image('reconstructed', model(\n                x).reshape(-1, 1, 28, 28), epoch * N_test + i)\n            writer.add_image('input', x.reshape(-1, 1, 28, 28),\n                             epoch * N_test + i)\n            del model.loss\n    print('test  mean loss={}, mean reconstruction loss={}'\n          .format(sum_loss / N_test, sum_rec_loss / N_test))\n\n\n# Save the model and the optimizer\nprint('save the model')\nserializers.save_npz('mlp.model', model)\nprint('save the optimizer')\nserializers.save_npz('mlp.state', optimizer)\n\nmodel.to_cpu()\n\n\n# original images and reconstructed images\ndef save_images(x, filename):\n    fig, ax = plt.subplots(3, 3, figsize=(9, 9), dpi=100)\n    for ai, xi in zip(ax.flatten(), x):\n        ai.imshow(xi.reshape(28, 28))\n    fig.savefig(filename)\n\n\ntrain_ind = [1, 3, 5, 10, 2, 0, 13, 15, 17]\nx = chainer.Variable(np.asarray(x_train[train_ind]))\nwith chainer.no_backprop_mode():\n    x1 = model(x)\nsave_images(x.data, 'train')\nsave_images(x1.data, 'train_reconstructed')\n\ntest_ind = [3, 2, 1, 18, 4, 8, 11, 17, 61]\nx = chainer.Variable(np.asarray(x_test[test_ind]))\nwith chainer.no_backprop_mode():\n    x1 = model(x)\nsave_images(x.data, 'test')\nsave_images(x1.data, 'test_reconstructed')\n\n\n# draw images from randomly sampled z\nz = chainer.Variable(np.random.normal(0, 1, (9, n_latent)).astype(np.float32))\nx = model.decode(z)\nsave_images(x.data, 'sampled')\n"
  },
  {
    "path": "examples/create_wit_samples.py",
    "content": "\n\"\"\"\nhttps://archive.ics.uci.edu/ml/datasets/Heart+Disease\n1. #3 (age)\n2. #4 (sex)\n3. #9 (cp)\n4. #10 (trestbps)\n5. #12 (chol)\n6. #16 (fbs)\n7. #19 (restecg)\n8. #32 (thalach)\n9. #38 (exang)\n10. #40 (oldpeak)\n11. #41 (slope)\n12. #44 (ca)\n13. #51 (thal)\n14. #58 (num) (the predicted attribute)\n\nex: ['62', '0', '1', '140', '0', '?', '0', '143', '0', '0', '?', '?', '3', '2']\n\nHere I only choose feature 1~8 for example.\n\n\"\"\"\n\n\nwith open(\"processed.cleveland.data\") as f:\n    lines = f.readlines()\n\ncolumns = [\"age\", \"sex\", \"cp\", \"trestbps\", \"chol\", \"fbs\", \"restecg\", \"thalach\", \"target\"]\nfeatures_targets = []\ntargets = []\nfor line in lines:\n    x = line.strip().split(',')\n    y = x[-1]\n    if '?' in x[:8]:  # skip missing data\n        continue\n    ft = [float(i) for i in x[:8]+[y]]\n    # print(ft)\n    features_targets.append(ft)\n\n\n\"\"\"\n  The first line of the CSV file must contain column names.\n  Each line after that contains one example from the dataset,\n  with values for each of the columns defined on the first line.\n  The pipe character (\"|\") deliminates separate feature values\n  in a list of feature values for a given feature.\n\"\"\"\n\nwith open(\"test.csv\", 'w') as f:\n    f.write(','.join(columns) + '\\n')\n    for feature in features_targets:\n        feature = [str(i) for i in feature]\n        f.write(','.join(feature) + '\\n')\n\n# launch tensorboard and fill [git/]tensorboardX/examples/test.csv in the WIT page and see the data distribution.\n\nexit()\n\n\n# For interactive inference, you may need the data in tfrecord format.\n\nimport tensorflow as tf\n\n\ndef to_examples(features_targets, columns=None):\n    examples = []\n    for row in features_targets:\n        example = tf.train.Example()\n        for i, col in enumerate(columns):\n            example.features.feature[col].float_list.value.append(row[i])\n            # example.features.feature[col].bytes_list.value.append(row[col].encode('utf-8'))\n        examples.append(example)\n    return examples\n\nwriter = tf.io.TFRecordWriter('test.tfrecord')\nfor example in to_examples(features_targets, columns):\n    writer.write(example.SerializeToString())\nwriter.close()\n\n\n# fill [git/]tensorboardX/examples/test.tfrecord in the WIT page and see the data distribution.\n"
  },
  {
    "path": "examples/demo.py",
    "content": "import torch\nimport torchvision.utils as vutils\nimport numpy as np\nimport torchvision.models as models\nfrom torchvision import datasets\nfrom tensorboardX import SummaryWriter\nimport datetime\n\ntry:\n    import soundfile\n    skip_audio = False\nexcept ImportError:\n    skip_audio = True\n\nresnet18 = models.resnet18(weights=None)\nwriter = SummaryWriter()\nsample_rate = 44100\nfreqs = [262, 294, 330, 349, 392, 440, 440, 440, 440, 440, 440]\n\ntrue_positive_counts = [75, 64, 21, 5, 0]\nfalse_positive_counts = [150, 105, 18, 0, 0]\ntrue_negative_counts = [0, 45, 132, 150, 150]\nfalse_negative_counts = [0, 11, 54, 70, 75]\nprecision = [0.3333333, 0.3786982, 0.5384616, 1.0, 0.0]\nrecall = [1.0, 0.8533334, 0.28, 0.0666667, 0.0]\n\n\nfor n_iter in range(100):\n    with writer.use_metadata(global_step=n_iter):\n        s1 = torch.rand(1)  # value to keep\n        s2 = torch.rand(1)\n        # data grouping by `slash`\n        writer.add_scalar('data/scalar_systemtime', s1[0], summary_description=\"# markdown is supported!\")\n        # data grouping by `slash`\n        writer.add_scalar('data/scalar_customtime', s1[0], walltime=n_iter, display_name=\"dudubird\")\n        writer.add_scalars('data/scalar_group', {\"xsinx\": n_iter * np.sin(n_iter),\n                                                 \"xcosx\": n_iter * np.cos(n_iter),\n                                                 \"arctanx\": np.arctan(n_iter)})\n        x = torch.rand(32, 3, 64, 64)  # output from network\n        if n_iter % 10 == 0:\n            x = vutils.make_grid(x, normalize=True, scale_each=True)\n            writer.add_image('Image', x)  # Tensor\n            writer.add_image_with_boxes(\n                'imagebox_label', torch.ones(3, 240, 240) * 0.5,\n                torch.Tensor([[10, 10, 100, 100], [101, 101, 200, 200]]),\n                labels=['abcde' + str(n_iter), 'fgh' + str(n_iter)])\n            if not skip_audio:\n                x = torch.zeros(sample_rate * 2)\n                for i in range(x.size(0)):\n                    # sound amplitude should in [-1, 1]\n                    x[i] = np.cos(freqs[n_iter // 10] * np.pi *\n                                  float(i) / float(sample_rate))\n                writer.add_audio('myAudio', x)\n            writer.add_text('Text', 'text logged at step:' + str(n_iter))\n            writer.add_text('markdown Text', '''a|b\\n-|-\\nc|d''')\n            for name, param in resnet18.named_parameters():\n                if 'bn' not in name:\n                    writer.add_histogram(name, param)\n            writer.add_pr_curve('xoxo', np.random.randint(2, size=100), np.random.rand(\n                100))  # needs tensorboard 0.4RC or later\n            writer.add_pr_curve_raw('prcurve with raw data', true_positive_counts,\n                                    false_positive_counts,\n                                    true_negative_counts,\n                                    false_negative_counts,\n                                    precision,\n                                    recall)\n# export scalar data to JSON for external processing\nwriter.export_scalars_to_json(\"./all_scalars.json\")\n\ndataset = datasets.MNIST('mnist', train=False, download=True)\nimages = dataset.data[:100].float()\nlabel = dataset.targets[:100]\nfeatures = images.view(100, 784)\nwriter.add_embedding(features, metadata=label, label_img=images.unsqueeze(1))\nwriter.add_embedding(features, global_step=1, tag='noMetadata')\nimages_train = dataset.data[100:200].float()\nlabels_train = dataset.targets[100:200]\nfeatures_train = images_train.view(100, 784)\n\nall_features = torch.cat((features, features_train))\nall_labels = torch.cat((label, labels_train))\nall_images = torch.cat((images, images_train))\ndataset_label = ['test'] * 100 + ['train'] * 100\nall_labels = list(zip(all_labels, dataset_label))\n\nwriter.add_embedding(all_features, metadata=all_labels, label_img=all_images.unsqueeze(1),\n                     metadata_header=['digit', 'dataset'], global_step=2)\n\n# VIDEO\nvid_images = dataset.data[:16 * 48]\nvid = vid_images.view(16, 48, 1, 28, 28)  # BxTxCxHxW\n\nwriter.add_video('video', vid_tensor=vid)\nwriter.add_video('video_1_fps', vid_tensor=vid, fps=1)\n\nwriter.close()\n\nwriter.add_scalar('implicit reopen writer', 100, 0)\n"
  },
  {
    "path": "examples/demo_beholder.py",
    "content": "# Copyright 2017 The TensorFlow Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the 'License');\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an 'AS IS' BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Simple MNIST classifier to demonstrate features of Beholder.\n\nBased on tensorflow/examples/tutorials/mnist/mnist_with_summaries.py.\n\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport numpy as np\nimport tensorboardX.beholder as beholder_lib\nimport time\n\nfrom collections import namedtuple\n\n\nLOG_DIRECTORY = '/tmp/beholder-demo'\ntensor_and_name = namedtuple('tensor_and_name', 'tensor, name')\n\n\ndef beholder_pytorch():\n    for i in range(1000):\n        fake_param = [tensor_and_name(np.random.randn(128, 768, 3), 'test' + str(i))\n                      for i in range(5)]\n        arrays = [tensor_and_name(np.random.randn(128, 768, 3), 'test' + str(i))\n                  for i in range(5)]\n        beholder = beholder_lib.Beholder(logdir=LOG_DIRECTORY)\n        beholder.update(\n            trainable=fake_param,\n            arrays=arrays,\n            frame=np.random.randn(128, 128),\n        )\n        time.sleep(0.1)\n        print(i)\n\n\nif __name__ == '__main__':\n    import os\n    if not os.path.exists(LOG_DIRECTORY):\n        os.makedirs(LOG_DIRECTORY)\n    print(LOG_DIRECTORY)\n    beholder_pytorch()\n"
  },
  {
    "path": "examples/demo_comet.py",
    "content": "from tensorboardX import SummaryWriter\nimport torch\nimport torchvision.utils as vutils\nimport numpy as np\nimport torchvision.models as models\nfrom torchvision import datasets\nimport datetime\n\ntry:\n    import soundfile\n    skip_audio = False\nexcept ImportError:\n    skip_audio = True\n\nresnet18 = models.resnet18(False)\nwriter = SummaryWriter(comet_config={\"disabled\": False,\n                                     \"workspace\": 'tensorboardx-test',\n                                     \"project_name\": 'tbx-ci',\n                                     \"api_key\": \"KOSKkXJ52qFZxkxYHlRJ7wOEk\"})                               \nsample_rate = 44100\nfreqs = [262, 294, 330, 349, 392, 440, 440, 440, 440, 440, 440]\n\ntrue_positive_counts = [75, 64, 21, 5, 0]\nfalse_positive_counts = [150, 105, 18, 0, 0]\ntrue_negative_counts = [0, 45, 132, 150, 150]\nfalse_negative_counts = [0, 11, 54, 70, 75]\nprecision = [0.3333333, 0.3786982, 0.5384616, 1.0, 0.0]\nrecall = [1.0, 0.8533334, 0.28, 0.0666667, 0.0]\n\n\nfor n_iter in range(100):\n    s1 = torch.rand(1)  # value to keep\n    s2 = torch.rand(1)\n    # data grouping by `slash`\n    writer.add_scalar('data/scalar_systemtime', s1[0], n_iter, summary_description=\"# markdown is supported!\")\n    # data grouping by `slash`\n    writer.add_scalar('data/scalar_customtime', s1[0], n_iter, walltime=n_iter, display_name=\"dudubird\")\n    writer.add_scalars('data/scalar_group', {\"xsinx\": n_iter * np.sin(n_iter),\n                                             \"xcosx\": n_iter * np.cos(n_iter),\n                                             \"arctanx\": np.arctan(n_iter)}, n_iter)\n    x = torch.rand(32, 3, 64, 64)  # output from network\n    if n_iter % 10 == 0:\n        x = vutils.make_grid(x, normalize=True, scale_each=True)\n        writer.add_image('Image', x, n_iter)  # Tensor\n        writer.add_image_with_boxes('imagebox_label', torch.ones(3, 240, 240) * 0.5,\n             torch.Tensor([[10, 10, 100, 100], [101, 101, 200, 200]]),\n             n_iter, \n             labels=['abcde' + str(n_iter), 'fgh' + str(n_iter)])\n        if not skip_audio:\n            x = torch.zeros(sample_rate * 2)\n            for i in range(x.size(0)):\n                # sound amplitude should in [-1, 1]\n                x[i] = np.cos(freqs[n_iter // 10] * np.pi *\n                            float(i) / float(sample_rate))\n            writer.add_audio('myAudio', x, n_iter)\n        writer.add_text('Text', 'text logged at step:' + str(n_iter), n_iter)\n        writer.add_text('markdown Text', '''a|b\\n-|-\\nc|d''', n_iter)\n        for name, param in resnet18.named_parameters():\n            if 'bn' not in name:\n                writer.add_histogram(name, param, n_iter)\n        writer.add_pr_curve('xoxo', np.random.randint(2, size=100), np.random.rand(\n            100), n_iter)  # needs tensorboard 0.4RC or later\n        writer.add_pr_curve_raw('prcurve with raw data', true_positive_counts,\n                                false_positive_counts,\n                                true_negative_counts,\n                                false_negative_counts,\n                                precision,\n                                recall, n_iter)\n# export scalar data to JSON for external processing\nwriter.export_scalars_to_json(\"./all_scalars.json\")\n\ndataset = datasets.MNIST('mnist', train=False, download=True)\nimages = dataset.test_data[:100].float()\nlabel = dataset.test_labels[:100]\nfeatures = images.view(100, 784)\nwriter.add_embedding(features, metadata=label, label_img=images.unsqueeze(1))\nwriter.add_embedding(features, global_step=1, tag='noMetadata')\ndataset = datasets.MNIST('mnist', train=True, download=True)\nimages_train = dataset.train_data[:100].float()\nlabels_train = dataset.train_labels[:100]\nfeatures_train = images_train.view(100, 784)\n\nall_features = torch.cat((features, features_train))\nall_labels = torch.cat((label, labels_train))\nall_images = torch.cat((images, images_train))\ndataset_label = ['test'] * 100 + ['train'] * 100\nall_labels = list(zip(all_labels, dataset_label))\n\nwriter.add_embedding(all_features, metadata=all_labels, label_img=all_images.unsqueeze(1),\n                     metadata_header=['digit', 'dataset'], global_step=2)\n\n# VIDEO\nvid_images = dataset.train_data[:16 * 48]\nvid = vid_images.view(16, 48, 1, 28, 28)  # BxTxCxHxW\n\nwriter.add_video('video', vid_tensor=vid)\nwriter.add_video('video_1_fps', vid_tensor=vid, fps=1)\n\nwriter.close()\n\nwriter.add_scalar('implicit reopen writer', 100, 0)\n"
  },
  {
    "path": "examples/demo_custom_scalars.py",
    "content": "from numpy.random import rand\nfrom tensorboardX import SummaryWriter\nimport time\n\n\nwith SummaryWriter() as writer:\n    for n_iter in range(100):\n        writer.add_scalar('twse/0050', rand(), n_iter)\n        writer.add_scalar('twse/2330', rand(), n_iter)\n        t = rand()\n        writer.add_scalar('dow/aaa', t, n_iter)\n        writer.add_scalar('dow/bbb', t - 1, n_iter)\n        writer.add_scalar('dow/ccc', t + 1, n_iter)\n        writer.add_scalar('nasdaq/aaa', rand(), n_iter)\n        writer.add_scalar('nasdaq/bbb', rand(), n_iter)\n        writer.add_scalar('nasdaq/ccc', rand(), n_iter)\n\n    layout = {'Taiwan': {'twse': ['Multiline', ['twse/0050', 'twse/2330']]},\n              'USA': {'dow': ['Margin', ['dow/aaa', 'dow/bbb', 'dow/ccc']],\n                      'nasdaq': ['Margin', ['nasdaq/aaa', 'nasdaq/bbb', 'nasdaq/ccc']]}}\n    writer.add_custom_scalars(layout)\n#    writer.add_custom_scalars(layout) second call has no effect\n\ntime.sleep(1)\n\nwith SummaryWriter() as writer:\n    for n_iter in range(100):\n        writer.add_scalar('twse/0050', rand(), n_iter)\n        writer.add_scalar('twse/2330', rand(), n_iter)\n\n    writer.add_custom_scalars_multilinechart(['twse/0050', 'twse/2330'])\n\ntime.sleep(1)\n\nwith SummaryWriter() as writer:\n    for n_iter in range(100):\n        t = rand()\n        writer.add_scalar('dow/aaa', t, n_iter)\n        writer.add_scalar('dow/bbb', t - 1, n_iter)\n        writer.add_scalar('dow/ccc', t + 1, n_iter)\n\n    writer.add_custom_scalars_marginchart(['dow/aaa', 'dow/bbb', 'dow/ccc'])\n"
  },
  {
    "path": "examples/demo_embedding.py",
    "content": "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport os\nfrom torch.autograd.variable import Variable\nfrom tensorboardX import SummaryWriter\nfrom torch.utils.data import TensorDataset, DataLoader\n\n# EMBEDDING VISUALIZATION FOR A TWO-CLASSES PROBLEM\n\n# just a bunch of layers\n\n\nclass M(nn.Module):\n    def __init__(self):\n        super(M, self).__init__()\n        self.cn1 = nn.Conv2d(in_channels=1, out_channels=64, kernel_size=3)\n        self.cn2 = nn.Conv2d(in_channels=64, out_channels=32, kernel_size=3)\n        self.fc1 = nn.Linear(in_features=128, out_features=2)\n\n    def forward(self, i):\n        i = self.cn1(i)\n        i = F.relu(i)\n        i = F.max_pool2d(i, 2)\n        i = self.cn2(i)\n        i = F.relu(i)\n        i = F.max_pool2d(i, 2)\n        i = i.view(len(i), -1)\n        i = self.fc1(i)\n        i = F.log_softmax(i, dim=1)\n        return i\n\n# get some random data around value\n\n\ndef get_data(value, shape):\n    data = torch.ones(shape) * value\n    # add some noise\n    data += torch.randn(shape)**2\n    return data\n\n\n# dataset\n# cat some data with different values\ndata = torch.cat(\n    (get_data(\n        0, (100, 1, 14, 14)), get_data(\n            0.5, (100, 1, 14, 14))), 0)\n# labels\nlabels = torch.cat((torch.zeros(100), torch.ones(100)), 0)\n# generator\ngen = DataLoader(TensorDataset(data, labels), batch_size=25, shuffle=True)\n# network\nm = M()\n#loss and optim\nloss = nn.NLLLoss()\noptimizer = torch.optim.Adam(params=m.parameters())\n# settings for train and log\nnum_epochs = 20\nembedding_log = 5\nwriter = SummaryWriter(comment='mnist_embedding_training')\n\n#writer = SummaryWriter(\"gs://your-bucket/embedding-test\")\n#writer = SummaryWriter(\"s3://your-bucket/embedding-test\")\n\n# TRAIN\nfor epoch in range(num_epochs):\n    for j, sample in enumerate(gen):\n        n_iter = (epoch * len(gen)) + j\n        # reset grad\n        m.zero_grad()\n        optimizer.zero_grad()\n        # get batch data\n        data_batch = Variable(sample[0], requires_grad=True).float()\n        label_batch = Variable(sample[1], requires_grad=False).long()\n        # FORWARD\n        out = m(data_batch)\n        loss_value = loss(out, label_batch)\n        # BACKWARD\n        loss_value.backward()\n        optimizer.step()\n        # LOGGING\n        writer.add_scalar('loss', loss_value.data.item(), n_iter)\n\n        if j % embedding_log == 0:\n            print(\"loss_value:{}\".format(loss_value.data.item()))\n            # we need 3 dimension for tensor to visualize it!\n            out = torch.cat((out.data, torch.ones(len(out), 1)), 1)\n            writer.add_embedding(\n                out,\n                metadata=label_batch.data,\n                label_img=data_batch.data,\n                global_step=n_iter)\n\nwriter.close()\n\n# tensorboard --logdir runs\n# you should now see a dropdown list with all the timestep,\n# last timestep should have a visible separation between the two classes\n"
  },
  {
    "path": "examples/demo_global_writer.py",
    "content": "# This program show that you can use summary writer globally\n# So that you can use the writer like the python.logging module\n\n# This file triggers global_1 and global_2 to do their job.\nimport global_1\nimport time\ntime.sleep(2)\nimport global_2\n\n"
  },
  {
    "path": "examples/demo_graph.py",
    "content": "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport torchvision\nfrom torch.autograd import Variable\nfrom tensorboardX import SummaryWriter\n\ndummy_input = (torch.zeros(1, 3),)\n\n\nclass LinearInLinear(nn.Module):\n    def __init__(self):\n        super(LinearInLinear, self).__init__()\n        self.l = nn.Linear(3, 5)\n\n    def forward(self, x):\n        return self.l(x)\n\nwith SummaryWriter(comment='LinearInLinear') as w:\n    w.add_graph(LinearInLinear(), dummy_input, True)\n\n\nclass MultipleInput(nn.Module):\n    def __init__(self):\n        super(MultipleInput, self).__init__()\n        self.Linear_1 = nn.Linear(3, 5)\n\n\n    def forward(self, x, y):\n        return self.Linear_1(x+y)\n\nwith SummaryWriter(comment='MultipleInput') as w:\n    w.add_graph(MultipleInput(), (torch.zeros(1, 3), torch.zeros(1, 3)), True)\n\nclass MultipleOutput(nn.Module):\n    def __init__(self):\n        super(MultipleOutput, self).__init__()\n        self.Linear_1 = nn.Linear(3, 5)\n        self.Linear_2 = nn.Linear(3, 7)\n\n    def forward(self, x):\n        return self.Linear_1(x), self.Linear_2(x)\n\nwith SummaryWriter(comment='MultipleOutput') as w:\n    w.add_graph(MultipleOutput(), dummy_input, True)\n\n\nclass MultipleOutput_shared(nn.Module):\n    def __init__(self):\n        super(MultipleOutput_shared, self).__init__()\n        self.Linear_1 = nn.Linear(3, 5)\n\n    def forward(self, x):\n        return self.Linear_1(x), self.Linear_1(x)\n\nwith SummaryWriter(comment='MultipleOutput_shared') as w:\n    w.add_graph(MultipleOutput_shared(), dummy_input, True)\n\n\nclass SimpleModel(nn.Module):\n    def __init__(self):\n        super(SimpleModel, self).__init__()\n\n    def forward(self, x):\n        return x * 2\n\n\nmodel = SimpleModel()\ndummy_input = (torch.zeros(1, 2, 3),)\n\nwith SummaryWriter(comment='constantModel') as w:\n    w.add_graph(model, dummy_input, True)\n\n\ndef conv3x3(in_planes, out_planes, stride=1):\n    \"\"\"3x3 convolution with padding\"\"\"\n    return nn.Conv2d(in_planes, out_planes, kernel_size=3, stride=stride,\n                     padding=1, bias=False)\n\n\nclass BasicBlock(nn.Module):\n    expansion = 1\n\n    def __init__(self, inplanes, planes, stride=1, downsample=None):\n        super(BasicBlock, self).__init__()\n        self.conv1 = conv3x3(inplanes, planes, stride)\n        self.bn1 = nn.BatchNorm2d(planes)\n        # self.relu = nn.ReLU(inplace=True)\n        self.conv2 = conv3x3(planes, planes)\n        self.bn2 = nn.BatchNorm2d(planes)\n        self.stride = stride\n\n    def forward(self, x):\n        residual = x\n\n        out = self.conv1(x)\n        out = self.bn1(out)\n        out = F.relu(out)\n        out = self.conv2(out)\n        out = self.bn2(out)\n        out += residual\n        out = F.relu(out)\n        return out\n\n\ndummy_input = torch.rand(1, 3, 224, 224)\n\nwith SummaryWriter(comment='basicblock') as w:\n    model = BasicBlock(3, 3)\n    w.add_graph(model, (dummy_input, ), verbose=True)\n\n\n\n\nclass Net1(nn.Module):\n    def __init__(self):\n        super(Net1, self).__init__()\n        self.conv1 = nn.Conv2d(1, 10, kernel_size=5)\n        self.conv2 = nn.Conv2d(10, 20, kernel_size=5)\n        self.conv2_drop = nn.Dropout2d()\n        self.fc1 = nn.Linear(320, 50)\n        self.fc2 = nn.Linear(50, 10)\n        self.bn = nn.BatchNorm2d(20)\n\n    def forward(self, x):\n        x = F.max_pool2d(self.conv1(x), 2)\n        x = F.relu(x) + F.relu(-x)\n        x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2))\n        x = self.bn(x)\n        x = x.view(-1, 320)\n        x = F.relu(self.fc1(x))\n        x = F.dropout(x, training=self.training)\n        x = self.fc2(x)\n        x = F.softmax(x, dim=1)\n        return x\n\n\nclass Net2(nn.Module):\n    def __init__(self):\n        super(Net2, self).__init__()\n        self.conv1 = nn.Conv2d(1, 10, kernel_size=5)\n        self.conv2 = nn.Conv2d(10, 20, kernel_size=5)\n        self.conv2_drop = nn.Dropout2d()\n        self.fc1 = nn.Linear(320, 50)\n        self.fc2 = nn.Linear(50, 10)\n\n    def forward(self, x):\n        x = F.relu(F.max_pool2d(self.conv1(x), 2))\n        x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2))\n        x = x.view(-1, 320)\n        x = F.relu(self.fc1(x))\n        x = F.dropout(x, training=self.training)\n        x = self.fc2(x)\n        x = F.log_softmax(x, dim=1)\n        return x\n\n\ndummy_input = Variable(torch.rand(13, 1, 28, 28))\n\nmodel = Net1()\nwith SummaryWriter(comment='Net1') as w:\n    w.add_graph(model, (dummy_input, ))\n\nmodel = Net2()\nwith SummaryWriter(comment='Net2') as w:\n    w.add_graph(model, (dummy_input, ))\n\n\nclass SiameseNetwork(nn.Module):\n    def __init__(self):\n        super(SiameseNetwork, self).__init__()\n        self.cnn1 = Net1()\n\n    def forward_once(self, x):\n        output = self.cnn1(x)\n        return output\n\n    def forward(self, input1, input2):\n        output1 = self.forward_once(input1)\n        output2 = self.forward_once(input2)\n        return output1, output2\n\nmodel = SiameseNetwork()\nwith SummaryWriter(comment='SiameseNetwork') as w:\n    w.add_graph(model, (dummy_input, dummy_input))\n\n\ndummy_input = torch.Tensor(1, 3, 224, 224)\n\nwith SummaryWriter(comment='alexnet') as w:\n    model = torchvision.models.alexnet()\n    w.add_graph(model, (dummy_input, ))\n\nwith SummaryWriter(comment='vgg19') as w:\n    model = torchvision.models.vgg19()\n    w.add_graph(model, (dummy_input, ))\n\nwith SummaryWriter(comment='densenet121') as w:\n    model = torchvision.models.densenet121()\n    w.add_graph(model, (dummy_input, ))\n\nwith SummaryWriter(comment='resnet18') as w:\n    model = torchvision.models.resnet18()\n    w.add_graph(model, (dummy_input, ))\n\n\n\nclass RNN(nn.Module):\n    def __init__(self, input_size, hidden_size, output_size):\n        super(RNN, self).__init__()\n        self.hidden_size = hidden_size\n        self.i2h = nn.Linear(\n            n_categories +\n            input_size +\n            hidden_size,\n            hidden_size)\n        self.i2o = nn.Linear(\n            n_categories +\n            input_size +\n            hidden_size,\n            output_size)\n        self.o2o = nn.Linear(hidden_size + output_size, output_size)\n        self.dropout = nn.Dropout(0.1)\n        self.softmax = nn.LogSoftmax(dim=1)\n\n    def forward(self, category, input, hidden):\n        input_combined = torch.cat((category, input, hidden), 1)\n        hidden = self.i2h(input_combined)\n        output = self.i2o(input_combined)\n        output_combined = torch.cat((hidden, output), 1)\n        output = self.o2o(output_combined)\n        output = self.dropout(output)\n        output = self.softmax(output)\n        return output, hidden, input\n\n    def initHidden(self):\n        return torch.zeros(1, self.hidden_size)\n\n\nn_letters = 100\nn_hidden = 128\nn_categories = 10\nrnn = RNN(n_letters, n_hidden, n_categories)\ncat = torch.Tensor(1, n_categories)\ndummy_input = torch.Tensor(1, n_letters)\nhidden = torch.Tensor(1, n_hidden)\n\n\nout, hidden, input = rnn(cat, dummy_input, hidden)\nwith SummaryWriter(comment='RNN') as w:\n    w.add_graph(rnn, (cat, dummy_input, hidden), verbose=False)\n\n\n\nlstm = torch.nn.LSTM(3, 3)  # Input dim is 3, output dim is 3\ninputs = [torch.randn(1, 3) for _ in range(5)]  # make a sequence of length 5\n\n# initialize the hidden state.\nhidden = (torch.randn(1, 1, 3),\n          torch.randn(1, 1, 3))\nfor i in inputs:\n    out, hidden = lstm(i.view(1, 1, -1), hidden)\n\nwith SummaryWriter(comment='lstm') as w:\n    w.add_graph(lstm, (torch.randn(1, 3).view(1, 1, -1), hidden), verbose=True)\n\n\nimport pytest\nprint('expect error here:')\nwith pytest.raises(Exception) as e_info:\n    dummy_input = torch.rand(1, 1, 224, 224)\n    with SummaryWriter(comment='basicblock_error') as w:\n        w.add_graph(model, (dummy_input, ))  # error\n"
  },
  {
    "path": "examples/demo_hogwild.py",
    "content": "from __future__ import print_function\nimport argparse\nimport os\nimport torch\nimport torch.optim as optim\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport torch.multiprocessing as mp\nfrom torchvision import datasets, transforms\nfrom tensorboardX import GlobalSummaryWriter\n\n\n# Training settings\nparser = argparse.ArgumentParser(description='PyTorch MNIST Example')\nparser.add_argument('--batch-size', type=int, default=64, metavar='N',\n                    help='input batch size for training (default: 64)')\nparser.add_argument('--test-batch-size', type=int, default=1000, metavar='N',\n                    help='input batch size for testing (default: 1000)')\nparser.add_argument('--epochs', type=int, default=2, metavar='N',\n                    help='number of epochs to train (default: 10)')\nparser.add_argument('--lr', type=float, default=0.01, metavar='LR',\n                    help='learning rate (default: 0.01)')\nparser.add_argument('--momentum', type=float, default=0.5, metavar='M',\n                    help='SGD momentum (default: 0.5)')\nparser.add_argument('--seed', type=int, default=1, metavar='S',\n                    help='random seed (default: 1)')\nparser.add_argument('--log-interval', type=int, default=10, metavar='N',\n                    help='how many batches to wait before logging training status')\nparser.add_argument('--num-processes', type=int, default=2, metavar='N',\n                    help='how many training processes to use (default: 2)')\nparser.add_argument('--cuda', action='store_true', default=False,\n                    help='enables CUDA training')\n\nclass Net(nn.Module):\n    def __init__(self):\n        super(Net, self).__init__()\n        self.conv1 = nn.Conv2d(1, 10, kernel_size=5)\n        self.conv2 = nn.Conv2d(10, 20, kernel_size=5)\n        self.conv2_drop = nn.Dropout2d()\n        self.fc1 = nn.Linear(320, 50)\n        self.fc2 = nn.Linear(50, 10)\n\n    def forward(self, x):\n        x = F.relu(F.max_pool2d(self.conv1(x), 2))\n        x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2))\n        x = x.view(-1, 320)\n        x = F.relu(self.fc1(x))\n        x = F.dropout(x, training=self.training)\n        x = self.fc2(x)\n        return F.log_softmax(x, dim=1)\n\n\ndef train(rank, args, model, device, dataloader_kwargs):\n    torch.manual_seed(args.seed + rank)\n\n    train_loader = torch.utils.data.DataLoader(\n        datasets.MNIST('../data', train=True, download=True,\n                    transform=transforms.Compose([\n                        transforms.ToTensor(),\n                        transforms.Normalize((0.1307,), (0.3081,))\n                    ])),\n        batch_size=args.batch_size, shuffle=True, num_workers=1,\n        **dataloader_kwargs)\n\n    optimizer = optim.SGD(model.parameters(), lr=args.lr, momentum=args.momentum)\n    for epoch in range(1, args.epochs + 1):\n        train_epoch(epoch, args, model, device, train_loader, optimizer)\n\ndef train_epoch(epoch, args, model, device, data_loader, optimizer):\n    model.train()\n    pid = os.getpid()\n    for batch_idx, (data, target) in enumerate(data_loader):\n        optimizer.zero_grad()\n        output = model(data.to(device))\n        loss = F.nll_loss(output, target.to(device))\n        loss.backward()\n        optimizer.step()\n        if batch_idx % args.log_interval == 0:\n            writer.add_scalar(\"Loss\", loss)\n            print('{}\\tTrain Epoch: {} [{}/{} ({:.0f}%)]\\tLoss: {:.6f}'.format(\n                pid, epoch, batch_idx * len(data), len(data_loader.dataset),\n                100. * batch_idx / len(data_loader), loss.item()))\n\nwriter = GlobalSummaryWriter()\n\nif __name__ == '__main__':\n    args = parser.parse_args()\n\n    use_cuda = args.cuda and torch.cuda.is_available()\n    device = torch.device(\"cuda\" if use_cuda else \"cpu\")\n    dataloader_kwargs = {'pin_memory': True} if use_cuda else {}\n\n    torch.manual_seed(args.seed)\n    # mp.set_start_method('spawn')\n\n    model = Net().to(device)\n    model.share_memory() # gradients are allocated lazily, so they are not shared here\n    processes = []\n    for rank in range(args.num_processes):\n        p = mp.Process(target=train, args=(rank, args, model, device, dataloader_kwargs))\n        # We first train the model across `num_processes` processes\n        p.start()\n        processes.append(p)\n    for p in processes:\n        p.join()\n\n"
  },
  {
    "path": "examples/demo_hparams.py",
    "content": "from tensorboardX import SummaryWriter\nimport time\nimport random\n\n\nhparam = {'lr': [0.1, 0.01, 0.001],\n          'bsize': [1, 2, 4],\n          'n_hidden': [100, 200],\n          'bn': [True, False]}\n\nmetrics = {'accuracy', 'loss'}\n\ndef train(lr, bsize, n_hidden):\n    x = random.random()\n    return x, x*5\n\ni = 0\nwith SummaryWriter() as w:\n    for lr in hparam['lr']:\n        for bsize in hparam['bsize']:\n            for n_hidden in hparam['n_hidden']:\n                for bn in hparam['bn']:\n                    accu, loss = train(lr, bsize, n_hidden)\n                    i = i + 1\n                    w.add_hparams({'lr': lr, 'bsize': bsize, 'n_hidden': n_hidden, 'bn': bn},\n                                    {'accuracy': accu, 'loss': loss}, name=\"trial\"+str(i))\n\n"
  },
  {
    "path": "examples/demo_matplotlib.py",
    "content": "import matplotlib.pyplot as plt\nplt.switch_backend('agg')\n\nfig = plt.figure()\n\nc1 = plt.Circle((0.2, 0.5), 0.2, color='r')\nc2 = plt.Circle((0.8, 0.5), 0.2, color='r')\n\nax = plt.gca()\nax.add_patch(c1)\nax.add_patch(c2)\nplt.axis('scaled')\n\n\nfrom tensorboardX import SummaryWriter\nwriter = SummaryWriter()\nwriter.add_figure('matplotlib', fig)\nwriter.close()\n"
  },
  {
    "path": "examples/demo_mesh.py",
    "content": "import numpy as np\nfrom tensorboardX import SummaryWriter\nfrom numpy.random import randint\n\n\ndef draw_fusilli(turns, radius, omega):\n    points = []\n    faces = []\n    colors = []\n    for t in range(turns):\n        for theta in np.linspace(0, 2 * np.pi, 100, endpoint=False):\n            z = (theta + 2 * np.pi * t) * omega\n            end_point = radius * np.cos(theta), radius * np.sin(theta), z\n            center_point = 0, 0, z\n            points.append(center_point)\n            points.append(end_point)\n\n\n    # The frontend stays silent even if you assigned \n    # non-existing points, be careful.\n    for n in range(0, len(points)-3, 2):\n        faces.append((n, n+1, n+3))\n\n    for _ in range(len(points)):\n        colors.append((randint(100, 200),\n                       randint(100, 200),\n                       randint(100, 200)))\n\n    return np.array([points]), np.array([colors]), np.array([faces])\n\n\nwith SummaryWriter() as w: \n    points, colors, faces = draw_fusilli(5, 1, 0.1)\n    w.add_mesh(\"my_mesh1\", points, colors, faces, global_step=0)\n   \n    for i in range(1, 10):\n        points, colors, faces = draw_fusilli(randint(4, 7), 1, 0.1*randint(1,3))\n        points += randint(-5, 5)\n        w.add_mesh(\"my_mesh1\", points, colors, faces, global_step=i)\n"
  },
  {
    "path": "examples/demo_multiple_embedding.py",
    "content": "import math\nimport numpy as np\nfrom tensorboardX import SummaryWriter\n\n\ndef main():\n    degrees = np.linspace(0, 3600 * math.pi / 180.0, 3600)\n    degrees = degrees.reshape(3600, 1)\n    labels = [\"%d\" % (i) for i in range(0, 3600)]\n\n    with SummaryWriter() as writer:\n        # Maybe make a bunch of data that's always shifted in some\n        # way, and that will be hard for PCA to turn into a sphere?\n\n        for epoch in range(0, 16):\n            shift = epoch * 2 * math.pi / 16.0\n            mat = np.concatenate([\n                np.sin(shift + degrees * 2 * math.pi / 180.0),\n                np.sin(shift + degrees * 3 * math.pi / 180.0),\n                np.sin(shift + degrees * 5 * math.pi / 180.0),\n                np.sin(shift + degrees * 7 * math.pi / 180.0),\n                np.sin(shift + degrees * 11 * math.pi / 180.0)\n            ], axis=1)\n            writer.add_embedding(\n                mat=mat,\n                metadata=labels,\n                tag=\"sin\",\n                global_step=epoch)\n\n            mat = np.concatenate([\n                np.cos(shift + degrees * 2 * math.pi / 180.0),\n                np.cos(shift + degrees * 3 * math.pi / 180.0),\n                np.cos(shift + degrees * 5 * math.pi / 180.0),\n                np.cos(shift + degrees * 7 * math.pi / 180.0),\n                np.cos(shift + degrees * 11 * math.pi / 180.0)\n            ], axis=1)\n            writer.add_embedding(\n                mat=mat,\n                metadata=labels,\n                tag=\"cos\",\n                global_step=epoch)\n\n            mat = np.concatenate([\n                np.tan(shift + degrees * 2 * math.pi / 180.0),\n                np.tan(shift + degrees * 3 * math.pi / 180.0),\n                np.tan(shift + degrees * 5 * math.pi / 180.0),\n                np.tan(shift + degrees * 7 * math.pi / 180.0),\n                np.tan(shift + degrees * 11 * math.pi / 180.0)\n            ], axis=1)\n            writer.add_embedding(\n                mat=mat,\n                metadata=labels,\n                tag=\"tan\",\n                global_step=epoch)\n\n\nif __name__ == \"__main__\":\n    main()\n\n# tensorboard --logdir runs\n# Under \"Projection, you should see\n#  48 tensor found named\n#     cos:cos-00000 to cos:cos-00016\n#     sin:sin-00000 to sin:sin-00016\n#     tan:tan-00000 to tan:tan-00016\n"
  },
  {
    "path": "examples/demo_multiprocessing.py",
    "content": "from tensorboardX import GlobalSummaryWriter\nimport multiprocessing as mp\nimport time\nimport os\nimport psutil\nimport torch\nimport numpy as np\n\nw = GlobalSummaryWriter()\n\n\ndef train3():\n    for i in range(100):\n        w.add_scalar('many_write_in_func', np.random.randn())\n        time.sleep(0.01*np.random.randint(0, 10))\n\ndef train2(x):\n    np.random.seed(x)\n    w.add_scalar('few_write_per_func/1', np.random.randn())\n    time.sleep(0.05*np.random.randint(0, 10))\n    w.add_scalar('few_write_per_func/2', np.random.randn())\n\ndef train(x):\n\n    w.add_scalar('poolmap/1', x*np.random.randn())\n    time.sleep(0.05*np.random.randint(0, 10))\n    w.add_scalar('poolmap/2', x*np.random.randn())\n\n\n\nif __name__ == '__main__':\n\n    with mp.Pool() as pool:\n        pool.map(train, range(100))\n\n\n    processes = []\n    for i in range(4):\n        p0 = mp.Process(target=train2, args=(i,))\n        p1 = mp.Process(target=train3)\n        processes.append(p0)\n        processes.append(p1)\n        p0.start()\n        p1.start()\n\n    for p in processes:\n        p.join()\n\n    w.close()"
  },
  {
    "path": "examples/demo_nvidia_smi.py",
    "content": "\"\"\"\nwrite gpu and (gpu) memory usage of nvidia cards as scalar\n\"\"\"\nfrom tensorboardX import SummaryWriter\nimport time\nimport torch\ntry:\n    import nvidia_smi\n    nvidia_smi.nvmlInit()\n    handle = nvidia_smi.nvmlDeviceGetHandleByIndex(0)  # gpu0\nexcept ImportError:\n    print('This demo needs nvidia-ml-py or nvidia-ml-py3')\n    exit()\n\n\nwith SummaryWriter() as writer:\n    x = []\n    for n_iter in range(50):\n        x.append(torch.Tensor(1000, 1000).cuda())\n        res = nvidia_smi.nvmlDeviceGetUtilizationRates(handle)\n        writer.add_scalar('nv/gpu', res.gpu, n_iter)\n        res = nvidia_smi.nvmlDeviceGetMemoryInfo(handle)\n        writer.add_scalar('nv/gpu_mem', res.used, n_iter)\n        time.sleep(0.1)\n"
  },
  {
    "path": "examples/demo_onnx.py",
    "content": "from tensorboardX import SummaryWriter\n\nimport subprocess\nzoo_address = 'https://onnxzoo.blob.core.windows.net/models/opset_8/mnist/mnist.tar.gz'\n\nres = subprocess.call(['wget', '-nc', zoo_address])\nassert res == 0, 'cannot download example onnx model from the zoo'\nres = subprocess.call(['tar', 'xf', 'mnist.tar.gz', '-C', 'examples/', 'mnist/model.onnx'])\n\n\n\nwith SummaryWriter() as w:\n    w.add_onnx_graph('examples/mnist/model.onnx')\n    # w.add_onnx_graph('/Users/dexter/Downloads/resnet50/model.onnx')\n"
  },
  {
    "path": "examples/demo_openvino.py",
    "content": "from tensorboardX import SummaryWriter\nwith SummaryWriter() as w:\n    # https://download.01.org/opencv/2019/open_model_zoo/R3/20190905_163000_models_bin/mobilenetv2-int8-sparse-v1-tf-0001/FP32/mobilenetv2-int8-sparse-v1-tf-0001.xml\n    w.add_openvino_graph('examples/mobilenetv2.xml')\n\n"
  },
  {
    "path": "examples/demo_purge.py",
    "content": "from time import sleep\nfrom tensorboardX import SummaryWriter\n\nwith SummaryWriter(logdir='runs/purge') as w:\n    for i in range(100):\n        w.add_scalar('purgetest', i, i)\n\nsleep(1.0)\n\nwith SummaryWriter(logdir='runs/purge', purge_step=42) as w:\n    # event 42~99 are removed (inclusively)\n    for i in range(42, 100):\n        w.add_scalar('purgetest', 42, i)\n"
  },
  {
    "path": "examples/global_1.py",
    "content": "# called by demo_global_writer\n\nfrom tensorboardX import GlobalSummaryWriter\n\nwriter = GlobalSummaryWriter.getSummaryWriter()\n\nwriter.add_text('my_log', 'greeting from global1')\n\nfor i in range(100):\n    writer.add_scalar('global1', i)\n\nfor i in range(100):\n    writer.add_scalar('common', i)"
  },
  {
    "path": "examples/global_2.py",
    "content": "# called by demo_global_writer\n\nfrom tensorboardX import GlobalSummaryWriter\n\nwriter = GlobalSummaryWriter.getSummaryWriter()\n\nwriter.add_text('my_log', 'greeting from global2')\n\nfor i in range(100):\n    writer.add_scalar('global2', i)\n\nfor i in range(100):\n    writer.add_scalar('common', i)"
  },
  {
    "path": "examples/mobilenetv2.xml",
    "content": "<?xml version=\"1.0\" ?>\n<net batch=\"1\" name=\"mobilenetv2-int8-sparse-v1-tf-0001\" version=\"6\">\n\t<layers>\n\t\t<layer id=\"0\" name=\"net_input\" precision=\"FP32\" type=\"Input\">\n\t\t\t<output>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>3</dim>\n\t\t\t\t\t<dim>224</dim>\n\t\t\t\t\t<dim>224</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"1\" name=\"Mul_/Fused_Mul_/FusedScaleShift_\" precision=\"FP32\" type=\"ScaleShift\">\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>3</dim>\n\t\t\t\t\t<dim>224</dim>\n\t\t\t\t\t<dim>224</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>3</dim>\n\t\t\t\t\t<dim>224</dim>\n\t\t\t\t\t<dim>224</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"0\" size=\"12\"/>\n\t\t\t\t<biases offset=\"12\" size=\"12\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"2\" name=\"quant_model/MobilenetV2/Conv/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"3,3\" output=\"32\" pads_begin=\"0,0\" pads_end=\"1,1\" strides=\"2,2\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>3</dim>\n\t\t\t\t\t<dim>224</dim>\n\t\t\t\t\t<dim>224</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"24\" size=\"3456\"/>\n\t\t\t\t<biases offset=\"3480\" size=\"128\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"3\" name=\"quant_model/MobilenetV2/Conv/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"4\" name=\"quant_model/MobilenetV2/expanded_conv/depthwise/depthwise_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"32\" kernel=\"3,3\" output=\"32\" pads_begin=\"1,1\" pads_end=\"1,1\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"3608\" size=\"1152\"/>\n\t\t\t\t<biases offset=\"4760\" size=\"128\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"5\" name=\"quant_model/MobilenetV2/expanded_conv/depthwise/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"6\" name=\"quant_model/MobilenetV2/expanded_conv/project/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"16\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>16</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"4888\" size=\"2048\"/>\n\t\t\t\t<biases offset=\"6936\" size=\"64\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"7\" name=\"quant_model/MobilenetV2/expanded_conv_1/expand/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"96\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>16</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"7000\" size=\"6144\"/>\n\t\t\t\t<biases offset=\"13144\" size=\"384\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"8\" name=\"quant_model/MobilenetV2/expanded_conv_1/expand/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"9\" name=\"quant_model/MobilenetV2/expanded_conv_1/depthwise/depthwise_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"96\" kernel=\"3,3\" output=\"96\" pads_begin=\"0,0\" pads_end=\"1,1\" strides=\"2,2\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t\t<dim>112</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"13528\" size=\"3456\"/>\n\t\t\t\t<biases offset=\"16984\" size=\"384\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"10\" name=\"quant_model/MobilenetV2/expanded_conv_1/depthwise/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"11\" name=\"quant_model/MobilenetV2/expanded_conv_1/project/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"24\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>24</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"17368\" size=\"9216\"/>\n\t\t\t\t<biases offset=\"26584\" size=\"96\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"12\" name=\"quant_model/MobilenetV2/expanded_conv_2/expand/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"144\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>24</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>144</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"26680\" size=\"13824\"/>\n\t\t\t\t<biases offset=\"40504\" size=\"576\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"13\" name=\"quant_model/MobilenetV2/expanded_conv_2/expand/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>144</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>144</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"14\" name=\"quant_model/MobilenetV2/expanded_conv_2/depthwise/depthwise_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"144\" kernel=\"3,3\" output=\"144\" pads_begin=\"1,1\" pads_end=\"1,1\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>144</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>144</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"41080\" size=\"5184\"/>\n\t\t\t\t<biases offset=\"46264\" size=\"576\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"15\" name=\"quant_model/MobilenetV2/expanded_conv_2/depthwise/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>144</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>144</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"16\" name=\"quant_model/MobilenetV2/expanded_conv_2/project/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"24\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>144</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>24</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"46840\" size=\"13824\"/>\n\t\t\t\t<biases offset=\"60664\" size=\"96\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"17\" name=\"quant_model/MobilenetV2/expanded_conv_2/add\" precision=\"FP32\" type=\"Eltwise\">\n\t\t\t<data operation=\"sum\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>24</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>24</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"2\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>24</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"18\" name=\"quant_model/MobilenetV2/expanded_conv_3/expand/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"144\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>24</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>144</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"60760\" size=\"13824\"/>\n\t\t\t\t<biases offset=\"74584\" size=\"576\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"19\" name=\"quant_model/MobilenetV2/expanded_conv_3/expand/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>144</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>144</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"20\" name=\"quant_model/MobilenetV2/expanded_conv_3/depthwise/depthwise_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"144\" kernel=\"3,3\" output=\"144\" pads_begin=\"0,0\" pads_end=\"1,1\" strides=\"2,2\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>144</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t\t<dim>56</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>144</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"75160\" size=\"5184\"/>\n\t\t\t\t<biases offset=\"80344\" size=\"576\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"21\" name=\"quant_model/MobilenetV2/expanded_conv_3/depthwise/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>144</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>144</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"22\" name=\"quant_model/MobilenetV2/expanded_conv_3/project/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"32\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>144</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"80920\" size=\"18432\"/>\n\t\t\t\t<biases offset=\"99352\" size=\"128\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"23\" name=\"quant_model/MobilenetV2/expanded_conv_4/expand/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"192\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"99480\" size=\"24576\"/>\n\t\t\t\t<biases offset=\"124056\" size=\"768\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"24\" name=\"quant_model/MobilenetV2/expanded_conv_4/expand/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"25\" name=\"quant_model/MobilenetV2/expanded_conv_4/depthwise/depthwise_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"192\" kernel=\"3,3\" output=\"192\" pads_begin=\"1,1\" pads_end=\"1,1\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"124824\" size=\"6912\"/>\n\t\t\t\t<biases offset=\"131736\" size=\"768\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"26\" name=\"quant_model/MobilenetV2/expanded_conv_4/depthwise/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"27\" name=\"quant_model/MobilenetV2/expanded_conv_4/project/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"32\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"132504\" size=\"24576\"/>\n\t\t\t\t<biases offset=\"157080\" size=\"128\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"28\" name=\"quant_model/MobilenetV2/expanded_conv_4/add\" precision=\"FP32\" type=\"Eltwise\">\n\t\t\t<data operation=\"sum\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"2\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"29\" name=\"quant_model/MobilenetV2/expanded_conv_5/expand/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"192\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"157208\" size=\"24576\"/>\n\t\t\t\t<biases offset=\"181784\" size=\"768\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"30\" name=\"quant_model/MobilenetV2/expanded_conv_5/expand/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"31\" name=\"quant_model/MobilenetV2/expanded_conv_5/depthwise/depthwise_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"192\" kernel=\"3,3\" output=\"192\" pads_begin=\"1,1\" pads_end=\"1,1\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"182552\" size=\"6912\"/>\n\t\t\t\t<biases offset=\"189464\" size=\"768\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"32\" name=\"quant_model/MobilenetV2/expanded_conv_5/depthwise/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"33\" name=\"quant_model/MobilenetV2/expanded_conv_5/project/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"32\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"190232\" size=\"24576\"/>\n\t\t\t\t<biases offset=\"214808\" size=\"128\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"34\" name=\"quant_model/MobilenetV2/expanded_conv_5/add\" precision=\"FP32\" type=\"Eltwise\">\n\t\t\t<data operation=\"sum\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"2\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"35\" name=\"quant_model/MobilenetV2/expanded_conv_6/expand/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"192\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>32</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"214936\" size=\"24576\"/>\n\t\t\t\t<biases offset=\"239512\" size=\"768\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"36\" name=\"quant_model/MobilenetV2/expanded_conv_6/expand/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"37\" name=\"quant_model/MobilenetV2/expanded_conv_6/depthwise/depthwise_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"192\" kernel=\"3,3\" output=\"192\" pads_begin=\"0,0\" pads_end=\"1,1\" strides=\"2,2\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t\t<dim>28</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"240280\" size=\"6912\"/>\n\t\t\t\t<biases offset=\"247192\" size=\"768\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"38\" name=\"quant_model/MobilenetV2/expanded_conv_6/depthwise/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"39\" name=\"quant_model/MobilenetV2/expanded_conv_6/project/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"64\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>192</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>64</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"247960\" size=\"49152\"/>\n\t\t\t\t<biases offset=\"297112\" size=\"256\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"40\" name=\"quant_model/MobilenetV2/expanded_conv_7/expand/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"384\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>64</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"297368\" size=\"98304\"/>\n\t\t\t\t<biases offset=\"395672\" size=\"1536\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"41\" name=\"quant_model/MobilenetV2/expanded_conv_7/expand/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"42\" name=\"quant_model/MobilenetV2/expanded_conv_7/depthwise/depthwise_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"384\" kernel=\"3,3\" output=\"384\" pads_begin=\"1,1\" pads_end=\"1,1\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"397208\" size=\"13824\"/>\n\t\t\t\t<biases offset=\"411032\" size=\"1536\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"43\" name=\"quant_model/MobilenetV2/expanded_conv_7/depthwise/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"44\" name=\"quant_model/MobilenetV2/expanded_conv_7/project/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"64\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>64</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"412568\" size=\"98304\"/>\n\t\t\t\t<biases offset=\"510872\" size=\"256\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"45\" name=\"quant_model/MobilenetV2/expanded_conv_7/add\" precision=\"FP32\" type=\"Eltwise\">\n\t\t\t<data operation=\"sum\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>64</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>64</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"2\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>64</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"46\" name=\"quant_model/MobilenetV2/expanded_conv_8/expand/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"384\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>64</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"511128\" size=\"98304\"/>\n\t\t\t\t<biases offset=\"609432\" size=\"1536\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"47\" name=\"quant_model/MobilenetV2/expanded_conv_8/expand/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"48\" name=\"quant_model/MobilenetV2/expanded_conv_8/depthwise/depthwise_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"384\" kernel=\"3,3\" output=\"384\" pads_begin=\"1,1\" pads_end=\"1,1\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"610968\" size=\"13824\"/>\n\t\t\t\t<biases offset=\"624792\" size=\"1536\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"49\" name=\"quant_model/MobilenetV2/expanded_conv_8/depthwise/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"50\" name=\"quant_model/MobilenetV2/expanded_conv_8/project/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"64\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>64</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"626328\" size=\"98304\"/>\n\t\t\t\t<biases offset=\"724632\" size=\"256\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"51\" name=\"quant_model/MobilenetV2/expanded_conv_8/add\" precision=\"FP32\" type=\"Eltwise\">\n\t\t\t<data operation=\"sum\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>64</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>64</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"2\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>64</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"52\" name=\"quant_model/MobilenetV2/expanded_conv_9/expand/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"384\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>64</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"724888\" size=\"98304\"/>\n\t\t\t\t<biases offset=\"823192\" size=\"1536\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"53\" name=\"quant_model/MobilenetV2/expanded_conv_9/expand/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"54\" name=\"quant_model/MobilenetV2/expanded_conv_9/depthwise/depthwise_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"384\" kernel=\"3,3\" output=\"384\" pads_begin=\"1,1\" pads_end=\"1,1\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"824728\" size=\"13824\"/>\n\t\t\t\t<biases offset=\"838552\" size=\"1536\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"55\" name=\"quant_model/MobilenetV2/expanded_conv_9/depthwise/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"56\" name=\"quant_model/MobilenetV2/expanded_conv_9/project/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"64\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>64</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"840088\" size=\"98304\"/>\n\t\t\t\t<biases offset=\"938392\" size=\"256\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"57\" name=\"quant_model/MobilenetV2/expanded_conv_9/add\" precision=\"FP32\" type=\"Eltwise\">\n\t\t\t<data operation=\"sum\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>64</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>64</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"2\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>64</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"58\" name=\"quant_model/MobilenetV2/expanded_conv_10/expand/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"384\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>64</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"938648\" size=\"98304\"/>\n\t\t\t\t<biases offset=\"1036952\" size=\"1536\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"59\" name=\"quant_model/MobilenetV2/expanded_conv_10/expand/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"60\" name=\"quant_model/MobilenetV2/expanded_conv_10/depthwise/depthwise_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"384\" kernel=\"3,3\" output=\"384\" pads_begin=\"1,1\" pads_end=\"1,1\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"1038488\" size=\"13824\"/>\n\t\t\t\t<biases offset=\"1052312\" size=\"1536\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"61\" name=\"quant_model/MobilenetV2/expanded_conv_10/depthwise/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"62\" name=\"quant_model/MobilenetV2/expanded_conv_10/project/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"96\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>384</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"1053848\" size=\"147456\"/>\n\t\t\t\t<biases offset=\"1201304\" size=\"384\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"63\" name=\"quant_model/MobilenetV2/expanded_conv_11/expand/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"576\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"1201688\" size=\"221184\"/>\n\t\t\t\t<biases offset=\"1422872\" size=\"2304\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"64\" name=\"quant_model/MobilenetV2/expanded_conv_11/expand/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"65\" name=\"quant_model/MobilenetV2/expanded_conv_11/depthwise/depthwise_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"576\" kernel=\"3,3\" output=\"576\" pads_begin=\"1,1\" pads_end=\"1,1\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"1425176\" size=\"20736\"/>\n\t\t\t\t<biases offset=\"1445912\" size=\"2304\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"66\" name=\"quant_model/MobilenetV2/expanded_conv_11/depthwise/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"67\" name=\"quant_model/MobilenetV2/expanded_conv_11/project/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"96\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"1448216\" size=\"221184\"/>\n\t\t\t\t<biases offset=\"1669400\" size=\"384\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"68\" name=\"quant_model/MobilenetV2/expanded_conv_11/add\" precision=\"FP32\" type=\"Eltwise\">\n\t\t\t<data operation=\"sum\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"2\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"69\" name=\"quant_model/MobilenetV2/expanded_conv_12/expand/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"576\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"1669784\" size=\"221184\"/>\n\t\t\t\t<biases offset=\"1890968\" size=\"2304\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"70\" name=\"quant_model/MobilenetV2/expanded_conv_12/expand/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"71\" name=\"quant_model/MobilenetV2/expanded_conv_12/depthwise/depthwise_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"576\" kernel=\"3,3\" output=\"576\" pads_begin=\"1,1\" pads_end=\"1,1\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"1893272\" size=\"20736\"/>\n\t\t\t\t<biases offset=\"1914008\" size=\"2304\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"72\" name=\"quant_model/MobilenetV2/expanded_conv_12/depthwise/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"73\" name=\"quant_model/MobilenetV2/expanded_conv_12/project/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"96\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"1916312\" size=\"221184\"/>\n\t\t\t\t<biases offset=\"2137496\" size=\"384\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"74\" name=\"quant_model/MobilenetV2/expanded_conv_12/add\" precision=\"FP32\" type=\"Eltwise\">\n\t\t\t<data operation=\"sum\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"2\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"75\" name=\"quant_model/MobilenetV2/expanded_conv_13/expand/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"576\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>96</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"2137880\" size=\"221184\"/>\n\t\t\t\t<biases offset=\"2359064\" size=\"2304\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"76\" name=\"quant_model/MobilenetV2/expanded_conv_13/expand/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"77\" name=\"quant_model/MobilenetV2/expanded_conv_13/depthwise/depthwise_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"576\" kernel=\"3,3\" output=\"576\" pads_begin=\"0,0\" pads_end=\"1,1\" strides=\"2,2\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t\t<dim>14</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"2361368\" size=\"20736\"/>\n\t\t\t\t<biases offset=\"2382104\" size=\"2304\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"78\" name=\"quant_model/MobilenetV2/expanded_conv_13/depthwise/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"79\" name=\"quant_model/MobilenetV2/expanded_conv_13/project/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"160\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>576</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>160</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"2384408\" size=\"368640\"/>\n\t\t\t\t<biases offset=\"2753048\" size=\"640\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"80\" name=\"quant_model/MobilenetV2/expanded_conv_14/expand/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"960\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>160</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"2753688\" size=\"614400\"/>\n\t\t\t\t<biases offset=\"3368088\" size=\"3840\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"81\" name=\"quant_model/MobilenetV2/expanded_conv_14/expand/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"82\" name=\"quant_model/MobilenetV2/expanded_conv_14/depthwise/depthwise_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"960\" kernel=\"3,3\" output=\"960\" pads_begin=\"1,1\" pads_end=\"1,1\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"3371928\" size=\"34560\"/>\n\t\t\t\t<biases offset=\"3406488\" size=\"3840\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"83\" name=\"quant_model/MobilenetV2/expanded_conv_14/depthwise/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"84\" name=\"quant_model/MobilenetV2/expanded_conv_14/project/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"160\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>160</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"3410328\" size=\"614400\"/>\n\t\t\t\t<biases offset=\"4024728\" size=\"640\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"85\" name=\"quant_model/MobilenetV2/expanded_conv_14/add\" precision=\"FP32\" type=\"Eltwise\">\n\t\t\t<data operation=\"sum\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>160</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>160</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"2\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>160</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"86\" name=\"quant_model/MobilenetV2/expanded_conv_15/expand/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"960\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>160</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"4025368\" size=\"614400\"/>\n\t\t\t\t<biases offset=\"4639768\" size=\"3840\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"87\" name=\"quant_model/MobilenetV2/expanded_conv_15/expand/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"88\" name=\"quant_model/MobilenetV2/expanded_conv_15/depthwise/depthwise_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"960\" kernel=\"3,3\" output=\"960\" pads_begin=\"1,1\" pads_end=\"1,1\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"4643608\" size=\"34560\"/>\n\t\t\t\t<biases offset=\"4678168\" size=\"3840\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"89\" name=\"quant_model/MobilenetV2/expanded_conv_15/depthwise/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"90\" name=\"quant_model/MobilenetV2/expanded_conv_15/project/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"160\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>160</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"4682008\" size=\"614400\"/>\n\t\t\t\t<biases offset=\"5296408\" size=\"640\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"91\" name=\"quant_model/MobilenetV2/expanded_conv_15/add\" precision=\"FP32\" type=\"Eltwise\">\n\t\t\t<data operation=\"sum\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>160</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>160</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"2\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>160</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"92\" name=\"quant_model/MobilenetV2/expanded_conv_16/expand/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"960\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>160</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"5297048\" size=\"614400\"/>\n\t\t\t\t<biases offset=\"5911448\" size=\"3840\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"93\" name=\"quant_model/MobilenetV2/expanded_conv_16/expand/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"94\" name=\"quant_model/MobilenetV2/expanded_conv_16/depthwise/depthwise_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"960\" kernel=\"3,3\" output=\"960\" pads_begin=\"1,1\" pads_end=\"1,1\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"5915288\" size=\"34560\"/>\n\t\t\t\t<biases offset=\"5949848\" size=\"3840\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"95\" name=\"quant_model/MobilenetV2/expanded_conv_16/depthwise/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"96\" name=\"quant_model/MobilenetV2/expanded_conv_16/project/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"320\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>960</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>320</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"5953688\" size=\"1228800\"/>\n\t\t\t\t<biases offset=\"7182488\" size=\"1280\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"97\" name=\"quant_model/MobilenetV2/Conv_1/Conv2D_Fold\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"1280\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>320</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1280</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"7183768\" size=\"1638400\"/>\n\t\t\t\t<biases offset=\"8822168\" size=\"5120\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"98\" name=\"quant_model/MobilenetV2/Conv_1/Relu6\" precision=\"FP32\" type=\"Clamp\">\n\t\t\t<data max=\"6\" min=\"0\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1280</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1280</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"99\" name=\"quant_model/MobilenetV2/Logits/AvgPool\" precision=\"FP32\" type=\"Pooling\">\n\t\t\t<data auto_pad=\"valid\" exclude-pad=\"true\" kernel=\"7,7\" pads_begin=\"0,0\" pads_end=\"0,0\" pool-method=\"avg\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1280</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t\t<dim>7</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1280</dim>\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"100\" name=\"quant_model/MobilenetV2/Logits/Conv2d_1c_1x1/Conv2D\" precision=\"FP32\" type=\"Convolution\">\n\t\t\t<data auto_pad=\"same_upper\" dilations=\"1,1\" group=\"1\" kernel=\"1,1\" output=\"1001\" pads_begin=\"0,0\" pads_end=\"0,0\" strides=\"1,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1280</dim>\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"3\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1001</dim>\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<weights offset=\"8827288\" size=\"5125120\"/>\n\t\t\t\t<biases offset=\"13952408\" size=\"4004\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"101\" name=\"quant_model/MobilenetV2/Logits/Conv2d_1c_1x1/act_quant/FakeQuantWithMinMaxVars/Transpose\" precision=\"FP32\" type=\"Permute\">\n\t\t\t<data order=\"0,2,3,1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1001</dim>\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1001</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"102\" name=\"quant_model/MobilenetV2/Logits/Squeeze/Dims/Output_0/Data__const\" precision=\"I32\" type=\"Const\">\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>2</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t\t<blobs>\n\t\t\t\t<custom offset=\"13956412\" size=\"8\"/>\n\t\t\t</blobs>\n\t\t</layer>\n\t\t<layer id=\"103\" name=\"quant_model/MobilenetV2/Logits/Squeeze\" precision=\"FP32\" type=\"Squeeze\">\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1001</dim>\n\t\t\t\t</port>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>2</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"2\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1001</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t\t<layer id=\"104\" name=\"net_output\" precision=\"FP32\" type=\"SoftMax\">\n\t\t\t<data axis=\"1\"/>\n\t\t\t<input>\n\t\t\t\t<port id=\"0\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1001</dim>\n\t\t\t\t</port>\n\t\t\t</input>\n\t\t\t<output>\n\t\t\t\t<port id=\"1\">\n\t\t\t\t\t<dim>1</dim>\n\t\t\t\t\t<dim>1001</dim>\n\t\t\t\t</port>\n\t\t\t</output>\n\t\t</layer>\n\t</layers>\n\t<edges>\n\t\t<edge from-layer=\"0\" from-port=\"0\" to-layer=\"1\" to-port=\"0\"/>\n\t\t<edge from-layer=\"1\" from-port=\"3\" to-layer=\"2\" to-port=\"0\"/>\n\t\t<edge from-layer=\"2\" from-port=\"3\" to-layer=\"3\" to-port=\"0\"/>\n\t\t<edge from-layer=\"3\" from-port=\"1\" to-layer=\"4\" to-port=\"0\"/>\n\t\t<edge from-layer=\"4\" from-port=\"3\" to-layer=\"5\" to-port=\"0\"/>\n\t\t<edge from-layer=\"5\" from-port=\"1\" to-layer=\"6\" to-port=\"0\"/>\n\t\t<edge from-layer=\"6\" from-port=\"3\" to-layer=\"7\" to-port=\"0\"/>\n\t\t<edge from-layer=\"7\" from-port=\"3\" to-layer=\"8\" to-port=\"0\"/>\n\t\t<edge from-layer=\"8\" from-port=\"1\" to-layer=\"9\" to-port=\"0\"/>\n\t\t<edge from-layer=\"9\" from-port=\"3\" to-layer=\"10\" to-port=\"0\"/>\n\t\t<edge from-layer=\"10\" from-port=\"1\" to-layer=\"11\" to-port=\"0\"/>\n\t\t<edge from-layer=\"11\" from-port=\"3\" to-layer=\"12\" to-port=\"0\"/>\n\t\t<edge from-layer=\"12\" from-port=\"3\" to-layer=\"13\" to-port=\"0\"/>\n\t\t<edge from-layer=\"13\" from-port=\"1\" to-layer=\"14\" to-port=\"0\"/>\n\t\t<edge from-layer=\"14\" from-port=\"3\" to-layer=\"15\" to-port=\"0\"/>\n\t\t<edge from-layer=\"15\" from-port=\"1\" to-layer=\"16\" to-port=\"0\"/>\n\t\t<edge from-layer=\"16\" from-port=\"3\" to-layer=\"17\" to-port=\"0\"/>\n\t\t<edge from-layer=\"11\" from-port=\"3\" to-layer=\"17\" to-port=\"1\"/>\n\t\t<edge from-layer=\"17\" from-port=\"2\" to-layer=\"18\" to-port=\"0\"/>\n\t\t<edge from-layer=\"18\" from-port=\"3\" to-layer=\"19\" to-port=\"0\"/>\n\t\t<edge from-layer=\"19\" from-port=\"1\" to-layer=\"20\" to-port=\"0\"/>\n\t\t<edge from-layer=\"20\" from-port=\"3\" to-layer=\"21\" to-port=\"0\"/>\n\t\t<edge from-layer=\"21\" from-port=\"1\" to-layer=\"22\" to-port=\"0\"/>\n\t\t<edge from-layer=\"22\" from-port=\"3\" to-layer=\"23\" to-port=\"0\"/>\n\t\t<edge from-layer=\"23\" from-port=\"3\" to-layer=\"24\" to-port=\"0\"/>\n\t\t<edge from-layer=\"24\" from-port=\"1\" to-layer=\"25\" to-port=\"0\"/>\n\t\t<edge from-layer=\"25\" from-port=\"3\" to-layer=\"26\" to-port=\"0\"/>\n\t\t<edge from-layer=\"26\" from-port=\"1\" to-layer=\"27\" to-port=\"0\"/>\n\t\t<edge from-layer=\"27\" from-port=\"3\" to-layer=\"28\" to-port=\"0\"/>\n\t\t<edge from-layer=\"22\" from-port=\"3\" to-layer=\"28\" to-port=\"1\"/>\n\t\t<edge from-layer=\"28\" from-port=\"2\" to-layer=\"29\" to-port=\"0\"/>\n\t\t<edge from-layer=\"29\" from-port=\"3\" to-layer=\"30\" to-port=\"0\"/>\n\t\t<edge from-layer=\"30\" from-port=\"1\" to-layer=\"31\" to-port=\"0\"/>\n\t\t<edge from-layer=\"31\" from-port=\"3\" to-layer=\"32\" to-port=\"0\"/>\n\t\t<edge from-layer=\"32\" from-port=\"1\" to-layer=\"33\" to-port=\"0\"/>\n\t\t<edge from-layer=\"33\" from-port=\"3\" to-layer=\"34\" to-port=\"0\"/>\n\t\t<edge from-layer=\"28\" from-port=\"2\" to-layer=\"34\" to-port=\"1\"/>\n\t\t<edge from-layer=\"34\" from-port=\"2\" to-layer=\"35\" to-port=\"0\"/>\n\t\t<edge from-layer=\"35\" from-port=\"3\" to-layer=\"36\" to-port=\"0\"/>\n\t\t<edge from-layer=\"36\" from-port=\"1\" to-layer=\"37\" to-port=\"0\"/>\n\t\t<edge from-layer=\"37\" from-port=\"3\" to-layer=\"38\" to-port=\"0\"/>\n\t\t<edge from-layer=\"38\" from-port=\"1\" to-layer=\"39\" to-port=\"0\"/>\n\t\t<edge from-layer=\"39\" from-port=\"3\" to-layer=\"40\" to-port=\"0\"/>\n\t\t<edge from-layer=\"40\" from-port=\"3\" to-layer=\"41\" to-port=\"0\"/>\n\t\t<edge from-layer=\"41\" from-port=\"1\" to-layer=\"42\" to-port=\"0\"/>\n\t\t<edge from-layer=\"42\" from-port=\"3\" to-layer=\"43\" to-port=\"0\"/>\n\t\t<edge from-layer=\"43\" from-port=\"1\" to-layer=\"44\" to-port=\"0\"/>\n\t\t<edge from-layer=\"44\" from-port=\"3\" to-layer=\"45\" to-port=\"0\"/>\n\t\t<edge from-layer=\"39\" from-port=\"3\" to-layer=\"45\" to-port=\"1\"/>\n\t\t<edge from-layer=\"45\" from-port=\"2\" to-layer=\"46\" to-port=\"0\"/>\n\t\t<edge from-layer=\"46\" from-port=\"3\" to-layer=\"47\" to-port=\"0\"/>\n\t\t<edge from-layer=\"47\" from-port=\"1\" to-layer=\"48\" to-port=\"0\"/>\n\t\t<edge from-layer=\"48\" from-port=\"3\" to-layer=\"49\" to-port=\"0\"/>\n\t\t<edge from-layer=\"49\" from-port=\"1\" to-layer=\"50\" to-port=\"0\"/>\n\t\t<edge from-layer=\"50\" from-port=\"3\" to-layer=\"51\" to-port=\"0\"/>\n\t\t<edge from-layer=\"45\" from-port=\"2\" to-layer=\"51\" to-port=\"1\"/>\n\t\t<edge from-layer=\"51\" from-port=\"2\" to-layer=\"52\" to-port=\"0\"/>\n\t\t<edge from-layer=\"52\" from-port=\"3\" to-layer=\"53\" to-port=\"0\"/>\n\t\t<edge from-layer=\"53\" from-port=\"1\" to-layer=\"54\" to-port=\"0\"/>\n\t\t<edge from-layer=\"54\" from-port=\"3\" to-layer=\"55\" to-port=\"0\"/>\n\t\t<edge from-layer=\"55\" from-port=\"1\" to-layer=\"56\" to-port=\"0\"/>\n\t\t<edge from-layer=\"56\" from-port=\"3\" to-layer=\"57\" to-port=\"0\"/>\n\t\t<edge from-layer=\"51\" from-port=\"2\" to-layer=\"57\" to-port=\"1\"/>\n\t\t<edge from-layer=\"57\" from-port=\"2\" to-layer=\"58\" to-port=\"0\"/>\n\t\t<edge from-layer=\"58\" from-port=\"3\" to-layer=\"59\" to-port=\"0\"/>\n\t\t<edge from-layer=\"59\" from-port=\"1\" to-layer=\"60\" to-port=\"0\"/>\n\t\t<edge from-layer=\"60\" from-port=\"3\" to-layer=\"61\" to-port=\"0\"/>\n\t\t<edge from-layer=\"61\" from-port=\"1\" to-layer=\"62\" to-port=\"0\"/>\n\t\t<edge from-layer=\"62\" from-port=\"3\" to-layer=\"63\" to-port=\"0\"/>\n\t\t<edge from-layer=\"63\" from-port=\"3\" to-layer=\"64\" to-port=\"0\"/>\n\t\t<edge from-layer=\"64\" from-port=\"1\" to-layer=\"65\" to-port=\"0\"/>\n\t\t<edge from-layer=\"65\" from-port=\"3\" to-layer=\"66\" to-port=\"0\"/>\n\t\t<edge from-layer=\"66\" from-port=\"1\" to-layer=\"67\" to-port=\"0\"/>\n\t\t<edge from-layer=\"67\" from-port=\"3\" to-layer=\"68\" to-port=\"0\"/>\n\t\t<edge from-layer=\"62\" from-port=\"3\" to-layer=\"68\" to-port=\"1\"/>\n\t\t<edge from-layer=\"68\" from-port=\"2\" to-layer=\"69\" to-port=\"0\"/>\n\t\t<edge from-layer=\"69\" from-port=\"3\" to-layer=\"70\" to-port=\"0\"/>\n\t\t<edge from-layer=\"70\" from-port=\"1\" to-layer=\"71\" to-port=\"0\"/>\n\t\t<edge from-layer=\"71\" from-port=\"3\" to-layer=\"72\" to-port=\"0\"/>\n\t\t<edge from-layer=\"72\" from-port=\"1\" to-layer=\"73\" to-port=\"0\"/>\n\t\t<edge from-layer=\"73\" from-port=\"3\" to-layer=\"74\" to-port=\"0\"/>\n\t\t<edge from-layer=\"68\" from-port=\"2\" to-layer=\"74\" to-port=\"1\"/>\n\t\t<edge from-layer=\"74\" from-port=\"2\" to-layer=\"75\" to-port=\"0\"/>\n\t\t<edge from-layer=\"75\" from-port=\"3\" to-layer=\"76\" to-port=\"0\"/>\n\t\t<edge from-layer=\"76\" from-port=\"1\" to-layer=\"77\" to-port=\"0\"/>\n\t\t<edge from-layer=\"77\" from-port=\"3\" to-layer=\"78\" to-port=\"0\"/>\n\t\t<edge from-layer=\"78\" from-port=\"1\" to-layer=\"79\" to-port=\"0\"/>\n\t\t<edge from-layer=\"79\" from-port=\"3\" to-layer=\"80\" to-port=\"0\"/>\n\t\t<edge from-layer=\"80\" from-port=\"3\" to-layer=\"81\" to-port=\"0\"/>\n\t\t<edge from-layer=\"81\" from-port=\"1\" to-layer=\"82\" to-port=\"0\"/>\n\t\t<edge from-layer=\"82\" from-port=\"3\" to-layer=\"83\" to-port=\"0\"/>\n\t\t<edge from-layer=\"83\" from-port=\"1\" to-layer=\"84\" to-port=\"0\"/>\n\t\t<edge from-layer=\"84\" from-port=\"3\" to-layer=\"85\" to-port=\"0\"/>\n\t\t<edge from-layer=\"79\" from-port=\"3\" to-layer=\"85\" to-port=\"1\"/>\n\t\t<edge from-layer=\"85\" from-port=\"2\" to-layer=\"86\" to-port=\"0\"/>\n\t\t<edge from-layer=\"86\" from-port=\"3\" to-layer=\"87\" to-port=\"0\"/>\n\t\t<edge from-layer=\"87\" from-port=\"1\" to-layer=\"88\" to-port=\"0\"/>\n\t\t<edge from-layer=\"88\" from-port=\"3\" to-layer=\"89\" to-port=\"0\"/>\n\t\t<edge from-layer=\"89\" from-port=\"1\" to-layer=\"90\" to-port=\"0\"/>\n\t\t<edge from-layer=\"90\" from-port=\"3\" to-layer=\"91\" to-port=\"0\"/>\n\t\t<edge from-layer=\"85\" from-port=\"2\" to-layer=\"91\" to-port=\"1\"/>\n\t\t<edge from-layer=\"91\" from-port=\"2\" to-layer=\"92\" to-port=\"0\"/>\n\t\t<edge from-layer=\"92\" from-port=\"3\" to-layer=\"93\" to-port=\"0\"/>\n\t\t<edge from-layer=\"93\" from-port=\"1\" to-layer=\"94\" to-port=\"0\"/>\n\t\t<edge from-layer=\"94\" from-port=\"3\" to-layer=\"95\" to-port=\"0\"/>\n\t\t<edge from-layer=\"95\" from-port=\"1\" to-layer=\"96\" to-port=\"0\"/>\n\t\t<edge from-layer=\"96\" from-port=\"3\" to-layer=\"97\" to-port=\"0\"/>\n\t\t<edge from-layer=\"97\" from-port=\"3\" to-layer=\"98\" to-port=\"0\"/>\n\t\t<edge from-layer=\"98\" from-port=\"1\" to-layer=\"99\" to-port=\"0\"/>\n\t\t<edge from-layer=\"99\" from-port=\"1\" to-layer=\"100\" to-port=\"0\"/>\n\t\t<edge from-layer=\"100\" from-port=\"3\" to-layer=\"101\" to-port=\"0\"/>\n\t\t<edge from-layer=\"101\" from-port=\"1\" to-layer=\"103\" to-port=\"0\"/>\n\t\t<edge from-layer=\"102\" from-port=\"1\" to-layer=\"103\" to-port=\"1\"/>\n\t\t<edge from-layer=\"103\" from-port=\"2\" to-layer=\"104\" to-port=\"0\"/>\n\t</edges>\n\t<statistics>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_12/add</name>\n\t\t\t<min>-32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991, -32.70615348509991</min>\n\t\t\t<max>30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419, 30.95849642864419</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_10/project/Conv2D_Fold</name>\n\t\t\t<min>-21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966, -21.67422158010966</min>\n\t\t\t<max>21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944, 21.170169915455944</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_13/depthwise/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_14/depthwise/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_8/expand/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_15/project/Conv2D_Fold</name>\n\t\t\t<min>-32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569, -32.22726366233569</min>\n\t\t\t<max>27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417, 27.32311484415417</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_6/depthwise/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_15/add</name>\n\t\t\t<min>-38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839, -38.97021493438839</min>\n\t\t\t<max>36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099, 36.88783703713099</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_8/add</name>\n\t\t\t<min>-24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355, -24.244115655083355</min>\n\t\t\t<max>26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383, 26.848855353563383</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_6/expand/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_13/expand/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_14/expand/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_14/project/Conv2D_Fold</name>\n\t\t\t<min>-12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376, -12.998717220338376</min>\n\t\t\t<max>12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686, 12.30412927726686</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_16/depthwise/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_2/expand/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_1/depthwise/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_15/expand/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_3/project/Conv2D_Fold</name>\n\t\t\t<min>-27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515, -27.432308248582515</min>\n\t\t\t<max>26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088, 26.37721946979088</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_9/expand/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_2/project/Conv2D_Fold</name>\n\t\t\t<min>-50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265, -50.80048966990265</min>\n\t\t\t<max>46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965, 46.59894541148965</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_11/add</name>\n\t\t\t<min>-21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464, -21.870184721976464</min>\n\t\t\t<max>22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047, 22.390903405833047</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_4/project/Conv2D_Fold</name>\n\t\t\t<min>-25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004, -25.735400513868004</min>\n\t\t\t<max>29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435, 29.411886301563435</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_11/project/Conv2D_Fold</name>\n\t\t\t<min>-15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358, -15.42047856590358</min>\n\t\t\t<max>15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458, 15.300006077107458</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_3/depthwise/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_1/expand/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_1/project/Conv2D_Fold</name>\n\t\t\t<min>-31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687, -31.378136818762687</min>\n\t\t\t<max>36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092, 36.43054867941092</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_4/depthwise/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_7/add</name>\n\t\t\t<min>-22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005, -22.817945146822005</min>\n\t\t\t<max>25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757, 25.670188290174757</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_2/depthwise/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_4/add</name>\n\t\t\t<min>-33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929, -33.28752614329929</min>\n\t\t\t<max>31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296, 31.508803372283296</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_10/depthwise/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/Conv_1/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_8/depthwise/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_3/expand/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv/depthwise/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/Conv/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_11/depthwise/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/Logits/Conv2d_1c_1x1/Conv2D</name>\n\t\t\t<min>-6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792, -6.073399831878792</min>\n\t\t\t<max>20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693, 20.62861667034693</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_13/project/Conv2D_Fold</name>\n\t\t\t<min>-17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134, -17.131834168174134</min>\n\t\t\t<max>15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624, 15.963754565798624</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv/project/Conv2D_Fold</name>\n\t\t\t<min>-45.06852683522858, -45.06852683522858, -45.06852683522858, -45.06852683522858, -45.06852683522858, -45.06852683522858, -45.06852683522858, -45.06852683522858, -45.06852683522858, -45.06852683522858, -45.06852683522858, -45.06852683522858, -45.06852683522858, -45.06852683522858, -45.06852683522858, -45.06852683522858</min>\n\t\t\t<max>41.341054690961556, 41.341054690961556, 41.341054690961556, 41.341054690961556, 41.341054690961556, 41.341054690961556, 41.341054690961556, 41.341054690961556, 41.341054690961556, 41.341054690961556, 41.341054690961556, 41.341054690961556, 41.341054690961556, 41.341054690961556, 41.341054690961556, 41.341054690961556</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_16/project/Conv2D_Fold</name>\n\t\t\t<min>-11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782, -11.87239604926782</min>\n\t\t\t<max>12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532, 12.347291891238532</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_6/project/Conv2D_Fold</name>\n\t\t\t<min>-23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135, -23.352754021726135</min>\n\t\t\t<max>23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114, 23.536633974653114</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_10/expand/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_14/add</name>\n\t\t\t<min>-20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782, -20.416724840236782</min>\n\t\t\t<max>17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184, 17.864634235207184</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_12/depthwise/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_5/add</name>\n\t\t\t<min>-39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534, -39.65088226841534</min>\n\t\t\t<max>45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461, 45.3152940210461</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_12/project/Conv2D_Fold</name>\n\t\t\t<min>-24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944, -24.681669034362944</min>\n\t\t\t<max>24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822, 24.10767673123822</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_7/project/Conv2D_Fold</name>\n\t\t\t<min>-17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708, -17.595701831894708</min>\n\t\t\t<max>25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586, 25.547605544385586</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_7/depthwise/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_11/expand/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_5/expand/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_7/expand/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_2/add</name>\n\t\t\t<min>-53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962, -53.54242551715962</min>\n\t\t\t<max>52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044, 52.297252830714044</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_9/depthwise/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_15/depthwise/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_8/project/Conv2D_Fold</name>\n\t\t\t<min>-17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463, -17.5622108523463</min>\n\t\t\t<max>19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516, 19.44905995218516</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_9/project/Conv2D_Fold</name>\n\t\t\t<min>-22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392, -22.317128771989392</min>\n\t\t\t<max>22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284, 22.848488980846284</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_9/add</name>\n\t\t\t<min>-27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049, -27.97352140219049</min>\n\t\t\t<max>30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318, 30.495724151568318</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_5/depthwise/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_12/expand/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_5/project/Conv2D_Fold</name>\n\t\t\t<min>-31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403, -31.450538909489403</min>\n\t\t\t<max>34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419, 34.28624323739419</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_16/expand/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t\t<layer>\n\t\t\t<name>quant_model/MobilenetV2/expanded_conv_4/expand/Relu6</name>\n\t\t\t<min>0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0</min>\n\t\t\t<max>5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995, 5.9997619362406995</max>\n\t\t</layer>\n\t</statistics>\n\t<meta_data>\n\t\t<MO_version value=\"2019.3.0-227-g3a4f9de20\"/>\n\t\t<cli_parameters>\n\t\t\t<blobs_as_inputs value=\"False\"/>\n\t\t\t<caffe_parser_path value=\"DIR\"/>\n\t\t\t<data_type value=\"FP32\"/>\n\t\t\t<disable_nhwc_to_nchw value=\"False\"/>\n\t\t\t<disable_omitting_optional value=\"False\"/>\n\t\t\t<disable_resnet_optimization value=\"False\"/>\n\t\t\t<enable_concat_optimization value=\"False\"/>\n\t\t\t<enable_flattening_nested_params value=\"False\"/>\n\t\t\t<enable_ssd_gluoncv value=\"False\"/>\n\t\t\t<extensions value=\"DIR\"/>\n\t\t\t<framework value=\"tf\"/>\n\t\t\t<freeze_placeholder_with_value value=\"{}\"/>\n\t\t\t<generate_experimental_IR_V10 value=\"False\"/>\n\t\t\t<input value=\"net_input\"/>\n\t\t\t<input_model value=\"DIR/mobilenetv2-int8-sparse-v1-tf-0001.pb\"/>\n\t\t\t<input_model_is_text value=\"False\"/>\n\t\t\t<input_shape value=\"[1,224,224,3]\"/>\n\t\t\t<k value=\"DIR/CustomLayersMapping.xml\"/>\n\t\t\t<keep_quantize_ops_in_IR value=\"False\"/>\n\t\t\t<keep_shape_ops value=\"False\"/>\n\t\t\t<legacy_mxnet_model value=\"False\"/>\n\t\t\t<log_level value=\"ERROR\"/>\n\t\t\t<mean_scale_values value=\"{'net_input': {'scale': array([127.50000414]), 'mean': array([127.5, 127.5, 127.5])}}\"/>\n\t\t\t<mean_values value=\"net_input[127.5,127.5,127.5]\"/>\n\t\t\t<model_name value=\"mobilenetv2-int8-sparse-v1-tf-0001\"/>\n\t\t\t<move_to_preprocess value=\"False\"/>\n\t\t\t<output value=\"['net_output']\"/>\n\t\t\t<output_dir value=\"DIR\"/>\n\t\t\t<placeholder_shapes value=\"{'net_input': array([  1, 224, 224,   3])}\"/>\n\t\t\t<remove_memory value=\"False\"/>\n\t\t\t<remove_output_softmax value=\"False\"/>\n\t\t\t<reverse_input_channels value=\"True\"/>\n\t\t\t<save_params_from_nd value=\"False\"/>\n\t\t\t<scale_values value=\"net_input[127.50000414375013]\"/>\n\t\t\t<silent value=\"False\"/>\n\t\t\t<steps value=\"False\"/>\n\t\t\t<version value=\"False\"/>\n\t\t\t<unset unset_cli_parameters=\"batch, counts, disable_fusing, disable_gfusing, finegrain_fusing, generate_deprecated_IR_V2, input_checkpoint, input_meta_graph, input_proto, input_symbol, mean_file, mean_file_offsets, nd_prefix_name, pretrained_model_name, saved_model_dir, saved_model_tags, scale, tensorboard_logdir, tensorflow_custom_layer_libraries, tensorflow_custom_operations_config_update, tensorflow_object_detection_api_pipeline_config, tensorflow_operation_patterns, tensorflow_subgraph_patterns, tensorflow_use_custom_operations_config\"/>\n\t\t</cli_parameters>\n\t</meta_data>\n</net>\n"
  },
  {
    "path": "examples/processed.cleveland.data",
    "content": "63.0,1.0,1.0,145.0,233.0,1.0,2.0,150.0,0.0,2.3,3.0,0.0,6.0,0\n67.0,1.0,4.0,160.0,286.0,0.0,2.0,108.0,1.0,1.5,2.0,3.0,3.0,2\n67.0,1.0,4.0,120.0,229.0,0.0,2.0,129.0,1.0,2.6,2.0,2.0,7.0,1\n37.0,1.0,3.0,130.0,250.0,0.0,0.0,187.0,0.0,3.5,3.0,0.0,3.0,0\n41.0,0.0,2.0,130.0,204.0,0.0,2.0,172.0,0.0,1.4,1.0,0.0,3.0,0\n56.0,1.0,2.0,120.0,236.0,0.0,0.0,178.0,0.0,0.8,1.0,0.0,3.0,0\n62.0,0.0,4.0,140.0,268.0,0.0,2.0,160.0,0.0,3.6,3.0,2.0,3.0,3\n57.0,0.0,4.0,120.0,354.0,0.0,0.0,163.0,1.0,0.6,1.0,0.0,3.0,0\n63.0,1.0,4.0,130.0,254.0,0.0,2.0,147.0,0.0,1.4,2.0,1.0,7.0,2\n53.0,1.0,4.0,140.0,203.0,1.0,2.0,155.0,1.0,3.1,3.0,0.0,7.0,1\n57.0,1.0,4.0,140.0,192.0,0.0,0.0,148.0,0.0,0.4,2.0,0.0,6.0,0\n56.0,0.0,2.0,140.0,294.0,0.0,2.0,153.0,0.0,1.3,2.0,0.0,3.0,0\n56.0,1.0,3.0,130.0,256.0,1.0,2.0,142.0,1.0,0.6,2.0,1.0,6.0,2\n44.0,1.0,2.0,120.0,263.0,0.0,0.0,173.0,0.0,0.0,1.0,0.0,7.0,0\n52.0,1.0,3.0,172.0,199.0,1.0,0.0,162.0,0.0,0.5,1.0,0.0,7.0,0\n57.0,1.0,3.0,150.0,168.0,0.0,0.0,174.0,0.0,1.6,1.0,0.0,3.0,0\n48.0,1.0,2.0,110.0,229.0,0.0,0.0,168.0,0.0,1.0,3.0,0.0,7.0,1\n54.0,1.0,4.0,140.0,239.0,0.0,0.0,160.0,0.0,1.2,1.0,0.0,3.0,0\n48.0,0.0,3.0,130.0,275.0,0.0,0.0,139.0,0.0,0.2,1.0,0.0,3.0,0\n49.0,1.0,2.0,130.0,266.0,0.0,0.0,171.0,0.0,0.6,1.0,0.0,3.0,0\n64.0,1.0,1.0,110.0,211.0,0.0,2.0,144.0,1.0,1.8,2.0,0.0,3.0,0\n58.0,0.0,1.0,150.0,283.0,1.0,2.0,162.0,0.0,1.0,1.0,0.0,3.0,0\n58.0,1.0,2.0,120.0,284.0,0.0,2.0,160.0,0.0,1.8,2.0,0.0,3.0,1\n58.0,1.0,3.0,132.0,224.0,0.0,2.0,173.0,0.0,3.2,1.0,2.0,7.0,3\n60.0,1.0,4.0,130.0,206.0,0.0,2.0,132.0,1.0,2.4,2.0,2.0,7.0,4\n50.0,0.0,3.0,120.0,219.0,0.0,0.0,158.0,0.0,1.6,2.0,0.0,3.0,0\n58.0,0.0,3.0,120.0,340.0,0.0,0.0,172.0,0.0,0.0,1.0,0.0,3.0,0\n66.0,0.0,1.0,150.0,226.0,0.0,0.0,114.0,0.0,2.6,3.0,0.0,3.0,0\n43.0,1.0,4.0,150.0,247.0,0.0,0.0,171.0,0.0,1.5,1.0,0.0,3.0,0\n40.0,1.0,4.0,110.0,167.0,0.0,2.0,114.0,1.0,2.0,2.0,0.0,7.0,3\n69.0,0.0,1.0,140.0,239.0,0.0,0.0,151.0,0.0,1.8,1.0,2.0,3.0,0\n60.0,1.0,4.0,117.0,230.0,1.0,0.0,160.0,1.0,1.4,1.0,2.0,7.0,2\n64.0,1.0,3.0,140.0,335.0,0.0,0.0,158.0,0.0,0.0,1.0,0.0,3.0,1\n59.0,1.0,4.0,135.0,234.0,0.0,0.0,161.0,0.0,0.5,2.0,0.0,7.0,0\n44.0,1.0,3.0,130.0,233.0,0.0,0.0,179.0,1.0,0.4,1.0,0.0,3.0,0\n42.0,1.0,4.0,140.0,226.0,0.0,0.0,178.0,0.0,0.0,1.0,0.0,3.0,0\n43.0,1.0,4.0,120.0,177.0,0.0,2.0,120.0,1.0,2.5,2.0,0.0,7.0,3\n57.0,1.0,4.0,150.0,276.0,0.0,2.0,112.0,1.0,0.6,2.0,1.0,6.0,1\n55.0,1.0,4.0,132.0,353.0,0.0,0.0,132.0,1.0,1.2,2.0,1.0,7.0,3\n61.0,1.0,3.0,150.0,243.0,1.0,0.0,137.0,1.0,1.0,2.0,0.0,3.0,0\n65.0,0.0,4.0,150.0,225.0,0.0,2.0,114.0,0.0,1.0,2.0,3.0,7.0,4\n40.0,1.0,1.0,140.0,199.0,0.0,0.0,178.0,1.0,1.4,1.0,0.0,7.0,0\n71.0,0.0,2.0,160.0,302.0,0.0,0.0,162.0,0.0,0.4,1.0,2.0,3.0,0\n59.0,1.0,3.0,150.0,212.0,1.0,0.0,157.0,0.0,1.6,1.0,0.0,3.0,0\n61.0,0.0,4.0,130.0,330.0,0.0,2.0,169.0,0.0,0.0,1.0,0.0,3.0,1\n58.0,1.0,3.0,112.0,230.0,0.0,2.0,165.0,0.0,2.5,2.0,1.0,7.0,4\n51.0,1.0,3.0,110.0,175.0,0.0,0.0,123.0,0.0,0.6,1.0,0.0,3.0,0\n50.0,1.0,4.0,150.0,243.0,0.0,2.0,128.0,0.0,2.6,2.0,0.0,7.0,4\n65.0,0.0,3.0,140.0,417.0,1.0,2.0,157.0,0.0,0.8,1.0,1.0,3.0,0\n53.0,1.0,3.0,130.0,197.0,1.0,2.0,152.0,0.0,1.2,3.0,0.0,3.0,0\n41.0,0.0,2.0,105.0,198.0,0.0,0.0,168.0,0.0,0.0,1.0,1.0,3.0,0\n65.0,1.0,4.0,120.0,177.0,0.0,0.0,140.0,0.0,0.4,1.0,0.0,7.0,0\n44.0,1.0,4.0,112.0,290.0,0.0,2.0,153.0,0.0,0.0,1.0,1.0,3.0,2\n44.0,1.0,2.0,130.0,219.0,0.0,2.0,188.0,0.0,0.0,1.0,0.0,3.0,0\n60.0,1.0,4.0,130.0,253.0,0.0,0.0,144.0,1.0,1.4,1.0,1.0,7.0,1\n54.0,1.0,4.0,124.0,266.0,0.0,2.0,109.0,1.0,2.2,2.0,1.0,7.0,1\n50.0,1.0,3.0,140.0,233.0,0.0,0.0,163.0,0.0,0.6,2.0,1.0,7.0,1\n41.0,1.0,4.0,110.0,172.0,0.0,2.0,158.0,0.0,0.0,1.0,0.0,7.0,1\n54.0,1.0,3.0,125.0,273.0,0.0,2.0,152.0,0.0,0.5,3.0,1.0,3.0,0\n51.0,1.0,1.0,125.0,213.0,0.0,2.0,125.0,1.0,1.4,1.0,1.0,3.0,0\n51.0,0.0,4.0,130.0,305.0,0.0,0.0,142.0,1.0,1.2,2.0,0.0,7.0,2\n46.0,0.0,3.0,142.0,177.0,0.0,2.0,160.0,1.0,1.4,3.0,0.0,3.0,0\n58.0,1.0,4.0,128.0,216.0,0.0,2.0,131.0,1.0,2.2,2.0,3.0,7.0,1\n54.0,0.0,3.0,135.0,304.0,1.0,0.0,170.0,0.0,0.0,1.0,0.0,3.0,0\n54.0,1.0,4.0,120.0,188.0,0.0,0.0,113.0,0.0,1.4,2.0,1.0,7.0,2\n60.0,1.0,4.0,145.0,282.0,0.0,2.0,142.0,1.0,2.8,2.0,2.0,7.0,2\n60.0,1.0,3.0,140.0,185.0,0.0,2.0,155.0,0.0,3.0,2.0,0.0,3.0,1\n54.0,1.0,3.0,150.0,232.0,0.0,2.0,165.0,0.0,1.6,1.0,0.0,7.0,0\n59.0,1.0,4.0,170.0,326.0,0.0,2.0,140.0,1.0,3.4,3.0,0.0,7.0,2\n46.0,1.0,3.0,150.0,231.0,0.0,0.0,147.0,0.0,3.6,2.0,0.0,3.0,1\n65.0,0.0,3.0,155.0,269.0,0.0,0.0,148.0,0.0,0.8,1.0,0.0,3.0,0\n67.0,1.0,4.0,125.0,254.0,1.0,0.0,163.0,0.0,0.2,2.0,2.0,7.0,3\n62.0,1.0,4.0,120.0,267.0,0.0,0.0,99.0,1.0,1.8,2.0,2.0,7.0,1\n65.0,1.0,4.0,110.0,248.0,0.0,2.0,158.0,0.0,0.6,1.0,2.0,6.0,1\n44.0,1.0,4.0,110.0,197.0,0.0,2.0,177.0,0.0,0.0,1.0,1.0,3.0,1\n65.0,0.0,3.0,160.0,360.0,0.0,2.0,151.0,0.0,0.8,1.0,0.0,3.0,0\n60.0,1.0,4.0,125.0,258.0,0.0,2.0,141.0,1.0,2.8,2.0,1.0,7.0,1\n51.0,0.0,3.0,140.0,308.0,0.0,2.0,142.0,0.0,1.5,1.0,1.0,3.0,0\n48.0,1.0,2.0,130.0,245.0,0.0,2.0,180.0,0.0,0.2,2.0,0.0,3.0,0\n58.0,1.0,4.0,150.0,270.0,0.0,2.0,111.0,1.0,0.8,1.0,0.0,7.0,3\n45.0,1.0,4.0,104.0,208.0,0.0,2.0,148.0,1.0,3.0,2.0,0.0,3.0,0\n53.0,0.0,4.0,130.0,264.0,0.0,2.0,143.0,0.0,0.4,2.0,0.0,3.0,0\n39.0,1.0,3.0,140.0,321.0,0.0,2.0,182.0,0.0,0.0,1.0,0.0,3.0,0\n68.0,1.0,3.0,180.0,274.0,1.0,2.0,150.0,1.0,1.6,2.0,0.0,7.0,3\n52.0,1.0,2.0,120.0,325.0,0.0,0.0,172.0,0.0,0.2,1.0,0.0,3.0,0\n44.0,1.0,3.0,140.0,235.0,0.0,2.0,180.0,0.0,0.0,1.0,0.0,3.0,0\n47.0,1.0,3.0,138.0,257.0,0.0,2.0,156.0,0.0,0.0,1.0,0.0,3.0,0\n53.0,0.0,3.0,128.0,216.0,0.0,2.0,115.0,0.0,0.0,1.0,0.0,?,0\n53.0,0.0,4.0,138.0,234.0,0.0,2.0,160.0,0.0,0.0,1.0,0.0,3.0,0\n51.0,0.0,3.0,130.0,256.0,0.0,2.0,149.0,0.0,0.5,1.0,0.0,3.0,0\n66.0,1.0,4.0,120.0,302.0,0.0,2.0,151.0,0.0,0.4,2.0,0.0,3.0,0\n62.0,0.0,4.0,160.0,164.0,0.0,2.0,145.0,0.0,6.2,3.0,3.0,7.0,3\n62.0,1.0,3.0,130.0,231.0,0.0,0.0,146.0,0.0,1.8,2.0,3.0,7.0,0\n44.0,0.0,3.0,108.0,141.0,0.0,0.0,175.0,0.0,0.6,2.0,0.0,3.0,0\n63.0,0.0,3.0,135.0,252.0,0.0,2.0,172.0,0.0,0.0,1.0,0.0,3.0,0\n52.0,1.0,4.0,128.0,255.0,0.0,0.0,161.0,1.0,0.0,1.0,1.0,7.0,1\n59.0,1.0,4.0,110.0,239.0,0.0,2.0,142.0,1.0,1.2,2.0,1.0,7.0,2\n60.0,0.0,4.0,150.0,258.0,0.0,2.0,157.0,0.0,2.6,2.0,2.0,7.0,3\n52.0,1.0,2.0,134.0,201.0,0.0,0.0,158.0,0.0,0.8,1.0,1.0,3.0,0\n48.0,1.0,4.0,122.0,222.0,0.0,2.0,186.0,0.0,0.0,1.0,0.0,3.0,0\n45.0,1.0,4.0,115.0,260.0,0.0,2.0,185.0,0.0,0.0,1.0,0.0,3.0,0\n34.0,1.0,1.0,118.0,182.0,0.0,2.0,174.0,0.0,0.0,1.0,0.0,3.0,0\n57.0,0.0,4.0,128.0,303.0,0.0,2.0,159.0,0.0,0.0,1.0,1.0,3.0,0\n71.0,0.0,3.0,110.0,265.0,1.0,2.0,130.0,0.0,0.0,1.0,1.0,3.0,0\n49.0,1.0,3.0,120.0,188.0,0.0,0.0,139.0,0.0,2.0,2.0,3.0,7.0,3\n54.0,1.0,2.0,108.0,309.0,0.0,0.0,156.0,0.0,0.0,1.0,0.0,7.0,0\n59.0,1.0,4.0,140.0,177.0,0.0,0.0,162.0,1.0,0.0,1.0,1.0,7.0,2\n57.0,1.0,3.0,128.0,229.0,0.0,2.0,150.0,0.0,0.4,2.0,1.0,7.0,1\n61.0,1.0,4.0,120.0,260.0,0.0,0.0,140.0,1.0,3.6,2.0,1.0,7.0,2\n39.0,1.0,4.0,118.0,219.0,0.0,0.0,140.0,0.0,1.2,2.0,0.0,7.0,3\n61.0,0.0,4.0,145.0,307.0,0.0,2.0,146.0,1.0,1.0,2.0,0.0,7.0,1\n56.0,1.0,4.0,125.0,249.0,1.0,2.0,144.0,1.0,1.2,2.0,1.0,3.0,1\n52.0,1.0,1.0,118.0,186.0,0.0,2.0,190.0,0.0,0.0,2.0,0.0,6.0,0\n43.0,0.0,4.0,132.0,341.0,1.0,2.0,136.0,1.0,3.0,2.0,0.0,7.0,2\n62.0,0.0,3.0,130.0,263.0,0.0,0.0,97.0,0.0,1.2,2.0,1.0,7.0,2\n41.0,1.0,2.0,135.0,203.0,0.0,0.0,132.0,0.0,0.0,2.0,0.0,6.0,0\n58.0,1.0,3.0,140.0,211.0,1.0,2.0,165.0,0.0,0.0,1.0,0.0,3.0,0\n35.0,0.0,4.0,138.0,183.0,0.0,0.0,182.0,0.0,1.4,1.0,0.0,3.0,0\n63.0,1.0,4.0,130.0,330.0,1.0,2.0,132.0,1.0,1.8,1.0,3.0,7.0,3\n65.0,1.0,4.0,135.0,254.0,0.0,2.0,127.0,0.0,2.8,2.0,1.0,7.0,2\n48.0,1.0,4.0,130.0,256.0,1.0,2.0,150.0,1.0,0.0,1.0,2.0,7.0,3\n63.0,0.0,4.0,150.0,407.0,0.0,2.0,154.0,0.0,4.0,2.0,3.0,7.0,4\n51.0,1.0,3.0,100.0,222.0,0.0,0.0,143.0,1.0,1.2,2.0,0.0,3.0,0\n55.0,1.0,4.0,140.0,217.0,0.0,0.0,111.0,1.0,5.6,3.0,0.0,7.0,3\n65.0,1.0,1.0,138.0,282.0,1.0,2.0,174.0,0.0,1.4,2.0,1.0,3.0,1\n45.0,0.0,2.0,130.0,234.0,0.0,2.0,175.0,0.0,0.6,2.0,0.0,3.0,0\n56.0,0.0,4.0,200.0,288.0,1.0,2.0,133.0,1.0,4.0,3.0,2.0,7.0,3\n54.0,1.0,4.0,110.0,239.0,0.0,0.0,126.0,1.0,2.8,2.0,1.0,7.0,3\n44.0,1.0,2.0,120.0,220.0,0.0,0.0,170.0,0.0,0.0,1.0,0.0,3.0,0\n62.0,0.0,4.0,124.0,209.0,0.0,0.0,163.0,0.0,0.0,1.0,0.0,3.0,0\n54.0,1.0,3.0,120.0,258.0,0.0,2.0,147.0,0.0,0.4,2.0,0.0,7.0,0\n51.0,1.0,3.0,94.0,227.0,0.0,0.0,154.0,1.0,0.0,1.0,1.0,7.0,0\n29.0,1.0,2.0,130.0,204.0,0.0,2.0,202.0,0.0,0.0,1.0,0.0,3.0,0\n51.0,1.0,4.0,140.0,261.0,0.0,2.0,186.0,1.0,0.0,1.0,0.0,3.0,0\n43.0,0.0,3.0,122.0,213.0,0.0,0.0,165.0,0.0,0.2,2.0,0.0,3.0,0\n55.0,0.0,2.0,135.0,250.0,0.0,2.0,161.0,0.0,1.4,2.0,0.0,3.0,0\n70.0,1.0,4.0,145.0,174.0,0.0,0.0,125.0,1.0,2.6,3.0,0.0,7.0,4\n62.0,1.0,2.0,120.0,281.0,0.0,2.0,103.0,0.0,1.4,2.0,1.0,7.0,3\n35.0,1.0,4.0,120.0,198.0,0.0,0.0,130.0,1.0,1.6,2.0,0.0,7.0,1\n51.0,1.0,3.0,125.0,245.0,1.0,2.0,166.0,0.0,2.4,2.0,0.0,3.0,0\n59.0,1.0,2.0,140.0,221.0,0.0,0.0,164.0,1.0,0.0,1.0,0.0,3.0,0\n59.0,1.0,1.0,170.0,288.0,0.0,2.0,159.0,0.0,0.2,2.0,0.0,7.0,1\n52.0,1.0,2.0,128.0,205.0,1.0,0.0,184.0,0.0,0.0,1.0,0.0,3.0,0\n64.0,1.0,3.0,125.0,309.0,0.0,0.0,131.0,1.0,1.8,2.0,0.0,7.0,1\n58.0,1.0,3.0,105.0,240.0,0.0,2.0,154.0,1.0,0.6,2.0,0.0,7.0,0\n47.0,1.0,3.0,108.0,243.0,0.0,0.0,152.0,0.0,0.0,1.0,0.0,3.0,1\n57.0,1.0,4.0,165.0,289.0,1.0,2.0,124.0,0.0,1.0,2.0,3.0,7.0,4\n41.0,1.0,3.0,112.0,250.0,0.0,0.0,179.0,0.0,0.0,1.0,0.0,3.0,0\n45.0,1.0,2.0,128.0,308.0,0.0,2.0,170.0,0.0,0.0,1.0,0.0,3.0,0\n60.0,0.0,3.0,102.0,318.0,0.0,0.0,160.0,0.0,0.0,1.0,1.0,3.0,0\n52.0,1.0,1.0,152.0,298.0,1.0,0.0,178.0,0.0,1.2,2.0,0.0,7.0,0\n42.0,0.0,4.0,102.0,265.0,0.0,2.0,122.0,0.0,0.6,2.0,0.0,3.0,0\n67.0,0.0,3.0,115.0,564.0,0.0,2.0,160.0,0.0,1.6,2.0,0.0,7.0,0\n55.0,1.0,4.0,160.0,289.0,0.0,2.0,145.0,1.0,0.8,2.0,1.0,7.0,4\n64.0,1.0,4.0,120.0,246.0,0.0,2.0,96.0,1.0,2.2,3.0,1.0,3.0,3\n70.0,1.0,4.0,130.0,322.0,0.0,2.0,109.0,0.0,2.4,2.0,3.0,3.0,1\n51.0,1.0,4.0,140.0,299.0,0.0,0.0,173.0,1.0,1.6,1.0,0.0,7.0,1\n58.0,1.0,4.0,125.0,300.0,0.0,2.0,171.0,0.0,0.0,1.0,2.0,7.0,1\n60.0,1.0,4.0,140.0,293.0,0.0,2.0,170.0,0.0,1.2,2.0,2.0,7.0,2\n68.0,1.0,3.0,118.0,277.0,0.0,0.0,151.0,0.0,1.0,1.0,1.0,7.0,0\n46.0,1.0,2.0,101.0,197.0,1.0,0.0,156.0,0.0,0.0,1.0,0.0,7.0,0\n77.0,1.0,4.0,125.0,304.0,0.0,2.0,162.0,1.0,0.0,1.0,3.0,3.0,4\n54.0,0.0,3.0,110.0,214.0,0.0,0.0,158.0,0.0,1.6,2.0,0.0,3.0,0\n58.0,0.0,4.0,100.0,248.0,0.0,2.0,122.0,0.0,1.0,2.0,0.0,3.0,0\n48.0,1.0,3.0,124.0,255.0,1.0,0.0,175.0,0.0,0.0,1.0,2.0,3.0,0\n57.0,1.0,4.0,132.0,207.0,0.0,0.0,168.0,1.0,0.0,1.0,0.0,7.0,0\n52.0,1.0,3.0,138.0,223.0,0.0,0.0,169.0,0.0,0.0,1.0,?,3.0,0\n54.0,0.0,2.0,132.0,288.0,1.0,2.0,159.0,1.0,0.0,1.0,1.0,3.0,0\n35.0,1.0,4.0,126.0,282.0,0.0,2.0,156.0,1.0,0.0,1.0,0.0,7.0,1\n45.0,0.0,2.0,112.0,160.0,0.0,0.0,138.0,0.0,0.0,2.0,0.0,3.0,0\n70.0,1.0,3.0,160.0,269.0,0.0,0.0,112.0,1.0,2.9,2.0,1.0,7.0,3\n53.0,1.0,4.0,142.0,226.0,0.0,2.0,111.0,1.0,0.0,1.0,0.0,7.0,0\n59.0,0.0,4.0,174.0,249.0,0.0,0.0,143.0,1.0,0.0,2.0,0.0,3.0,1\n62.0,0.0,4.0,140.0,394.0,0.0,2.0,157.0,0.0,1.2,2.0,0.0,3.0,0\n64.0,1.0,4.0,145.0,212.0,0.0,2.0,132.0,0.0,2.0,2.0,2.0,6.0,4\n57.0,1.0,4.0,152.0,274.0,0.0,0.0,88.0,1.0,1.2,2.0,1.0,7.0,1\n52.0,1.0,4.0,108.0,233.0,1.0,0.0,147.0,0.0,0.1,1.0,3.0,7.0,0\n56.0,1.0,4.0,132.0,184.0,0.0,2.0,105.0,1.0,2.1,2.0,1.0,6.0,1\n43.0,1.0,3.0,130.0,315.0,0.0,0.0,162.0,0.0,1.9,1.0,1.0,3.0,0\n53.0,1.0,3.0,130.0,246.0,1.0,2.0,173.0,0.0,0.0,1.0,3.0,3.0,0\n48.0,1.0,4.0,124.0,274.0,0.0,2.0,166.0,0.0,0.5,2.0,0.0,7.0,3\n56.0,0.0,4.0,134.0,409.0,0.0,2.0,150.0,1.0,1.9,2.0,2.0,7.0,2\n42.0,1.0,1.0,148.0,244.0,0.0,2.0,178.0,0.0,0.8,1.0,2.0,3.0,0\n59.0,1.0,1.0,178.0,270.0,0.0,2.0,145.0,0.0,4.2,3.0,0.0,7.0,0\n60.0,0.0,4.0,158.0,305.0,0.0,2.0,161.0,0.0,0.0,1.0,0.0,3.0,1\n63.0,0.0,2.0,140.0,195.0,0.0,0.0,179.0,0.0,0.0,1.0,2.0,3.0,0\n42.0,1.0,3.0,120.0,240.0,1.0,0.0,194.0,0.0,0.8,3.0,0.0,7.0,0\n66.0,1.0,2.0,160.0,246.0,0.0,0.0,120.0,1.0,0.0,2.0,3.0,6.0,2\n54.0,1.0,2.0,192.0,283.0,0.0,2.0,195.0,0.0,0.0,1.0,1.0,7.0,1\n69.0,1.0,3.0,140.0,254.0,0.0,2.0,146.0,0.0,2.0,2.0,3.0,7.0,2\n50.0,1.0,3.0,129.0,196.0,0.0,0.0,163.0,0.0,0.0,1.0,0.0,3.0,0\n51.0,1.0,4.0,140.0,298.0,0.0,0.0,122.0,1.0,4.2,2.0,3.0,7.0,3\n43.0,1.0,4.0,132.0,247.0,1.0,2.0,143.0,1.0,0.1,2.0,?,7.0,1\n62.0,0.0,4.0,138.0,294.0,1.0,0.0,106.0,0.0,1.9,2.0,3.0,3.0,2\n68.0,0.0,3.0,120.0,211.0,0.0,2.0,115.0,0.0,1.5,2.0,0.0,3.0,0\n67.0,1.0,4.0,100.0,299.0,0.0,2.0,125.0,1.0,0.9,2.0,2.0,3.0,3\n69.0,1.0,1.0,160.0,234.0,1.0,2.0,131.0,0.0,0.1,2.0,1.0,3.0,0\n45.0,0.0,4.0,138.0,236.0,0.0,2.0,152.0,1.0,0.2,2.0,0.0,3.0,0\n50.0,0.0,2.0,120.0,244.0,0.0,0.0,162.0,0.0,1.1,1.0,0.0,3.0,0\n59.0,1.0,1.0,160.0,273.0,0.0,2.0,125.0,0.0,0.0,1.0,0.0,3.0,1\n50.0,0.0,4.0,110.0,254.0,0.0,2.0,159.0,0.0,0.0,1.0,0.0,3.0,0\n64.0,0.0,4.0,180.0,325.0,0.0,0.0,154.0,1.0,0.0,1.0,0.0,3.0,0\n57.0,1.0,3.0,150.0,126.0,1.0,0.0,173.0,0.0,0.2,1.0,1.0,7.0,0\n64.0,0.0,3.0,140.0,313.0,0.0,0.0,133.0,0.0,0.2,1.0,0.0,7.0,0\n43.0,1.0,4.0,110.0,211.0,0.0,0.0,161.0,0.0,0.0,1.0,0.0,7.0,0\n45.0,1.0,4.0,142.0,309.0,0.0,2.0,147.0,1.0,0.0,2.0,3.0,7.0,3\n58.0,1.0,4.0,128.0,259.0,0.0,2.0,130.0,1.0,3.0,2.0,2.0,7.0,3\n50.0,1.0,4.0,144.0,200.0,0.0,2.0,126.0,1.0,0.9,2.0,0.0,7.0,3\n55.0,1.0,2.0,130.0,262.0,0.0,0.0,155.0,0.0,0.0,1.0,0.0,3.0,0\n62.0,0.0,4.0,150.0,244.0,0.0,0.0,154.0,1.0,1.4,2.0,0.0,3.0,1\n37.0,0.0,3.0,120.0,215.0,0.0,0.0,170.0,0.0,0.0,1.0,0.0,3.0,0\n38.0,1.0,1.0,120.0,231.0,0.0,0.0,182.0,1.0,3.8,2.0,0.0,7.0,4\n41.0,1.0,3.0,130.0,214.0,0.0,2.0,168.0,0.0,2.0,2.0,0.0,3.0,0\n66.0,0.0,4.0,178.0,228.0,1.0,0.0,165.0,1.0,1.0,2.0,2.0,7.0,3\n52.0,1.0,4.0,112.0,230.0,0.0,0.0,160.0,0.0,0.0,1.0,1.0,3.0,1\n56.0,1.0,1.0,120.0,193.0,0.0,2.0,162.0,0.0,1.9,2.0,0.0,7.0,0\n46.0,0.0,2.0,105.0,204.0,0.0,0.0,172.0,0.0,0.0,1.0,0.0,3.0,0\n46.0,0.0,4.0,138.0,243.0,0.0,2.0,152.0,1.0,0.0,2.0,0.0,3.0,0\n64.0,0.0,4.0,130.0,303.0,0.0,0.0,122.0,0.0,2.0,2.0,2.0,3.0,0\n59.0,1.0,4.0,138.0,271.0,0.0,2.0,182.0,0.0,0.0,1.0,0.0,3.0,0\n41.0,0.0,3.0,112.0,268.0,0.0,2.0,172.0,1.0,0.0,1.0,0.0,3.0,0\n54.0,0.0,3.0,108.0,267.0,0.0,2.0,167.0,0.0,0.0,1.0,0.0,3.0,0\n39.0,0.0,3.0,94.0,199.0,0.0,0.0,179.0,0.0,0.0,1.0,0.0,3.0,0\n53.0,1.0,4.0,123.0,282.0,0.0,0.0,95.0,1.0,2.0,2.0,2.0,7.0,3\n63.0,0.0,4.0,108.0,269.0,0.0,0.0,169.0,1.0,1.8,2.0,2.0,3.0,1\n34.0,0.0,2.0,118.0,210.0,0.0,0.0,192.0,0.0,0.7,1.0,0.0,3.0,0\n47.0,1.0,4.0,112.0,204.0,0.0,0.0,143.0,0.0,0.1,1.0,0.0,3.0,0\n67.0,0.0,3.0,152.0,277.0,0.0,0.0,172.0,0.0,0.0,1.0,1.0,3.0,0\n54.0,1.0,4.0,110.0,206.0,0.0,2.0,108.0,1.0,0.0,2.0,1.0,3.0,3\n66.0,1.0,4.0,112.0,212.0,0.0,2.0,132.0,1.0,0.1,1.0,1.0,3.0,2\n52.0,0.0,3.0,136.0,196.0,0.0,2.0,169.0,0.0,0.1,2.0,0.0,3.0,0\n55.0,0.0,4.0,180.0,327.0,0.0,1.0,117.0,1.0,3.4,2.0,0.0,3.0,2\n49.0,1.0,3.0,118.0,149.0,0.0,2.0,126.0,0.0,0.8,1.0,3.0,3.0,1\n74.0,0.0,2.0,120.0,269.0,0.0,2.0,121.0,1.0,0.2,1.0,1.0,3.0,0\n54.0,0.0,3.0,160.0,201.0,0.0,0.0,163.0,0.0,0.0,1.0,1.0,3.0,0\n54.0,1.0,4.0,122.0,286.0,0.0,2.0,116.0,1.0,3.2,2.0,2.0,3.0,3\n56.0,1.0,4.0,130.0,283.0,1.0,2.0,103.0,1.0,1.6,3.0,0.0,7.0,2\n46.0,1.0,4.0,120.0,249.0,0.0,2.0,144.0,0.0,0.8,1.0,0.0,7.0,1\n49.0,0.0,2.0,134.0,271.0,0.0,0.0,162.0,0.0,0.0,2.0,0.0,3.0,0\n42.0,1.0,2.0,120.0,295.0,0.0,0.0,162.0,0.0,0.0,1.0,0.0,3.0,0\n41.0,1.0,2.0,110.0,235.0,0.0,0.0,153.0,0.0,0.0,1.0,0.0,3.0,0\n41.0,0.0,2.0,126.0,306.0,0.0,0.0,163.0,0.0,0.0,1.0,0.0,3.0,0\n49.0,0.0,4.0,130.0,269.0,0.0,0.0,163.0,0.0,0.0,1.0,0.0,3.0,0\n61.0,1.0,1.0,134.0,234.0,0.0,0.0,145.0,0.0,2.6,2.0,2.0,3.0,2\n60.0,0.0,3.0,120.0,178.0,1.0,0.0,96.0,0.0,0.0,1.0,0.0,3.0,0\n67.0,1.0,4.0,120.0,237.0,0.0,0.0,71.0,0.0,1.0,2.0,0.0,3.0,2\n58.0,1.0,4.0,100.0,234.0,0.0,0.0,156.0,0.0,0.1,1.0,1.0,7.0,2\n47.0,1.0,4.0,110.0,275.0,0.0,2.0,118.0,1.0,1.0,2.0,1.0,3.0,1\n52.0,1.0,4.0,125.0,212.0,0.0,0.0,168.0,0.0,1.0,1.0,2.0,7.0,3\n62.0,1.0,2.0,128.0,208.0,1.0,2.0,140.0,0.0,0.0,1.0,0.0,3.0,0\n57.0,1.0,4.0,110.0,201.0,0.0,0.0,126.0,1.0,1.5,2.0,0.0,6.0,0\n58.0,1.0,4.0,146.0,218.0,0.0,0.0,105.0,0.0,2.0,2.0,1.0,7.0,1\n64.0,1.0,4.0,128.0,263.0,0.0,0.0,105.0,1.0,0.2,2.0,1.0,7.0,0\n51.0,0.0,3.0,120.0,295.0,0.0,2.0,157.0,0.0,0.6,1.0,0.0,3.0,0\n43.0,1.0,4.0,115.0,303.0,0.0,0.0,181.0,0.0,1.2,2.0,0.0,3.0,0\n42.0,0.0,3.0,120.0,209.0,0.0,0.0,173.0,0.0,0.0,2.0,0.0,3.0,0\n67.0,0.0,4.0,106.0,223.0,0.0,0.0,142.0,0.0,0.3,1.0,2.0,3.0,0\n76.0,0.0,3.0,140.0,197.0,0.0,1.0,116.0,0.0,1.1,2.0,0.0,3.0,0\n70.0,1.0,2.0,156.0,245.0,0.0,2.0,143.0,0.0,0.0,1.0,0.0,3.0,0\n57.0,1.0,2.0,124.0,261.0,0.0,0.0,141.0,0.0,0.3,1.0,0.0,7.0,1\n44.0,0.0,3.0,118.0,242.0,0.0,0.0,149.0,0.0,0.3,2.0,1.0,3.0,0\n58.0,0.0,2.0,136.0,319.0,1.0,2.0,152.0,0.0,0.0,1.0,2.0,3.0,3\n60.0,0.0,1.0,150.0,240.0,0.0,0.0,171.0,0.0,0.9,1.0,0.0,3.0,0\n44.0,1.0,3.0,120.0,226.0,0.0,0.0,169.0,0.0,0.0,1.0,0.0,3.0,0\n61.0,1.0,4.0,138.0,166.0,0.0,2.0,125.0,1.0,3.6,2.0,1.0,3.0,4\n42.0,1.0,4.0,136.0,315.0,0.0,0.0,125.0,1.0,1.8,2.0,0.0,6.0,2\n52.0,1.0,4.0,128.0,204.0,1.0,0.0,156.0,1.0,1.0,2.0,0.0,?,2\n59.0,1.0,3.0,126.0,218.0,1.0,0.0,134.0,0.0,2.2,2.0,1.0,6.0,2\n40.0,1.0,4.0,152.0,223.0,0.0,0.0,181.0,0.0,0.0,1.0,0.0,7.0,1\n42.0,1.0,3.0,130.0,180.0,0.0,0.0,150.0,0.0,0.0,1.0,0.0,3.0,0\n61.0,1.0,4.0,140.0,207.0,0.0,2.0,138.0,1.0,1.9,1.0,1.0,7.0,1\n66.0,1.0,4.0,160.0,228.0,0.0,2.0,138.0,0.0,2.3,1.0,0.0,6.0,0\n46.0,1.0,4.0,140.0,311.0,0.0,0.0,120.0,1.0,1.8,2.0,2.0,7.0,2\n71.0,0.0,4.0,112.0,149.0,0.0,0.0,125.0,0.0,1.6,2.0,0.0,3.0,0\n59.0,1.0,1.0,134.0,204.0,0.0,0.0,162.0,0.0,0.8,1.0,2.0,3.0,1\n64.0,1.0,1.0,170.0,227.0,0.0,2.0,155.0,0.0,0.6,2.0,0.0,7.0,0\n66.0,0.0,3.0,146.0,278.0,0.0,2.0,152.0,0.0,0.0,2.0,1.0,3.0,0\n39.0,0.0,3.0,138.0,220.0,0.0,0.0,152.0,0.0,0.0,2.0,0.0,3.0,0\n57.0,1.0,2.0,154.0,232.0,0.0,2.0,164.0,0.0,0.0,1.0,1.0,3.0,1\n58.0,0.0,4.0,130.0,197.0,0.0,0.0,131.0,0.0,0.6,2.0,0.0,3.0,0\n57.0,1.0,4.0,110.0,335.0,0.0,0.0,143.0,1.0,3.0,2.0,1.0,7.0,2\n47.0,1.0,3.0,130.0,253.0,0.0,0.0,179.0,0.0,0.0,1.0,0.0,3.0,0\n55.0,0.0,4.0,128.0,205.0,0.0,1.0,130.0,1.0,2.0,2.0,1.0,7.0,3\n35.0,1.0,2.0,122.0,192.0,0.0,0.0,174.0,0.0,0.0,1.0,0.0,3.0,0\n61.0,1.0,4.0,148.0,203.0,0.0,0.0,161.0,0.0,0.0,1.0,1.0,7.0,2\n58.0,1.0,4.0,114.0,318.0,0.0,1.0,140.0,0.0,4.4,3.0,3.0,6.0,4\n58.0,0.0,4.0,170.0,225.0,1.0,2.0,146.0,1.0,2.8,2.0,2.0,6.0,2\n58.0,1.0,2.0,125.0,220.0,0.0,0.0,144.0,0.0,0.4,2.0,?,7.0,0\n56.0,1.0,2.0,130.0,221.0,0.0,2.0,163.0,0.0,0.0,1.0,0.0,7.0,0\n56.0,1.0,2.0,120.0,240.0,0.0,0.0,169.0,0.0,0.0,3.0,0.0,3.0,0\n67.0,1.0,3.0,152.0,212.0,0.0,2.0,150.0,0.0,0.8,2.0,0.0,7.0,1\n55.0,0.0,2.0,132.0,342.0,0.0,0.0,166.0,0.0,1.2,1.0,0.0,3.0,0\n44.0,1.0,4.0,120.0,169.0,0.0,0.0,144.0,1.0,2.8,3.0,0.0,6.0,2\n63.0,1.0,4.0,140.0,187.0,0.0,2.0,144.0,1.0,4.0,1.0,2.0,7.0,2\n63.0,0.0,4.0,124.0,197.0,0.0,0.0,136.0,1.0,0.0,2.0,0.0,3.0,1\n41.0,1.0,2.0,120.0,157.0,0.0,0.0,182.0,0.0,0.0,1.0,0.0,3.0,0\n59.0,1.0,4.0,164.0,176.0,1.0,2.0,90.0,0.0,1.0,2.0,2.0,6.0,3\n57.0,0.0,4.0,140.0,241.0,0.0,0.0,123.0,1.0,0.2,2.0,0.0,7.0,1\n45.0,1.0,1.0,110.0,264.0,0.0,0.0,132.0,0.0,1.2,2.0,0.0,7.0,1\n68.0,1.0,4.0,144.0,193.0,1.0,0.0,141.0,0.0,3.4,2.0,2.0,7.0,2\n57.0,1.0,4.0,130.0,131.0,0.0,0.0,115.0,1.0,1.2,2.0,1.0,7.0,3\n57.0,0.0,2.0,130.0,236.0,0.0,2.0,174.0,0.0,0.0,2.0,1.0,3.0,1\n38.0,1.0,3.0,138.0,175.0,0.0,0.0,173.0,0.0,0.0,1.0,?,3.0,0\n"
  },
  {
    "path": "pyproject.toml",
    "content": "[build-system]\nrequires = [\"setuptools>=42\", \"wheel\", \"setuptools_scm\"]\nbuild-backend = \"setuptools.build_meta\"\n\n[project]\nname = \"tensorboardX\"\ndynamic = [\"version\", \"readme\"]\ndescription = \"TensorBoardX lets you watch Tensors Flow without Tensorflow\"\nrequires-python = \">=3.9\"\nlicense =\"MIT\"\nauthors = [\n    {name = \"Tzu-Wei Huang\", email = \"huang.dexter@gmail.com\"}\n]\nclassifiers = [\n    \"Development Status :: 4 - Beta\",\n    \"Intended Audience :: Developers\",\n    \"Natural Language :: English\",\n    \"Programming Language :: Python :: 3\",\n    \"Programming Language :: Python :: 3.9\",\n    \"Programming Language :: Python :: 3.10\",\n    \"Programming Language :: Python :: 3.11\",\n    \"Programming Language :: Python :: 3.12\",\n]\ndependencies = [\n    \"numpy\",\n    \"packaging\",\n    \"protobuf>=3.20\",\n]\n\n[project.urls]\nHomepage = \"https://github.com/lanpa/tensorboardX\"\nRepository = \"https://github.com/lanpa/tensorboardX.git\"\n\n[tool.setuptools]\ninclude-package-data = true\npackages = [\"tensorboardX\"]\nzip-safe = false\n\n[tool.setuptools.dynamic]\nreadme = {file = [\"HISTORY.rst\"]}\n\n[tool.setuptools_scm]\nversion_file = \"tensorboardX/_version.py\"\n\n[tool.uv.sources]\ntorch = { index = \"pytorch-cpu\" }\ntorchvision = { index = \"pytorch-cpu\" }\n\n[[tool.uv.index]]\nname = \"pytorch-cpu\"\nurl = \"https://download.pytorch.org/whl/cpu\"\nexplicit = true\n\n[dependency-groups]\ndev = [\n    \"pytest-cov>=6.0.0\",\n    \"pytest>=8.3.4\",\n    \"protobuf==4.22.3\",\n    \"torch>=2.5.1\",\n    \"torchvision>=0.20.1\",\n    \"numpy>=2.0.2\",\n    \"tensorboard>=2.18.0\",\n    \"boto3>=1.35.81\",\n    \"matplotlib>=3.9.4\",\n    \"moto<5\",\n    \"soundfile>=0.12.1\",\n    \"visdom>=0.2.4\",\n    \"onnx>=1.17.0\",\n    \"imageio==2.27\",\n    \"ruff>=0.8.4\",\n    \"pillow==11.0.0\",\n]\n\n[tool.ruff]\n# Exclude a variety of commonly ignored directories.\nexclude = [\n    \"proto\",\n]\n\n[tool.ruff.lint]\n# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`)  codes by default.\n# Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or\n# McCabe complexity (`C901`) by default.\nselect = [\n    # pycodestyle\n    \"E\",\n    # Pyflakes\n    \"F\",\n    # pyupgrade\n    \"UP\",\n    # flake8-bugbear\n#    \"B\",\n    # flake8-simplify\n    \"SIM\",\n    # isort\n    \"I\",\n]\nignore = [\"F401\", \"E501\", \"E721\", \"E741\"]\n\n"
  },
  {
    "path": "run_pytest.sh",
    "content": "#!/bin/bash\n\nSCRIPT_DIR=\"$( cd -- \"$( dirname -- \"${BASH_SOURCE[0]}\" )\" &> /dev/null && pwd )\"\n\npip install -r $SCRIPT_DIR/test-requirements.txt\n\nif [ `ps -ef|grep visdom |wc -l` = \"1\" ]\n    then\n    echo `ps|grep visdom |wc -l`\n    echo \"no visdom\"\n    visdom &\n    # kill visdom when done testing\n    trap \"kill -SIGTERM $!\" EXIT\nfi\n\npytest\n"
  },
  {
    "path": "tensorboardX/__init__.py",
    "content": "\"\"\"A module for visualization with tensorboard\n\"\"\"\n\nfrom .global_writer import GlobalSummaryWriter\nfrom .record_writer import RecordWriter\nfrom .torchvis import TorchVis\nfrom .writer import FileWriter, SummaryWriter\n\ntry:\n    from ._version import __version__\nexcept ImportError:\n    __version__ = \"unknown version\"\n"
  },
  {
    "path": "tensorboardX/comet_utils.py",
    "content": "import functools\nimport json\nimport logging\nfrom io import BytesIO\n\nimport numpy as np\nfrom google.protobuf.json_format import MessageToJson\n\nfrom .summary import _clean_tag\n\ntry:\n    import comet_ml\n    comet_installed = True\n    from PIL import Image\nexcept ImportError:\n    comet_installed = False\nlogger = logging.getLogger(__name__)\n\n\nclass CometLogger:\n    def __init__(self, comet_config={\"disabled\": True}):\n        global comet_installed\n        self._logging = None\n        self._comet_config = comet_config\n        if comet_config[\"disabled\"] is True:\n            self._logging = False\n        elif comet_config[\"disabled\"] is False and comet_installed is False:\n            raise Exception(\"Comet and/or Python Image Library not installed. Run 'pip install comet-ml pillow'\")\n\n    def _requiresComet(method):\n        @functools.wraps(method)\n        def wrapper(*args, **kwargs):\n            self = args[0]\n            global comet_installed\n            if self._logging is None and comet_installed:\n                self._logging = False\n                try:\n                    if 'api_key' not in self._comet_config:\n                        comet_ml.init()\n                    if comet_ml.get_global_experiment() is not None:\n                        logger.warning(\"You have already created a comet \\\n                                        experiment manually, which might \\\n                                        cause clashes\")\n                    self._experiment = comet_ml.Experiment(**self._comet_config)\n                    self._logging = True\n                    self._experiment.log_other(\"Created from\", \"tensorboardX\")\n                except Exception as e:\n                    logger.warning(e)\n\n            if self._logging is True:\n                return method(*args, **kwargs)\n        return wrapper\n\n    @_requiresComet\n    def end(self):\n        \"\"\"Ends an experiment.\"\"\"\n        self._experiment.end()\n        comet_ml.config.experiment = None\n\n    @_requiresComet\n    def log_metric(self, tag, display_name, value, step=None, epoch=None,\n                   include_context=True):\n        \"\"\"Logs a general metric (i.e accuracy, f1)..\n\n        Args:\n            tag: String - Data identifier\n            display_name: The title of the plot. If empty string is passed,\n              `tag` will be used.\n            value: Float/Integer/Boolean/String\n            step: Optional. Used as the X axis when plotting on comet.ml\n            epoch: Optional. Used as the X axis when plotting on comet.ml\n            include_context: Optional. If set to True (the default),\n                the current context will be logged along the metric.\n        \"\"\"\n        name = _clean_tag(tag) if display_name == \"\" else display_name\n        self._experiment.log_metric(name, value, step, epoch,\n                                    include_context)\n\n    @_requiresComet\n    def log_metrics(self, dic, prefix=None, step=None, epoch=None):\n        \"\"\"Logs a key,value dictionary of metrics.\n\n        Args:\n            dic: key,value dictionary of metrics\n            prefix: prefix added to metric name\n            step: Optional. Used as the X axis when plotting on comet.ml\n            epoch: Optional. Used as the X axis when plotting on comet.ml\n        \"\"\"\n        self._experiment.log_metrics(dic, prefix, step, epoch)\n\n    @_requiresComet\n    def log_parameters(self, parameters, prefix=None, step=None):\n        \"\"\"Logs a dictionary (or dictionary-like object) of multiple parameters.\n\n        Args:\n            parameters: key,value dictionary of parameters\n            prefix: prefix added to metric name\n            step: Optional. Used as the X axis when plotting on comet.ml\n        \"\"\"\n        self._experiment.log_parameters(parameters, prefix, step)\n\n    @_requiresComet\n    def log_audio(self, audio_data, sample_rate=None, file_name=None,\n                  metadata=None, overwrite=False, copy_to_tmp=True,\n                  step=None):\n        \"\"\"Logs the audio Asset determined by audio data.\n\n        Args:\n        audio_data: String or a numpy array - either the file path\n            of the file you want to log, or a numpy array given to\n            scipy.io.wavfile.write for wav conversion.\n        sample_rate: Integer - Optional. The sampling rate given to\n            scipy.io.wavfile.write for creating the wav file.\n        file_name: String - Optional. A custom file name to be displayed.\n            If not provided, the filename from the audio_data argument\n            will be used.\n        metadata: Some additional data to attach to the the audio asset.\n            Must be a JSON-encodable dict.\n        overwrite: if True will overwrite all existing assets with the same name.\n        copy_to_tmp: If audio_data is a numpy array, then this flag\n            determines if the WAV file is first copied to a temporary\n            file before upload. If copy_to_tmp is False, then it is sent\n            directly to the cloud.\n        step: Optional. Used to associate the audio asset to a specific step.\n        \"\"\"\n        self._experiment.log_audio(audio_data, sample_rate, file_name,\n                                   metadata, overwrite, copy_to_tmp,\n                                   step)\n\n    @_requiresComet\n    def log_text(self, text, step=None, metadata=None):\n        \"\"\"Logs the text. These strings appear on the Text Tab in the Comet UI.\n\n        Args:\n        text: string to be stored\n        step: Optional. Used to associate the asset to a specific step.\n        metadata: Some additional data to attach to the the text. Must\n            be a JSON-encodable dict.\n        \"\"\"\n        self._experiment.log_text(text, step, metadata)\n\n    @_requiresComet\n    def log_histogram(self, values, name=None, step=None, epoch=None,\n                      metadata=None, **kwargs):\n        \"\"\"Logs a histogram of values for a 3D chart as an asset for\n           this experiment. Calling this method multiple times with the\n           same name and incremented steps will add additional histograms\n           to the 3D chart on Comet.ml.\n\n        Args:\n        values: a list, tuple, array (any shape) to summarize, or a\n            Histogram object\n        name: str (optional), name of summary\n        step: Optional. Used as the Z axis when plotting on Comet.ml.\n        epoch: Optional. Used as the Z axis when plotting on Comet.ml.\n        metadata: Optional: Used for items like prefix for histogram name.\n        kwargs: Optional. Additional keyword arguments for histogram.\n        \"\"\"\n        self._experiment.log_histogram_3d(values, name, step,\n                                          epoch, metadata,\n                                          **kwargs)\n\n    @_requiresComet\n    def log_histogram_raw(self, tag, summary, step=None):\n        \"\"\"Log Raw Histogram Data to Comet as an Asset.\n\n        Args:\n            tag: Name given to the logged asset\n            summary: TensorboardX Summary protocol buffer with histogram data\n            step: The Global Step for this experiment run. Defaults to None.\n        \"\"\"\n\n        histogram_proto = summary.value[0].histo\n        histogram_raw_data = MessageToJson(histogram_proto)\n        histogram_raw_data['name'] = tag\n\n        self.log_asset_data(data=histogram_raw_data, name=tag, step=step)\n\n    @_requiresComet\n    def log_curve(self, name, x, y, overwrite=False, step=None):\n        \"\"\"Log timeseries data.\n\n        Args:\n        name: (str) name of data\n        x: array of x-axis values\n        y: array of y-axis values\n        overwrite: (optional, bool) if True, overwrite previous log\n        step: (optional, int) the step value\n        \"\"\"\n        self._experiment.log_curve(name, x.tolist(), y.tolist(), overwrite, step)\n\n    @_requiresComet\n    def log_image_encoded(self, encoded_image_string, tag, step=None):\n        \"\"\"Logs the image. Images are displayed on the Graphics tab on Comet.ml.\n\n        Args:\n        encoded_image_string: Required. An encoded image string\n        tag: String - Data identifier\n        step: Optional. Used to associate the image asset to a specific step.\n        \"\"\"\n        buff = BytesIO(encoded_image_string)\n        image_pil = Image.open(buff)\n        name = _clean_tag(tag)\n        self._experiment.log_image(image_pil, name, step=step)\n\n    @_requiresComet\n    def log_asset(self, file_data, file_name=None, overwrite=False,\n                  copy_to_tmp=True, step=None, metadata=None):\n        \"\"\"Logs the Asset determined by file_data.\n\n        Args:\n        file_data: String or File-like - either the file path of the\n            file you want to log, or a file-like asset.\n        file_name: String - Optional. A custom file name to be displayed.\n            If not provided the filename from the file_data argument will be used.\n        overwrite: if True will overwrite all existing assets with\n            the same name.\n        copy_to_tmp: If file_data is a file-like object, then this flag\n            determines if the file is first copied to a temporary file\n            before upload. If copy_to_tmp is False, then it is sent\n            directly to the cloud.\n        step: Optional. Used to associate the asset to a specific step.\n        \"\"\"\n        self._experiment.log_asset(file_data, file_name, overwrite,\n                                   copy_to_tmp, step, metadata)\n\n    @_requiresComet\n    def log_asset_data(self, data, name=None, overwrite=False, step=None,\n                       metadata=None, epoch=None):\n        \"\"\"Logs the data given (str, binary, or JSON).\n\n        Args:\n        data: data to be saved as asset\n        name: String, optional. A custom file name to be displayed If\n            not provided the filename from the temporary saved file\n            will be used.\n        overwrite: Boolean, optional. Default False. If True will\n            overwrite all existing assets with the same name.\n        step: Optional. Used to associate the asset to a specific step.\n        epoch: Optional. Used to associate the asset to a specific epoch.\n        metadata: Optional. Some additional data to attach to the\n            asset data. Must be a JSON-encodable dict.\n        \"\"\"\n        self._experiment.log_asset_data(data, name, overwrite, step,\n                                        metadata, epoch)\n\n    @_requiresComet\n    def log_embedding(self, vectors, labels, image_data=None,\n                      image_preprocess_function=None, image_transparent_color=None,\n                      image_background_color_function=None, title=\"Comet Embedding\",\n                      template_filename=None,\n                      group=None):\n        \"\"\"Log a multi-dimensional dataset and metadata for viewing\n           with Comet's Embedding Projector (experimental).\n\n        Args:\n        vectors: the tensors to visualize in 3D\n        labels: labels for each tensor\n        image_data: (optional) list of arrays or Images\n        image_preprocess_function: (optional) if image_data is an array,\n            apply this function to each element first\n        image_transparent_color: a (red, green, blue) tuple\n        image_background_color_function: a function that takes an\n            index, and returns a (red, green, blue) color tuple\n        title: (optional) name of tensor\n        template_filename: (optional) name of template JSON file\n        \"\"\"\n        image_size = None\n        if labels is None:\n            return\n        if image_data is not None:\n            image_data = image_data.cpu().detach().numpy()\n            image_size = image_data.shape[1:]\n            if image_size[0] == 1:\n                image_size = image_size[1:]\n        if type(labels) == list:\n            labels = np.array(labels)\n        else:\n            labels = labels.cpu().detach().numpy()\n        self._experiment.log_embedding(vectors, labels, image_data,\n                                       image_size, image_preprocess_function,\n                                       image_transparent_color,\n                                       image_background_color_function,\n                                       title, template_filename,\n                                       group)\n\n    @_requiresComet\n    def log_mesh(self, tag, vertices, colors, faces, config_dict, step, walltime):\n        \"\"\"Logs a mesh as an asset\n\n        Args:\n        tag: Data identifier\n        vertices: List of the 3D coordinates of vertices.\n        colors: Colors for each vertex\n        faces: Indices of vertices within each triangle.\n        config_dict: Dictionary with ThreeJS classes names and configuration.\n        step: step value to record\n        walltime: Optional override default walltime (time.time())\n            seconds after epoch of event\n        \"\"\"\n        mesh_json = {}\n        mesh_json['tag'] = tag\n        mesh_json['vertices'] = vertices.tolist()\n        mesh_json['colors'] = colors.tolist()\n        mesh_json['faces'] = faces.tolist()\n        mesh_json['config_dict'] = config_dict\n        mesh_json['walltime'] = walltime\n        mesh_json['asset_type'] = 'mesh'\n        mesh_json = json.dumps(mesh_json)\n        self.log_asset_data(mesh_json, tag, step=step)\n\n    @_requiresComet\n    def log_raw_figure(self, tag, asset_type, step=None, **kwargs):\n        \"\"\"Logs a histogram as an asset.\n\n        Args:\n        tag: Data identifier\n        asset_type: List of the 3D coordinates of vertices.\n        step: step value to record\n        \"\"\"\n        file_json = kwargs\n        file_json['asset_type'] = asset_type\n        self.log_asset_data(file_json, tag, step=step)\n\n    @_requiresComet\n    def log_pr_data(self, tag, summary, num_thresholds, step=None):\n        \"\"\"Logs a Precision-Recall Curve Data as an asset.\n\n        Args:\n        tag: An identifier for the PR curve\n        summary: TensorboardX Summary protocol buffer.\n        step: step value to record\n        \"\"\"\n        tensor_proto = summary.value[0].tensor\n        shape = [d.size for d in tensor_proto.tensor_shape.dim]\n\n        values = np.fromiter(tensor_proto.float_val, dtype=np.float32).reshape(shape)\n        thresholds = [1.0 / num_thresholds * i for i in range(num_thresholds)]\n        tp, fp, tn, fn, precision, recall = map(lambda x: x.flatten().tolist(), np.vsplit(values, values.shape[0]))\n\n        pr_data = {\n            'TP': tp,\n            'FP': fp,\n            'TN': tn,\n            'FN': fn,\n            'precision': precision,\n            'recall': recall,\n            'thresholds': thresholds,\n            'name': tag,\n        }\n\n        self.log_asset_data(pr_data, name=tag, step=step)\n\n    @_requiresComet\n    def log_pr_raw_data(self, tag, true_positive_counts,\n                        false_positive_counts, true_negative_counts,\n                        false_negative_counts, precision, recall,\n                        num_thresholds, weights, step=None):\n        \"\"\"Logs a Precision-Recall Curve Data as an asset.\n\n        Args:\n        tag: An identifier for the PR curve\n        summary: TensorboardX Summary protocol buffer.\n        step: step value to record\n        \"\"\"\n        thresholds = [1.0 / num_thresholds * i for i in range(num_thresholds)]\n        tp, fp, tn, fn, precision, recall = map(lambda x: x.flatten().tolist(), [\n            true_positive_counts,\n            false_positive_counts,\n            true_negative_counts,\n            false_negative_counts,\n            precision,\n            recall])\n\n        pr_data = {\n            'TP': tp,\n            'FP': fp,\n            'TN': tn,\n            'FN': fn,\n            'precision': precision,\n            'recall': recall,\n            'thresholds': thresholds,\n            'weights': weights,\n            'name': tag,\n        }\n\n        self.log_asset_data(pr_data, name=tag, step=step)\n"
  },
  {
    "path": "tensorboardX/crc32c.py",
    "content": "# https://www.ietf.org/rfc/rfc3309.txt\nimport array\nimport os\n\ntry:\n    if os.environ.get('CRC32C_SW_MODE', None) is None:\n        os.environ['CRC32C_SW_MODE'] = 'auto'\n    from crc32c import crc32c as _crc32c_native\nexcept ImportError:\n    _crc32c_native = None\n\n\nCRC_TABLE = (\n    0x00000000, 0xf26b8303, 0xe13b70f7, 0x1350f3f4,\n    0xc79a971f, 0x35f1141c, 0x26a1e7e8, 0xd4ca64eb,\n    0x8ad958cf, 0x78b2dbcc, 0x6be22838, 0x9989ab3b,\n    0x4d43cfd0, 0xbf284cd3, 0xac78bf27, 0x5e133c24,\n    0x105ec76f, 0xe235446c, 0xf165b798, 0x030e349b,\n    0xd7c45070, 0x25afd373, 0x36ff2087, 0xc494a384,\n    0x9a879fa0, 0x68ec1ca3, 0x7bbcef57, 0x89d76c54,\n    0x5d1d08bf, 0xaf768bbc, 0xbc267848, 0x4e4dfb4b,\n    0x20bd8ede, 0xd2d60ddd, 0xc186fe29, 0x33ed7d2a,\n    0xe72719c1, 0x154c9ac2, 0x061c6936, 0xf477ea35,\n    0xaa64d611, 0x580f5512, 0x4b5fa6e6, 0xb93425e5,\n    0x6dfe410e, 0x9f95c20d, 0x8cc531f9, 0x7eaeb2fa,\n    0x30e349b1, 0xc288cab2, 0xd1d83946, 0x23b3ba45,\n    0xf779deae, 0x05125dad, 0x1642ae59, 0xe4292d5a,\n    0xba3a117e, 0x4851927d, 0x5b016189, 0xa96ae28a,\n    0x7da08661, 0x8fcb0562, 0x9c9bf696, 0x6ef07595,\n    0x417b1dbc, 0xb3109ebf, 0xa0406d4b, 0x522bee48,\n    0x86e18aa3, 0x748a09a0, 0x67dafa54, 0x95b17957,\n    0xcba24573, 0x39c9c670, 0x2a993584, 0xd8f2b687,\n    0x0c38d26c, 0xfe53516f, 0xed03a29b, 0x1f682198,\n    0x5125dad3, 0xa34e59d0, 0xb01eaa24, 0x42752927,\n    0x96bf4dcc, 0x64d4cecf, 0x77843d3b, 0x85efbe38,\n    0xdbfc821c, 0x2997011f, 0x3ac7f2eb, 0xc8ac71e8,\n    0x1c661503, 0xee0d9600, 0xfd5d65f4, 0x0f36e6f7,\n    0x61c69362, 0x93ad1061, 0x80fde395, 0x72966096,\n    0xa65c047d, 0x5437877e, 0x4767748a, 0xb50cf789,\n    0xeb1fcbad, 0x197448ae, 0x0a24bb5a, 0xf84f3859,\n    0x2c855cb2, 0xdeeedfb1, 0xcdbe2c45, 0x3fd5af46,\n    0x7198540d, 0x83f3d70e, 0x90a324fa, 0x62c8a7f9,\n    0xb602c312, 0x44694011, 0x5739b3e5, 0xa55230e6,\n    0xfb410cc2, 0x092a8fc1, 0x1a7a7c35, 0xe811ff36,\n    0x3cdb9bdd, 0xceb018de, 0xdde0eb2a, 0x2f8b6829,\n    0x82f63b78, 0x709db87b, 0x63cd4b8f, 0x91a6c88c,\n    0x456cac67, 0xb7072f64, 0xa457dc90, 0x563c5f93,\n    0x082f63b7, 0xfa44e0b4, 0xe9141340, 0x1b7f9043,\n    0xcfb5f4a8, 0x3dde77ab, 0x2e8e845f, 0xdce5075c,\n    0x92a8fc17, 0x60c37f14, 0x73938ce0, 0x81f80fe3,\n    0x55326b08, 0xa759e80b, 0xb4091bff, 0x466298fc,\n    0x1871a4d8, 0xea1a27db, 0xf94ad42f, 0x0b21572c,\n    0xdfeb33c7, 0x2d80b0c4, 0x3ed04330, 0xccbbc033,\n    0xa24bb5a6, 0x502036a5, 0x4370c551, 0xb11b4652,\n    0x65d122b9, 0x97baa1ba, 0x84ea524e, 0x7681d14d,\n    0x2892ed69, 0xdaf96e6a, 0xc9a99d9e, 0x3bc21e9d,\n    0xef087a76, 0x1d63f975, 0x0e330a81, 0xfc588982,\n    0xb21572c9, 0x407ef1ca, 0x532e023e, 0xa145813d,\n    0x758fe5d6, 0x87e466d5, 0x94b49521, 0x66df1622,\n    0x38cc2a06, 0xcaa7a905, 0xd9f75af1, 0x2b9cd9f2,\n    0xff56bd19, 0x0d3d3e1a, 0x1e6dcdee, 0xec064eed,\n    0xc38d26c4, 0x31e6a5c7, 0x22b65633, 0xd0ddd530,\n    0x0417b1db, 0xf67c32d8, 0xe52cc12c, 0x1747422f,\n    0x49547e0b, 0xbb3ffd08, 0xa86f0efc, 0x5a048dff,\n    0x8ecee914, 0x7ca56a17, 0x6ff599e3, 0x9d9e1ae0,\n    0xd3d3e1ab, 0x21b862a8, 0x32e8915c, 0xc083125f,\n    0x144976b4, 0xe622f5b7, 0xf5720643, 0x07198540,\n    0x590ab964, 0xab613a67, 0xb831c993, 0x4a5a4a90,\n    0x9e902e7b, 0x6cfbad78, 0x7fab5e8c, 0x8dc0dd8f,\n    0xe330a81a, 0x115b2b19, 0x020bd8ed, 0xf0605bee,\n    0x24aa3f05, 0xd6c1bc06, 0xc5914ff2, 0x37faccf1,\n    0x69e9f0d5, 0x9b8273d6, 0x88d28022, 0x7ab90321,\n    0xae7367ca, 0x5c18e4c9, 0x4f48173d, 0xbd23943e,\n    0xf36e6f75, 0x0105ec76, 0x12551f82, 0xe03e9c81,\n    0x34f4f86a, 0xc69f7b69, 0xd5cf889d, 0x27a40b9e,\n    0x79b737ba, 0x8bdcb4b9, 0x988c474d, 0x6ae7c44e,\n    0xbe2da0a5, 0x4c4623a6, 0x5f16d052, 0xad7d5351,\n)\n\nCRC_INIT = 0\n\n_MASK = 0xFFFFFFFF\n\n\ndef crc_update(crc, data):\n    \"\"\"Update CRC-32C checksum with data.\n\n    Args:\n      crc: 32-bit checksum to update as long.\n      data: byte array, string or iterable over bytes.\n\n    Returns:\n      32-bit updated CRC-32C as long.\n    \"\"\"\n\n    if type(data) != array.array or data.itemsize != 1:\n        buf = array.array(\"B\", data)\n    else:\n        buf = data\n\n    crc ^= _MASK\n    for b in buf:\n        table_index = (crc ^ b) & 0xff\n        crc = (CRC_TABLE[table_index] ^ (crc >> 8)) & _MASK\n    return crc ^ _MASK\n\n\ndef crc_finalize(crc):\n    \"\"\"Finalize CRC-32C checksum.\n\n    This function should be called as last step of crc calculation.\n\n    Args:\n      crc: 32-bit checksum as long.\n\n    Returns:\n      finalized 32-bit checksum as long\n    \"\"\"\n    return crc & _MASK\n\n\ndef _crc32c(data):\n    \"\"\"Compute CRC-32C checksum of the data.\n\n    Args:\n      data: byte array, string or iterable over bytes.\n\n    Returns:\n      32-bit CRC-32C checksum of data as long.\n    \"\"\"\n    return crc_finalize(crc_update(CRC_INIT, data))\n\n\ncrc32c = _crc32c if _crc32c_native is None else _crc32c_native\n"
  },
  {
    "path": "tensorboardX/embedding.py",
    "content": "import os\nimport sys\n\n# Maximum sprite size allowed by TB frontend,\n# see https://github.com/lanpa/tensorboardX/issues/516\nTB_MAX_SPRITE_SIZE = 8192\n\n\ndef maybe_upload_file(local_path):\n    '''Upload a file to remote cloud storage\n    if the path starts with gs:// or s3://\n    '''\n    if local_path.startswith(('s3://', 'gs://')):\n        prefix = local_path.split(':')[0]\n        remote_bucket_path = local_path[len(\"s3://\"):]  # same length\n        bp = remote_bucket_path.split(\"/\")\n        bucket = bp[0]\n        path = remote_bucket_path[1 + len(bucket):]\n\n        # s3://example/file becomes s3:/example/file in Linux\n        local_path = prefix + ':/' + remote_bucket_path\n        if prefix == 's3':\n            import boto3\n            s3 = boto3.client('s3', endpoint_url=os.environ.get('S3_ENDPOINT'))\n            s3.upload_file(local_path, bucket, path)\n\n        elif prefix == 'gs':\n            from google.cloud import storage\n            client = storage.Client()\n\n            Hbucket = storage.Bucket(client, bucket)\n            blob = storage.Blob(path, Hbucket)\n            blob.upload_from_filename(local_path)\n\n\ndef make_tsv(metadata, save_path, metadata_header=None):\n    if not metadata_header:\n        metadata = [str(x) for x in metadata]\n    else:\n        assert len(metadata_header) == len(metadata[0]), \\\n            'len of header must be equal to the number of columns in metadata'\n        metadata = ['\\t'.join(str(e) for e in l)\n                    for l in [metadata_header] + metadata]\n\n    named_path = os.path.join(save_path, 'metadata.tsv')\n\n    with open(named_path, 'w', encoding='utf8') as f:\n        for x in metadata:\n            f.write(x + '\\n')\n    maybe_upload_file(named_path)\n\n\n# https://github.com/tensorflow/tensorboard/issues/44 image label will be squared\ndef make_sprite(label_img, save_path):\n    import math\n\n    import numpy as np\n    from PIL import Image\n\n    from .utils import make_grid\n    from .x2num import make_np\n    # this ensures the sprite image has correct dimension as described in\n    # https://www.tensorflow.org/get_started/embedding_viz\n    # There are some constraints for the sprite image:\n    # 1. The sprite image should be square.\n    # 2. Each image patch in the sprite image should be square.\n    # 2. The content is row major order, so we can padding the image on the\n    #    bottom, but not on the right, otherwise, TB will treat some padded location\n    #    as images to be shown.\n    # args: label_img: tensor in NCHW\n\n    assert label_img.shape[2] == label_img.shape[3], 'Image should be square, see tensorflow/tensorboard#670'\n    total_pixels = label_img.shape[0] * label_img.shape[2] * label_img.shape[3]\n    pixels_one_side = total_pixels ** 0.5\n    number_of_images_per_row = int(math.ceil(pixels_one_side / label_img.shape[3]))\n    arranged_img_CHW = make_grid(make_np(label_img), ncols=number_of_images_per_row)\n    arranged_img_HWC = arranged_img_CHW.transpose(1, 2, 0)  # chw -> hwc\n\n    sprite_size = arranged_img_CHW.shape[2]\n    assert sprite_size <= TB_MAX_SPRITE_SIZE, 'Sprite too large, see label_img shape limits'\n    arranged_augment_square_HWC = np.ndarray((sprite_size, sprite_size, 3))\n    arranged_augment_square_HWC[:arranged_img_HWC.shape[0], :, :] = arranged_img_HWC\n    im = Image.fromarray(np.uint8((arranged_augment_square_HWC * 255).clip(0, 255)))\n    named_path = os.path.join(save_path, 'sprite.png')\n    im.save(named_path)\n    maybe_upload_file(named_path)\n\n\ndef append_pbtxt(metadata, label_img, save_path, subdir, global_step, tag):\n    from posixpath import join\n    named_path = os.path.join(save_path, 'projector_config.pbtxt')\n    with open(named_path, 'a') as f:\n        # step = os.path.split(save_path)[-1]\n        f.write('embeddings {\\n')\n        f.write(f'tensor_name: \"{tag}:{str(global_step).zfill(5)}\"\\n')\n        f.write('tensor_path: \"{}\"\\n'.format(join(subdir, 'tensors.tsv')))\n        if metadata is not None:\n            f.write('metadata_path: \"{}\"\\n'.format(\n                join(subdir, 'metadata.tsv')))\n        if label_img is not None:\n            f.write('sprite {\\n')\n            f.write('image_path: \"{}\"\\n'.format(join(subdir, 'sprite.png')))\n            f.write(f'single_image_dim: {label_img.shape[3]}\\n')\n            f.write(f'single_image_dim: {label_img.shape[2]}\\n')\n            f.write('}\\n')\n        f.write('}\\n')\n    maybe_upload_file(named_path)\n\n\ndef make_mat(matlist, save_path):\n    named_path = os.path.join(save_path, 'tensors.tsv')\n    with open(named_path, 'w') as f:\n        for x in matlist:\n            x = [str(i.item()) for i in x]\n            f.write('\\t'.join(x) + '\\n')\n    maybe_upload_file(named_path)\n"
  },
  {
    "path": "tensorboardX/event_file_writer.py",
    "content": "# Copyright 2015 The TensorFlow Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ==============================================================================\n\"\"\"Writes events to disk in a logdir.\"\"\"\n\n\nimport multiprocessing\nimport os\nimport queue\nimport socket\nimport threading\nimport time\n\nfrom .proto import event_pb2\nfrom .record_writer import RecordWriter, directory_check\n\n\nclass EventsWriter:\n    '''Writes `Event` protocol buffers to an event file.'''\n\n    def __init__(self, file_prefix, filename_suffix=''):\n        '''\n        Events files have a name of the form\n        '/some/file/path/events.out.tfevents.[timestamp].[hostname]'\n        '''\n        self._file_name = file_prefix + \".out.tfevents.\" + str(time.time())[:10] + \".\" +\\\n            socket.gethostname() + filename_suffix\n        self._num_outstanding_events = 0\n        self._py_recordio_writer = RecordWriter(self._file_name)\n        # Initialize an event instance.\n        self._event = event_pb2.Event()\n        self._event.wall_time = time.time()\n        self._event.file_version = 'brain.Event:2'\n        self._lock = threading.Lock()\n        self.write_event(self._event)\n\n    def write_event(self, event):\n        '''Append \"event\" to the file.'''\n\n        # Check if event is of type event_pb2.Event proto.\n        if not isinstance(event, event_pb2.Event):\n            raise TypeError(\"Expected an event_pb2.Event proto, \"\n                            f\" but got {type(event)}\")\n        return self._write_serialized_event(event.SerializeToString())\n\n    def _write_serialized_event(self, event_str):\n        with self._lock:\n            self._num_outstanding_events += 1\n            self._py_recordio_writer.write(event_str)\n\n    def flush(self):\n        '''Flushes the event file to disk.'''\n        with self._lock:\n            self._num_outstanding_events = 0\n            self._py_recordio_writer.flush()\n        return True\n\n    def close(self):\n        '''Call self.flush().'''\n        return_value = self.flush()\n        with self._lock:\n            self._py_recordio_writer.close()\n        return return_value\n\n\nclass EventFileWriter:\n    \"\"\"Writes `Event` protocol buffers to an event file.\n\n    The `EventFileWriter` class creates an event file in the specified directory,\n    and asynchronously writes Event protocol buffers to the file. The Event file\n    is encoded using the tfrecord format, which is similar to RecordIO.\n    \"\"\"\n\n    def __init__(self, logdir, max_queue_size=10, flush_secs=120, filename_suffix=''):\n        \"\"\"Creates a `EventFileWriter` and an event file to write to.\n\n        On construction the summary writer creates a new event file in `logdir`.\n        This event file will contain `Event` protocol buffers, which are written to\n        disk via the add_event method.\n        The other arguments to the constructor control the asynchronous writes to\n        the event file:\n\n        Args:\n          logdir: A string. Directory where event file will be written.\n          max_queue_size: Integer. Size of the queue for pending events and summaries.\n          flush_secs: Number. How often, in seconds, to flush the\n            pending events and summaries to disk.\n        \"\"\"\n        self._logdir = logdir\n        directory_check(self._logdir)\n        self._event_queue = multiprocessing.Queue(max_queue_size)\n        self._ev_writer = EventsWriter(os.path.join(\n            self._logdir, \"events\"), filename_suffix)\n        self._flush_secs = flush_secs\n        self._closed = False\n        self._worker = _EventLoggerThread(self._event_queue, self._ev_writer,\n                                          flush_secs)\n\n        self._worker.start()\n\n    def get_logdir(self):\n        \"\"\"Returns the directory where event file will be written.\"\"\"\n        return self._logdir\n\n    def reopen(self):\n        \"\"\"Reopens the EventFileWriter.\n        Can be called after `close()` to add more events in the same directory.\n        The events will go into a new events file and a new write/flush worker\n        is created. Does nothing if the EventFileWriter was not closed.\n        \"\"\"\n        if self._closed:\n            self._closed = False\n            self._worker = _EventLoggerThread(\n                self._event_queue, self._ev_writer, self._flush_secs\n            )\n            self._worker.start()\n\n    def add_event(self, event):\n        \"\"\"Adds an event to the event file.\n\n        Args:\n          event: An `Event` protocol buffer.\n        \"\"\"\n        if not self._closed:\n            self._event_queue.put(event)\n\n    def flush(self):\n        \"\"\"Flushes the event file to disk.\n\n        Call this method to make sure that all pending events have been written to\n        disk.\n        \"\"\"\n        if not self._closed:\n            self._ev_writer.flush()\n\n    def close(self):\n        \"\"\"Performs a final flush of the event file to disk, stops the\n        write/flush worker and closes the file. Call this method when you do not\n        need the summary writer anymore.\n        \"\"\"\n        if not self._closed:\n            self.flush()\n            self._worker.stop()\n            self._ev_writer.close()\n            self._event_queue.close()\n            self._event_queue = None  # this is critical\n            self._worker = None  # this is critical too\n            self._closed = True\n\n\nclass _EventLoggerThread(threading.Thread):\n    \"\"\"Thread that logs events.\"\"\"\n\n    def __init__(self, queue, record_writer, flush_secs):\n        \"\"\"Creates an _EventLoggerThread.\n        Args:\n          queue: A Queue from which to dequeue data.\n          record_writer: An data writer. Used to log brain events for\n           the visualizer.\n          flush_secs: How often, in seconds, to flush the\n            pending file to disk.\n        \"\"\"\n        threading.Thread.__init__(self)\n        self.daemon = True\n        self._queue = queue\n        self._record_writer = record_writer\n        self._flush_secs = flush_secs\n        # The first data will be flushed immediately.\n        self._next_flush_time = 0\n        self._has_pending_data = False\n        self._shutdown_signal = object()\n\n    def stop(self):\n        self._queue.put(self._shutdown_signal)\n        self.join()\n\n    def run(self):\n        # Here wait on the queue until an data appears, or till the next\n        # time to flush the writer, whichever is earlier. If we have an\n        # data, write it. If not, an empty queue exception will be raised\n        # and we can proceed to flush the writer.\n        while True:\n            now = time.time()\n            queue_wait_duration = self._next_flush_time - now\n            data = None\n            try:\n                if queue_wait_duration > 0:\n                    data = self._queue.get(True, queue_wait_duration)\n                else:\n                    data = self._queue.get(False)\n\n                if type(data) == type(self._shutdown_signal):\n                    return\n                self._record_writer.write_event(data)\n                self._has_pending_data = True\n            except queue.Empty:\n                pass\n\n            now = time.time()\n            if now > self._next_flush_time:\n                if self._has_pending_data:\n                    # Small optimization - if there are no pending data,\n                    # there's no need to flush, since each flush can be\n                    # expensive (e.g. uploading a new file to a server).\n                    self._record_writer.flush()\n                    self._has_pending_data = False\n                # Do it again in flush_secs.\n                self._next_flush_time = now + self._flush_secs\n"
  },
  {
    "path": "tensorboardX/global_writer.py",
    "content": "import multiprocessing as mp\nfrom multiprocessing import Value\n\nfrom .writer import SummaryWriter\n\nglobal _writer\n_writer = None\n\n\nclass GlobalSummaryWriter:\n    \"\"\"A class that implements an event writer that supports concurrent logging and global logging across\n    different modules.\n\n    The GlobalSummaryWriter class provides a set of API to write TensorBoard events from different processes.\n    The writer instance can be accessed from different processes or modules. Also, the instance maintains\n    the ``global_step`` value itself so that the interleaved requests to write an event will not conflict\n    each other. This ensures that the resulting event file is TensorBoard compatible.\n    With GlobalSummaryWriter, you can easily log the metrics of your parallel-trained model.\n    The GlobalSummaryWriter and also be used like the ``logging`` module of Python.\n    See how ``getSummaryWriter`` is used below.\n    \"\"\"\n    def __init__(self, logdir=None, comment='', purge_step=None, max_queue=10,\n                 flush_secs=120, filename_suffix='', write_to_disk=True, log_dir=None,\n                 coalesce_process=True, **kwargs):\n        \"\"\"\n        Initialize a GlobalSummaryWriter. The resulting instance will maintain a monotonically\n        increasing ``global_step`` for the the event to be written. So there is no need to pass\n        the global_step when calling its member functions such as ``add_scalar()``.\n        All arguments for the constructor will be passed to the ordinary ``SummaryWriter.__init__()`` directly.\n\n        Examples::\n\n            import multiprocessing as mp\n            import numpy as np\n            import time\n            from tensorboardX import GlobalSummaryWriter\n            w = GlobalSummaryWriter()\n\n            def train(x):\n                w.add_scalar('poolmap/1', x*np.random.randn())\n                time.sleep(0.05*np.random.randint(0, 10))\n                w.add_scalar('poolmap/2', x*np.random.randn())\n\n            with mp.Pool() as pool:\n                pool.map(train, range(100))\n\n        Expected result:\n\n        .. image:: _static/img/tensorboard/add_scalar_global.png\n           :scale: 50 %\n\n        \"\"\"\n\n        self.smw = SummaryWriter(logdir=logdir, comment=comment, purge_step=purge_step, max_queue=max_queue,\n                                 flush_secs=flush_secs, filename_suffix=filename_suffix, write_to_disk=write_to_disk,\n                                 log_dir=log_dir)\n        self.lock = mp.Lock()\n        self.scalar_tag_to_step = mp.Manager().dict()\n        self.image_tag_to_step = mp.Manager().dict()\n        self.histogram_tag_to_step = mp.Manager().dict()\n        self.text_tag_to_step = mp.Manager().dict()\n        self.audio_tag_to_step = mp.Manager().dict()\n\n    def add_scalar(self, tag, scalar_value, walltime=None):\n        \"\"\"Add scalar data to summary.\n\n        Args:\n            tag (string): Data identifier\n            scalar_value (float): Value to save\n            walltime (float): Optional override default walltime (time.time()) of event\n\n        \"\"\"\n        with self.lock:\n            if tag in self.scalar_tag_to_step:\n                self.scalar_tag_to_step[tag] += 1\n            else:\n                self.scalar_tag_to_step[tag] = 0\n\n            self.smw.add_scalar(tag, scalar_value, self.scalar_tag_to_step[tag], walltime)\n\n    # def add_histogram(self, tag, values, bins='tensorflow', walltime=None, max_bins=None):\n    #     \"\"\"Add histogram to summary.\n\n    #     Args:\n    #         tag (string): Data identifier\n    #         values (torch.Tensor, numpy.array): Values to build histogram\n    #         bins (string): One of {'tensorflow','auto', 'fd', ...}.\n    #           This determines how the bins are made. You can find\n    #           other options in: https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html\n    #         walltime (float): Optional override default walltime (time.time()) of event\n\n    #     \"\"\"\n    #     with self.new_tag_mutex.get_lock():\n    #         if tag in self.histogram_tag_to_step:\n    #             self.histogram_tag_to_step[tag] += 1\n    #         else:\n    #             self.histogram_tag_to_step[tag] = 0\n    #         self.smw.add_histogram(tag,\n    #                                values,\n    #                                self.histogram_tag_to_step[tag],\n    #                                bins=bins,\n    #                                walltime=walltime,\n    #                                max_bins=max_bins)\n\n    def add_image(self, tag, img_tensor, walltime=None, dataformats='CHW'):\n        \"\"\"Add image data to summary.\n\n        Note that this requires the ``pillow`` package.\n\n        Args:\n            tag (string): Data identifier\n            img_tensor (torch.Tensor, numpy.array): An `uint8` or `float`\n                Tensor of shape `[channel, height, width]` where `channel` is 1, 3, or 4.\n                The elements in img_tensor can either have values in [0, 1] (float32) or [0, 255] (uint8).\n                Users are responsible to scale the data in the correct range/type.\n            walltime (float): Optional override default walltime (time.time()) of event.\n            dataformats (string): This parameter specifies the meaning of each dimension of the input tensor.\n        Shape:\n            img_tensor: Default is :math:`(3, H, W)`. You can use ``torchvision.utils.make_grid()`` to\n            convert a batch of tensor into 3xHxW format or use ``add_images()`` and let us do the job.\n            Tensor with :math:`(1, H, W)`, :math:`(H, W)`, :math:`(H, W, 3)` is also suitible as long as\n            corresponding ``dataformats`` argument is passed. e.g. CHW, HWC, HW.\n        \"\"\"\n        with self.lock:\n            if tag in self.image_tag_to_step:\n                self.image_tag_to_step[tag] += 1\n            else:\n                self.image_tag_to_step[tag] = 0\n\n            self.smw.add_image(tag, img_tensor, self.image_tag_to_step[tag], walltime=walltime, dataformats=dataformats)\n\n    # def add_audio(self, tag, snd_tensor, sample_rate=44100, walltime=None):\n    #     \"\"\"Add audio data to summary.\n\n    #     Args:\n    #         tag (string): Data identifier\n    #         snd_tensor (torch.Tensor): Sound data\n    #         sample_rate (int): sample rate in Hz\n    #         walltime (float): Optional override default walltime (time.time()) of event\n    #     Shape:\n    #         snd_tensor: :math:`(1, L)`. The values should lie between [-1, 1].\n    #     \"\"\"\n\n    #     with self.new_tag_mutex.get_lock():\n    #         if tag in self.audio_tag_to_step:\n    #             self.audio_tag_to_step[tag] += 1\n    #         else:\n    #             self.audio_tag_to_step[tag] = 0\n\n    #         self.smw.add_audio(tag, snd_tensor, self.audio_tag_to_step[tag], sample_rate=44100, walltime=walltime)\n\n    def add_text(self, tag, text_string, walltime=None):\n        \"\"\"Add text data to summary.\n\n        Args:\n            tag (string): Data identifier\n            text_string (string): String to save\n            walltime (float): Optional override default walltime (time.time()) of event\n\n        \"\"\"\n        with self.lock:\n            if tag in self.text_tag_to_step:\n                self.text_tag_to_step[tag] += 1\n            else:\n                self.text_tag_to_step[tag] = 0\n\n            self.smw.add_text(tag, text_string, global_step=self.text_tag_to_step[tag], walltime=walltime)\n\n    @staticmethod\n    def getSummaryWriter():\n        \"\"\"Get the writer from global namespace.\n\n        Examples::\n\n            # main.py\n            import global_1\n            import global_2\n\n            # global1.py\n            from tensorboardX import GlobalSummaryWriter\n            writer = GlobalSummaryWriter.getSummaryWriter()  # This creates a new instance.\n            writer.add_text('my_log', 'greeting from global1')\n\n            # global2.py\n            from tensorboardX import GlobalSummaryWriter\n            writer = GlobalSummaryWriter.getSummaryWriter()  # Get the instance in global1.py.\n            writer.add_text('my_log', 'greeting from global2')\n\n        \"\"\"\n        global _writer\n        if not hasattr(_writer, \"smw\") or _writer.smw is None:\n            _writer = GlobalSummaryWriter()\n\n        print(\"Using the global logger in:\", _writer.smw.file_writer.get_logdir())\n        return _writer\n\n    @property\n    def file_writer(self):\n        return self.smw._get_file_writer()\n\n    def close(self):\n        self.smw.flush()\n        self.smw.close()\n"
  },
  {
    "path": "tensorboardX/onnx_graph.py",
    "content": "from .proto.attr_value_pb2 import AttrValue\nfrom .proto.graph_pb2 import GraphDef\nfrom .proto.node_def_pb2 import NodeDef\nfrom .proto.tensor_shape_pb2 import TensorShapeProto\nfrom .proto.versions_pb2 import VersionDef\n\n\ndef load_onnx_graph(fname):\n    import onnx\n    m = onnx.load(fname)\n    g = m.graph\n    return parse(g)\n\n\ndef parse(graph):\n    nodes_proto = []\n    nodes = []\n    import itertools\n    for node in itertools.chain(graph.input, graph.output):\n        nodes_proto.append(node)\n\n    for node in nodes_proto:\n        print(node.name)\n        shapeproto = TensorShapeProto(\n            dim=[TensorShapeProto.Dim(size=d.dim_value) for d in node.type.tensor_type.shape.dim])\n        nodes.append(NodeDef(\n            name=node.name.encode(encoding='utf_8'),\n            op='Variable',\n            input=[],\n            attr={\n                'dtype': AttrValue(type=node.type.tensor_type.elem_type),\n                'shape': AttrValue(shape=shapeproto),\n            })\n        )\n\n    for node in graph.node:\n        attr = []\n        for s in node.attribute:\n            attr.append(' = '.join([str(f[1]) for f in s.ListFields()]))\n        attr = ', '.join(attr).encode(encoding='utf_8')\n        print(node.output[0])\n        nodes.append(NodeDef(\n            name=node.output[0].encode(encoding='utf_8'),\n            op=node.op_type,\n            input=node.input,\n            attr={'parameters': AttrValue(s=attr)},\n        ))\n\n    # two pass token replacement, appends opname to object id\n    mapping = {}\n    for node in nodes:\n        mapping[node.name] = node.op + '_' + node.name\n\n    return GraphDef(node=nodes, versions=VersionDef(producer=22))\n"
  },
  {
    "path": "tensorboardX/openvino_graph.py",
    "content": "from .proto.attr_value_pb2 import AttrValue\nfrom .proto.graph_pb2 import GraphDef\nfrom .proto.node_def_pb2 import NodeDef\nfrom .proto.tensor_shape_pb2 import TensorShapeProto\nfrom .proto.versions_pb2 import VersionDef\n\n\ndef load_openvino_graph(fname):\n    nodes = []\n\n    import xml.etree.ElementTree as ET\n    tree = ET.parse(fname)\n    root = tree.getroot()\n    layers = root.find('layers')\n    edges = root.find('edges')\n    layers_dict = {}\n    for layer in layers:\n        nodeid = layer.attrib['id']\n        name = layer.attrib['name']\n        layers_dict[nodeid] = name\n    for edge in edges:\n        nodeinput = edge.attrib['from-layer']\n        nodeself = edge.attrib['to-layer']\n        attr = []\n        # for s in node.attribute:\n        #     attr.append(' = '.join([str(f[1]) for f in s.ListFields()]))\n        attr = ', '.join(attr).encode(encoding='utf_8')\n        nodes.append(NodeDef(\n            name=layers_dict[nodeself],\n            op='op',\n            input=[str(layers_dict[nodeinput])],\n            attr={'parameters': AttrValue(s=attr)},\n        ))\n    return GraphDef(node=nodes, versions=VersionDef(producer=22))\n"
  },
  {
    "path": "tensorboardX/proto/__init__.py",
    "content": ""
  },
  {
    "path": "tensorboardX/proto/api.proto",
    "content": "/* Copyright 2019 The TensorFlow Authors. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n==============================================================================*/\n\n// Defines a proto3-based REST API that the HParams web-component of the plugin\n// would use to read data from a hyperparameter-tuning experiment.\n// This file defines the message types (resources) used\n// to pass information into and out of the API methods. These messages will be\n// transmitted using proto3 native JSON encoding. See http_api.md for a\n// description of the actual HTTP API.\n\n// General note: in what follows we use the field 'name' of a message to\n// stores its id. We avoid calling this field 'id' since it is a reserved word\n// in Python, as well as to be more compliant with the API style guide\n// detailed in https://cloud.google.com/apis/design/.\n\n// IMPORTANT: If you change any of the messages here, make sure to also update\n// api.d.ts accordingly.\n\nsyntax = \"proto3\";\n\nimport \"google/protobuf/struct.proto\";\n\npackage tensorboardX.hparam;\n\n// Represents a single experiment.\n// An experiment consists of multiple \"sessions\". Typically, in each session\n// a model is trained for a given set of hyperparameter values. In each session\n// a training program may generate one or more series of real numbers--each\n// containing the evaluation of some metric on the model at different training\n// steps.\n//\n// Note that Sessions can consist of multiple Tensorboard \"runs\", since in\n// a distributed Tensorflow deployment, training can be accomplished using\n// several cooporating processes, each one emitting Summary data to a different\n// log directory or run. For example, in a single session one process could\n// periodically compute the loss on the validation set, and another could\n// compute the loss on the training set.\n// NEXT_TAG: 7\nmessage Experiment {\n  // -- Experiments are scoped by a global name.\n  // Currently, Tensorboard supports displaying data for a single experiment.\n  string name = 6;\n\n  // A description. May contain markdown.\n  string description = 1;\n\n  // An id for the owning user or group.\n  string user = 2;\n\n  // The time the experiment was created. In seconds since the UNIX epoch.\n  double time_created_secs = 3;\n\n  // Information about each hyperparameter used in the experiment.\n  repeated HParamInfo hparam_infos = 4;\n\n  // Information about each metric used in the experiment.\n  repeated MetricInfo metric_infos = 5;\n}\n\n// NEXT_TAG: 7\nmessage HParamInfo {\n  // An id for the hyperparameter.\n  string name = 1;\n\n  // A string used to display the hyperparameter in the UI. If empty, the UI\n  // will display the 'name' field.\n  string display_name = 2;\n\n  // A description. May contain markdown.\n  string description = 3;\n\n  // The data type of this hyperparameter.\n  DataType type = 4;\n\n  // Specifies the set of values this hyperparameter can hold. The UI assumes\n  // every instance of this hyperparameter will hold a value from this set. It\n  // is used by the UI to allow filtering so that only session groups (see\n  // below) whose associated hyperparameter value \"passes\" the filter are\n  // displayed. If this is not populated, the domain is assumed to be the\n  // entire domain of the type of the hyperparameter.\n  oneof domain {\n    // A discrete set of the values this hyperparameter can hold.\n    google.protobuf.ListValue domain_discrete = 5;\n    // Numeric data type only. The (real) interval from which values of this\n    // hyperparameter are taken.\n    Interval domain_interval = 6;\n  }\n}\n\nenum DataType {\n  DATA_TYPE_UNSET = 0;\n  DATA_TYPE_STRING = 1;\n  DATA_TYPE_BOOL = 2;\n  DATA_TYPE_FLOAT64 = 3;\n}\n\n// Represents the closed interval [min_value, max_value] of the real line.\n// NEXT_TAG: 3\nmessage Interval {\n  double min_value = 1;\n  double max_value = 2;\n}\n\n// NEXT_TAG: 3\nmessage MetricName {\n  // An identifier for a metric. A metric is a real-valued function of the\n  // model. The UI can plot metrics for a session evaluated on the model at\n  // different training steps.\n  //\n  // We identify a metric by a (group, tag) pair of strings. The UI treats\n  // both of these as opaque strings. The only requirement is that the pair\n  // uniquely identifies a metric in the experiment.\n  //\n  // We use a pair so the UI could allow the user to group metrics for a\n  // single session by either group or tag to be displayed in the same chart.\n  // For instance, one can set the metric group to correspond to the dataset\n  // on which the model was evaluated, and the UI can then display different\n  // metrics describing the same underlying computation and using different\n  // datasets, on the same chart.\n  //\n  // When exporting summaries from Tensorflow, in a typical setup, a\n  // training session exports evaluations of metrics at different training steps\n  // as Scalar-plugin summaries--each having a run of the form\n  // \"<session_base_log_dir>/<sub_dir>\", and some associated tag. The same\n  // metric for different sessions would use the same sub_dir and tag, but\n  // would have a different session_base_log_dir. For example, a session\n  // computing two metrics: model loss on the validation set and model loss on\n  // the training set, can export these as scalar summaries with the tag \"loss\"\n  // and runs session_base_log_dir/validation and session_base_log_dir/training,\n  // respectively. In this setup, the 'group' field can be populated with\n  // the \"sub_dir\" associated with the metric, and the 'tag' field can be\n  // populated with the tag: \"loss\".\n  string group = 1;\n  string tag = 2;\n}\n\n// NEXT_TAG: 6\nmessage MetricInfo {\n  MetricName name = 1;\n\n  // A string used to display the metric in the UI. If empty, the UI\n  // will display the 'name' field.\n  string display_name = 3;\n\n  // A description. May contain markdown.\n  string description = 4;\n\n  // The dataset type (validation, training) on which the metric is computed.\n  DatasetType dataset_type = 5;\n}\n\nenum DatasetType {\n  DATASET_UNKNOWN = 0;\n  DATASET_TRAINING = 1;\n  DATASET_VALIDATION = 2;\n}\n\n// In some experiments, the user trains a model with the same set of\n// hyperparameters multiple times to get the distribution of metric\n// evaluations, when the computation (such as the training algorithm, or metric\n// evaluation) is non-deterministic. To make the UI aware of this, sessions\n// are partitioned into groups: each group consists of all training sessions\n// which share the same values for the hyperparameters. In experiments with no\n// repeated executions, each group consists of exactly one session.\n// NEXT_TAG: 6\nmessage SessionGroup {\n  string name = 1;\n\n  // Stores the hyperparameters for sessions within this group as a mapping\n  // from the hyperparameter name to its value.\n  map<string /* hparam name */, google.protobuf.Value> hparams = 2;\n\n  // A list of pairs (metric, value)--one for each metric in the experiment.\n  // The value denotes the evaluation of the corresponding metric on\n  // the model aggregated across the sessions in this group. The exact method\n  // of aggregation is specified in the comments of ListSessionGroupsRequest.\n  // Unfortunately, we can't store these as a map, since proto maps can't have\n  // message keys.\n  repeated MetricValue metric_values = 3;\n\n  // The sessions belonging to this group.\n  repeated Session sessions = 4;\n\n  // An optional link to a web page monitoring the session group.\n  string monitor_url = 5;\n}\n\n// NEXT_TAG: 5\nmessage MetricValue {\n  MetricName name = 1;\n\n  double value = 2;\n\n  // The training step at which this value is computed.\n  int32 training_step = 3;\n\n  // The wall time in seconds since UNIX epoch at which this value is computed.\n  double wall_time_secs = 4;\n}\n\n// NEXT_TAG: 8\nmessage Session {\n  // An id for the session. Unique within an experiment (not just the group).\n  string name = 1;\n\n  // In seconds since the UNIX epoch.\n  double start_time_secs = 2;\n\n  // In seconds since the UNIX epoch.\n  // May be 0 if unavailable or the session has not finished yet.\n  double end_time_secs = 3;\n\n  // May be STATUS_UNKNOWN if unavailable.\n  Status status = 4;\n\n  // A URI for a resource that will allow the user to reconstruct the model for\n  // this session. E.g., in Tensorflow this could point to a directory where the\n  // checkpoints are stored. Currently, this is treated opaquely by the UI\n  // and only displayed to the user as it is passed here.\n  string model_uri = 5;\n\n  // Stores each metric evaluation on the model at the current training step.\n  // Unfortunately, we can't store these as a map, since proto maps can't have\n  // message keys.\n  repeated MetricValue metric_values = 6;\n\n  // An optional link to a web page monitoring the session.\n  string monitor_url = 7;\n}\n\n// Represents the status of a Session.\nenum Status {\n  STATUS_UNKNOWN = 0;\n  STATUS_SUCCESS = 1;\n  STATUS_FAILURE = 2;\n  STATUS_RUNNING = 3;\n}\n\n// Parameters for a GetExperiment API call.\n// Each experiment is scoped by a unique global id.\n// NEXT_TAG: 2\nmessage GetExperimentRequest {\n  // REQUIRED\n  string experiment_name = 1;\n}\n\n// Parameters for a ListSessionGroups API call.\n// Computes a list of the current session groups allowing for filtering and\n// sorting by metrics and hyperparameter values. Returns a \"slice\" of\n// that list specified by start_index and slice_size.\n// NEXT_TAG: 8\nmessage ListSessionGroupsRequest {\n  string experiment_name = 6;\n\n  // Filters the set of sessions (from which the session groups are formed) to\n  // contain only these sessions whose status is contained in\n  // 'allowed_statuses'.\n  repeated Status allowed_statuses = 7;\n\n  // A list of ColParams messages--one for each \"column\" of a session group. A\n  // session group column contains either a metric evaluated at the current\n  // reported computation step or a hyperparameter value. In addition to\n  // 'regular' values, a column may take on a special 'missing-value' which\n  // denotes that the hyperparameter or metric is not available\n  // for the session group (for example, if the metric is not used in the\n  // group).\n  //\n  // The ColParams messages in the repeated field below configure filtering and\n  // sorting of the resulting collection of session groups. See the comments of\n  // the fields in the ColParam message below for more details.\n  repeated ColParams col_params = 1;\n\n  // Fields controlling how to aggregate metrics across sessions within a\n  // session group.\n  // If aggregation_type is AGGREGATION_AVG, each metric value of the\n  // session group is the average of the values of the metric across the\n  // sessions.\n  // Otherwise, the session group metric values are taken directly from a\n  // \"representative\" session in the group, selected as a session for which\n  // primary_metric takes on its minimum, maximum, or median value, as\n  // specified by the choice of aggregation_type (for median, if the number of\n  // sessions in the group is even, a session with a lower \"middle\" value is\n  // chosen as the representative session).\n  AggregationType aggregation_type = 2;\n\n  // See comment for 'aggregation_type' above.\n  MetricName aggregation_metric = 3;\n\n  // The next two parameters determine the \"slice\" of the full list of\n  // session groups--sorted and filtered by the parameters above--to return.\n  // The 0-based index of the first session group to return.\n  int32 start_index = 4;\n\n  // The number of session groups to return starting at the session group\n  // indexed by 'start_index'. The actual number of session groups returned\n  // is min{slice_size, total_size - start_index}, where\n  // total_size is the number of session groups in the full list\n  // sorted and filtered by the parameters above (if start_index > total_size\n  // no session groups are returned).\n  int32 slice_size = 5;\n}\n\n// Defines parmeters for a ListSessionGroupsRequest for a specific column.\n// See the comment for \"ListSessionGroupsRequest\" above for more details.\n// NEXT_TAG: 9\nmessage ColParams {\n  oneof name {\n    MetricName metric = 1;\n    string hparam = 2;\n  }\n\n  // Sorting.\n  // The final order of session groups in the response is defined by the sub\n  // collection of ColParams messages (out of the\n  // ListSessionGroupsRequest.col_params repeated field) whose 'order' field\n  // (below) is not ORDER_UNSPECIFIED. In each of the messages in this\n  // sub-collection, the next two fields specify the ordering of the values\n  // and missing_values in the associated column of the session group. The\n  // order of the ColParams messages themselves within the sub-collection\n  // determines the \"significance\" of the associated column as a sorting key:\n  // with the first being the primary sorting key, the second being the\n  // secondary sorting key, etc.\n  // Note: The 'session group name' is added as a least significant sorting\n  // key to the keys defined by the user, so the order in the response is always\n  // deterministic.\n  SortOrder order = 3;\n  // This field is ignored if order is ORDER_UNSPECIFIED.\n  // Otherwise, if true, missing values are ordered before every other value in\n  // the column; if false they are ordered after every other value in the\n  // column.\n  bool missing_values_first = 4;\n\n  // Filtering.\n  // The 'filter' oneof specifies a subset of the domain of the values a column\n  // may take. Only session groups with each of their column values belonging\n  // to this subset are included in the response. If this field is not\n  // specified, the subset is taken to be the entire column domain.\n  oneof filter {\n    // Only valid for string-valued hyperparameter columns. The subset is\n    // the set of all strings matching the regular expression stored\n    // in 'regexp' as a partial match (use '^<regexp>$' to have a full\n    // match against regexp).\n    string filter_regexp = 5;\n\n    // Only valid for numeric-valued columns. The subset is the given interval.\n    Interval filter_interval = 6;\n\n    // Valid for all data types. The subset is defined explicitly.\n    google.protobuf.ListValue filter_discrete = 7;\n  }\n  // Specifies whether to exclude session groups whose column value is missing\n  // from the response.\n  bool exclude_missing_values = 8;\n}\n\nenum SortOrder {\n  ORDER_UNSPECIFIED = 0;\n  ORDER_ASC = 1;\n  ORDER_DESC = 2;\n}\n\nenum AggregationType {\n  AGGREGATION_UNSET = 0;\n  AGGREGATION_AVG = 1;\n  AGGREGATION_MEDIAN = 2;\n  AGGREGATION_MIN = 3;\n  AGGREGATION_MAX = 4;\n}\n\n// See ListSessionGroups in http_api.md.\n// NEXT_TAG: 4\nmessage ListSessionGroupsResponse {\n  repeated SessionGroup session_groups = 1;\n\n  // Denotes the total number of session groups in the full filtered list.\n  // (Recall that this response may only be a slice).\n  // It is used by the UI to calculate total number of pages and can be\n  // set here to -1 to mean \"unknown\".\n  int32 total_size = 3;\n}\n\n// See ListMetricEvalsRequest in http_api.md.\n// NEXT_TAG: 4\nmessage ListMetricEvalsRequest {\n  string experiment_name = 3;\n  string session_name = 1;\n  MetricName metric_name = 2;\n}\n"
  },
  {
    "path": "tensorboardX/proto/api_pb2.py",
    "content": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: tensorboardX/proto/api.proto\n\"\"\"Generated protocol buffer code.\"\"\"\nfrom google.protobuf.internal import builder as _builder\nfrom google.protobuf import descriptor as _descriptor\nfrom google.protobuf import descriptor_pool as _descriptor_pool\nfrom google.protobuf import symbol_database as _symbol_database\n# @@protoc_insertion_point(imports)\n\n_sym_db = _symbol_database.Default()\n\n\nfrom google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2\n\n\nDESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\\n\\x1ctensorboardX/proto/api.proto\\x12\\x13tensorboardX.hparam\\x1a\\x1cgoogle/protobuf/struct.proto\\\"\\xc6\\x01\\n\\nExperiment\\x12\\x0c\\n\\x04name\\x18\\x06 \\x01(\\t\\x12\\x13\\n\\x0b\\x64\\x65scription\\x18\\x01 \\x01(\\t\\x12\\x0c\\n\\x04user\\x18\\x02 \\x01(\\t\\x12\\x19\\n\\x11time_created_secs\\x18\\x03 \\x01(\\x01\\x12\\x35\\n\\x0chparam_infos\\x18\\x04 \\x03(\\x0b\\x32\\x1f.tensorboardX.hparam.HParamInfo\\x12\\x35\\n\\x0cmetric_infos\\x18\\x05 \\x03(\\x0b\\x32\\x1f.tensorboardX.hparam.MetricInfo\\\"\\xed\\x01\\n\\nHParamInfo\\x12\\x0c\\n\\x04name\\x18\\x01 \\x01(\\t\\x12\\x14\\n\\x0c\\x64isplay_name\\x18\\x02 \\x01(\\t\\x12\\x13\\n\\x0b\\x64\\x65scription\\x18\\x03 \\x01(\\t\\x12+\\n\\x04type\\x18\\x04 \\x01(\\x0e\\x32\\x1d.tensorboardX.hparam.DataType\\x12\\x35\\n\\x0f\\x64omain_discrete\\x18\\x05 \\x01(\\x0b\\x32\\x1a.google.protobuf.ListValueH\\x00\\x12\\x38\\n\\x0f\\x64omain_interval\\x18\\x06 \\x01(\\x0b\\x32\\x1d.tensorboardX.hparam.IntervalH\\x00\\x42\\x08\\n\\x06\\x64omain\\\"0\\n\\x08Interval\\x12\\x11\\n\\tmin_value\\x18\\x01 \\x01(\\x01\\x12\\x11\\n\\tmax_value\\x18\\x02 \\x01(\\x01\\\"(\\n\\nMetricName\\x12\\r\\n\\x05group\\x18\\x01 \\x01(\\t\\x12\\x0b\\n\\x03tag\\x18\\x02 \\x01(\\t\\\"\\x9e\\x01\\n\\nMetricInfo\\x12-\\n\\x04name\\x18\\x01 \\x01(\\x0b\\x32\\x1f.tensorboardX.hparam.MetricName\\x12\\x14\\n\\x0c\\x64isplay_name\\x18\\x03 \\x01(\\t\\x12\\x13\\n\\x0b\\x64\\x65scription\\x18\\x04 \\x01(\\t\\x12\\x36\\n\\x0c\\x64\\x61taset_type\\x18\\x05 \\x01(\\x0e\\x32 .tensorboardX.hparam.DatasetType\\\"\\xa3\\x02\\n\\x0cSessionGroup\\x12\\x0c\\n\\x04name\\x18\\x01 \\x01(\\t\\x12?\\n\\x07hparams\\x18\\x02 \\x03(\\x0b\\x32..tensorboardX.hparam.SessionGroup.HparamsEntry\\x12\\x37\\n\\rmetric_values\\x18\\x03 \\x03(\\x0b\\x32 .tensorboardX.hparam.MetricValue\\x12.\\n\\x08sessions\\x18\\x04 \\x03(\\x0b\\x32\\x1c.tensorboardX.hparam.Session\\x12\\x13\\n\\x0bmonitor_url\\x18\\x05 \\x01(\\t\\x1a\\x46\\n\\x0cHparamsEntry\\x12\\x0b\\n\\x03key\\x18\\x01 \\x01(\\t\\x12%\\n\\x05value\\x18\\x02 \\x01(\\x0b\\x32\\x16.google.protobuf.Value:\\x02\\x38\\x01\\\"z\\n\\x0bMetricValue\\x12-\\n\\x04name\\x18\\x01 \\x01(\\x0b\\x32\\x1f.tensorboardX.hparam.MetricName\\x12\\r\\n\\x05value\\x18\\x02 \\x01(\\x01\\x12\\x15\\n\\rtraining_step\\x18\\x03 \\x01(\\x05\\x12\\x16\\n\\x0ewall_time_secs\\x18\\x04 \\x01(\\x01\\\"\\xd5\\x01\\n\\x07Session\\x12\\x0c\\n\\x04name\\x18\\x01 \\x01(\\t\\x12\\x17\\n\\x0fstart_time_secs\\x18\\x02 \\x01(\\x01\\x12\\x15\\n\\rend_time_secs\\x18\\x03 \\x01(\\x01\\x12+\\n\\x06status\\x18\\x04 \\x01(\\x0e\\x32\\x1b.tensorboardX.hparam.Status\\x12\\x11\\n\\tmodel_uri\\x18\\x05 \\x01(\\t\\x12\\x37\\n\\rmetric_values\\x18\\x06 \\x03(\\x0b\\x32 .tensorboardX.hparam.MetricValue\\x12\\x13\\n\\x0bmonitor_url\\x18\\x07 \\x01(\\t\\\"/\\n\\x14GetExperimentRequest\\x12\\x17\\n\\x0f\\x65xperiment_name\\x18\\x01 \\x01(\\t\\\"\\xc4\\x02\\n\\x18ListSessionGroupsRequest\\x12\\x17\\n\\x0f\\x65xperiment_name\\x18\\x06 \\x01(\\t\\x12\\x35\\n\\x10\\x61llowed_statuses\\x18\\x07 \\x03(\\x0e\\x32\\x1b.tensorboardX.hparam.Status\\x12\\x32\\n\\ncol_params\\x18\\x01 \\x03(\\x0b\\x32\\x1e.tensorboardX.hparam.ColParams\\x12>\\n\\x10\\x61ggregation_type\\x18\\x02 \\x01(\\x0e\\x32$.tensorboardX.hparam.AggregationType\\x12;\\n\\x12\\x61ggregation_metric\\x18\\x03 \\x01(\\x0b\\x32\\x1f.tensorboardX.hparam.MetricName\\x12\\x13\\n\\x0bstart_index\\x18\\x04 \\x01(\\x05\\x12\\x12\\n\\nslice_size\\x18\\x05 \\x01(\\x05\\\"\\xd9\\x02\\n\\tColParams\\x12\\x31\\n\\x06metric\\x18\\x01 \\x01(\\x0b\\x32\\x1f.tensorboardX.hparam.MetricNameH\\x00\\x12\\x10\\n\\x06hparam\\x18\\x02 \\x01(\\tH\\x00\\x12-\\n\\x05order\\x18\\x03 \\x01(\\x0e\\x32\\x1e.tensorboardX.hparam.SortOrder\\x12\\x1c\\n\\x14missing_values_first\\x18\\x04 \\x01(\\x08\\x12\\x17\\n\\rfilter_regexp\\x18\\x05 \\x01(\\tH\\x01\\x12\\x38\\n\\x0f\\x66ilter_interval\\x18\\x06 \\x01(\\x0b\\x32\\x1d.tensorboardX.hparam.IntervalH\\x01\\x12\\x35\\n\\x0f\\x66ilter_discrete\\x18\\x07 \\x01(\\x0b\\x32\\x1a.google.protobuf.ListValueH\\x01\\x12\\x1e\\n\\x16\\x65xclude_missing_values\\x18\\x08 \\x01(\\x08\\x42\\x06\\n\\x04nameB\\x08\\n\\x06\\x66ilter\\\"j\\n\\x19ListSessionGroupsResponse\\x12\\x39\\n\\x0esession_groups\\x18\\x01 \\x03(\\x0b\\x32!.tensorboardX.hparam.SessionGroup\\x12\\x12\\n\\ntotal_size\\x18\\x03 \\x01(\\x05\\\"}\\n\\x16ListMetricEvalsRequest\\x12\\x17\\n\\x0f\\x65xperiment_name\\x18\\x03 \\x01(\\t\\x12\\x14\\n\\x0csession_name\\x18\\x01 \\x01(\\t\\x12\\x34\\n\\x0bmetric_name\\x18\\x02 \\x01(\\x0b\\x32\\x1f.tensorboardX.hparam.MetricName*`\\n\\x08\\x44\\x61taType\\x12\\x13\\n\\x0f\\x44\\x41TA_TYPE_UNSET\\x10\\x00\\x12\\x14\\n\\x10\\x44\\x41TA_TYPE_STRING\\x10\\x01\\x12\\x12\\n\\x0e\\x44\\x41TA_TYPE_BOOL\\x10\\x02\\x12\\x15\\n\\x11\\x44\\x41TA_TYPE_FLOAT64\\x10\\x03*P\\n\\x0b\\x44\\x61tasetType\\x12\\x13\\n\\x0f\\x44\\x41TASET_UNKNOWN\\x10\\x00\\x12\\x14\\n\\x10\\x44\\x41TASET_TRAINING\\x10\\x01\\x12\\x16\\n\\x12\\x44\\x41TASET_VALIDATION\\x10\\x02*X\\n\\x06Status\\x12\\x12\\n\\x0eSTATUS_UNKNOWN\\x10\\x00\\x12\\x12\\n\\x0eSTATUS_SUCCESS\\x10\\x01\\x12\\x12\\n\\x0eSTATUS_FAILURE\\x10\\x02\\x12\\x12\\n\\x0eSTATUS_RUNNING\\x10\\x03*A\\n\\tSortOrder\\x12\\x15\\n\\x11ORDER_UNSPECIFIED\\x10\\x00\\x12\\r\\n\\tORDER_ASC\\x10\\x01\\x12\\x0e\\n\\nORDER_DESC\\x10\\x02*\\x7f\\n\\x0f\\x41ggregationType\\x12\\x15\\n\\x11\\x41GGREGATION_UNSET\\x10\\x00\\x12\\x13\\n\\x0f\\x41GGREGATION_AVG\\x10\\x01\\x12\\x16\\n\\x12\\x41GGREGATION_MEDIAN\\x10\\x02\\x12\\x13\\n\\x0f\\x41GGREGATION_MIN\\x10\\x03\\x12\\x13\\n\\x0f\\x41GGREGATION_MAX\\x10\\x04\\x62\\x06proto3')\n\n_globals = globals()\n_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)\n_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tensorboardX.proto.api_pb2', _globals)\nif _descriptor._USE_C_DESCRIPTORS == False:\n\n  DESCRIPTOR._options = None\n  _SESSIONGROUP_HPARAMSENTRY._options = None\n  _SESSIONGROUP_HPARAMSENTRY._serialized_options = b'8\\001'\n  _globals['_DATATYPE']._serialized_start=2370\n  _globals['_DATATYPE']._serialized_end=2466\n  _globals['_DATASETTYPE']._serialized_start=2468\n  _globals['_DATASETTYPE']._serialized_end=2548\n  _globals['_STATUS']._serialized_start=2550\n  _globals['_STATUS']._serialized_end=2638\n  _globals['_SORTORDER']._serialized_start=2640\n  _globals['_SORTORDER']._serialized_end=2705\n  _globals['_AGGREGATIONTYPE']._serialized_start=2707\n  _globals['_AGGREGATIONTYPE']._serialized_end=2834\n  _globals['_EXPERIMENT']._serialized_start=84\n  _globals['_EXPERIMENT']._serialized_end=282\n  _globals['_HPARAMINFO']._serialized_start=285\n  _globals['_HPARAMINFO']._serialized_end=522\n  _globals['_INTERVAL']._serialized_start=524\n  _globals['_INTERVAL']._serialized_end=572\n  _globals['_METRICNAME']._serialized_start=574\n  _globals['_METRICNAME']._serialized_end=614\n  _globals['_METRICINFO']._serialized_start=617\n  _globals['_METRICINFO']._serialized_end=775\n  _globals['_SESSIONGROUP']._serialized_start=778\n  _globals['_SESSIONGROUP']._serialized_end=1069\n  _globals['_SESSIONGROUP_HPARAMSENTRY']._serialized_start=999\n  _globals['_SESSIONGROUP_HPARAMSENTRY']._serialized_end=1069\n  _globals['_METRICVALUE']._serialized_start=1071\n  _globals['_METRICVALUE']._serialized_end=1193\n  _globals['_SESSION']._serialized_start=1196\n  _globals['_SESSION']._serialized_end=1409\n  _globals['_GETEXPERIMENTREQUEST']._serialized_start=1411\n  _globals['_GETEXPERIMENTREQUEST']._serialized_end=1458\n  _globals['_LISTSESSIONGROUPSREQUEST']._serialized_start=1461\n  _globals['_LISTSESSIONGROUPSREQUEST']._serialized_end=1785\n  _globals['_COLPARAMS']._serialized_start=1788\n  _globals['_COLPARAMS']._serialized_end=2133\n  _globals['_LISTSESSIONGROUPSRESPONSE']._serialized_start=2135\n  _globals['_LISTSESSIONGROUPSRESPONSE']._serialized_end=2241\n  _globals['_LISTMETRICEVALSREQUEST']._serialized_start=2243\n  _globals['_LISTMETRICEVALSREQUEST']._serialized_end=2368\n# @@protoc_insertion_point(module_scope)\n"
  },
  {
    "path": "tensorboardX/proto/attr_value.proto",
    "content": "syntax = \"proto3\";\n\npackage tensorboardX;\noption cc_enable_arenas = true;\noption java_outer_classname = \"AttrValueProtos\";\noption java_multiple_files = true;\noption java_package = \"org.tensorflow.framework\";\n\nimport \"tensorboardX/proto/tensor.proto\";\nimport \"tensorboardX/proto/tensor_shape.proto\";\nimport \"tensorboardX/proto/types.proto\";\n\n// Protocol buffer representing the value for an attr used to configure an Op.\n// Comment indicates the corresponding attr type.  Only the field matching the\n// attr type may be filled.\nmessage AttrValue {\n  // LINT.IfChange\n  message ListValue {\n    repeated bytes s = 2;                        // \"list(string)\"\n    repeated int64 i = 3 [packed = true];        // \"list(int)\"\n    repeated float f = 4 [packed = true];        // \"list(float)\"\n    repeated bool b = 5 [packed = true];         // \"list(bool)\"\n    repeated DataType type = 6 [packed = true];  // \"list(type)\"\n    repeated TensorShapeProto shape = 7;         // \"list(shape)\"\n    repeated TensorProto tensor = 8;             // \"list(tensor)\"\n    repeated NameAttrList func = 9;              // \"list(attr)\"\n  }\n  // LINT.ThenChange(https://www.tensorflow.org/code/tensorflow/c/c_api.cc)\n\n  oneof value {\n    bytes s = 2;                 // \"string\"\n    int64 i = 3;                 // \"int\"\n    float f = 4;                 // \"float\"\n    bool b = 5;                  // \"bool\"\n    DataType type = 6;           // \"type\"\n    TensorShapeProto shape = 7;  // \"shape\"\n    TensorProto tensor = 8;      // \"tensor\"\n    ListValue list = 1;          // any \"list(...)\"\n\n    // \"func\" represents a function. func.name is a function's name or\n    // a primitive op's name. func.attr.first is the name of an attr\n    // defined for that function. func.attr.second is the value for\n    // that attr in the instantiation.\n    NameAttrList func = 10;\n\n    // This is a placeholder only used in nodes defined inside a\n    // function.  It indicates the attr value will be supplied when\n    // the function is instantiated.  For example, let us suppose a\n    // node \"N\" in function \"FN\". \"N\" has an attr \"A\" with value\n    // placeholder = \"foo\". When FN is instantiated with attr \"foo\"\n    // set to \"bar\", the instantiated node N's attr A will have been\n    // given the value \"bar\".\n    string placeholder = 9;\n  }\n}\n\n// A list of attr names and their values. The whole list is attached\n// with a string name.  E.g., MatMul[T=float].\nmessage NameAttrList {\n  string name = 1;\n  map<string, AttrValue> attr = 2;\n}\n"
  },
  {
    "path": "tensorboardX/proto/attr_value_pb2.py",
    "content": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: tensorboardX/proto/attr_value.proto\n\"\"\"Generated protocol buffer code.\"\"\"\nfrom google.protobuf.internal import builder as _builder\nfrom google.protobuf import descriptor as _descriptor\nfrom google.protobuf import descriptor_pool as _descriptor_pool\nfrom google.protobuf import symbol_database as _symbol_database\n# @@protoc_insertion_point(imports)\n\n_sym_db = _symbol_database.Default()\n\n\nfrom tensorboardX.proto import tensor_pb2 as tensorboardX_dot_proto_dot_tensor__pb2\nfrom tensorboardX.proto import tensor_shape_pb2 as tensorboardX_dot_proto_dot_tensor__shape__pb2\nfrom tensorboardX.proto import types_pb2 as tensorboardX_dot_proto_dot_types__pb2\n\n\nDESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\\n#tensorboardX/proto/attr_value.proto\\x12\\x0ctensorboardX\\x1a\\x1ftensorboardX/proto/tensor.proto\\x1a%tensorboardX/proto/tensor_shape.proto\\x1a\\x1etensorboardX/proto/types.proto\\\"\\xb8\\x04\\n\\tAttrValue\\x12\\x0b\\n\\x01s\\x18\\x02 \\x01(\\x0cH\\x00\\x12\\x0b\\n\\x01i\\x18\\x03 \\x01(\\x03H\\x00\\x12\\x0b\\n\\x01\\x66\\x18\\x04 \\x01(\\x02H\\x00\\x12\\x0b\\n\\x01\\x62\\x18\\x05 \\x01(\\x08H\\x00\\x12&\\n\\x04type\\x18\\x06 \\x01(\\x0e\\x32\\x16.tensorboardX.DataTypeH\\x00\\x12/\\n\\x05shape\\x18\\x07 \\x01(\\x0b\\x32\\x1e.tensorboardX.TensorShapeProtoH\\x00\\x12+\\n\\x06tensor\\x18\\x08 \\x01(\\x0b\\x32\\x19.tensorboardX.TensorProtoH\\x00\\x12\\x31\\n\\x04list\\x18\\x01 \\x01(\\x0b\\x32!.tensorboardX.AttrValue.ListValueH\\x00\\x12*\\n\\x04\\x66unc\\x18\\n \\x01(\\x0b\\x32\\x1a.tensorboardX.NameAttrListH\\x00\\x12\\x15\\n\\x0bplaceholder\\x18\\t \\x01(\\tH\\x00\\x1a\\xf1\\x01\\n\\tListValue\\x12\\t\\n\\x01s\\x18\\x02 \\x03(\\x0c\\x12\\r\\n\\x01i\\x18\\x03 \\x03(\\x03\\x42\\x02\\x10\\x01\\x12\\r\\n\\x01\\x66\\x18\\x04 \\x03(\\x02\\x42\\x02\\x10\\x01\\x12\\r\\n\\x01\\x62\\x18\\x05 \\x03(\\x08\\x42\\x02\\x10\\x01\\x12(\\n\\x04type\\x18\\x06 \\x03(\\x0e\\x32\\x16.tensorboardX.DataTypeB\\x02\\x10\\x01\\x12-\\n\\x05shape\\x18\\x07 \\x03(\\x0b\\x32\\x1e.tensorboardX.TensorShapeProto\\x12)\\n\\x06tensor\\x18\\x08 \\x03(\\x0b\\x32\\x19.tensorboardX.TensorProto\\x12(\\n\\x04\\x66unc\\x18\\t \\x03(\\x0b\\x32\\x1a.tensorboardX.NameAttrListB\\x07\\n\\x05value\\\"\\x96\\x01\\n\\x0cNameAttrList\\x12\\x0c\\n\\x04name\\x18\\x01 \\x01(\\t\\x12\\x32\\n\\x04\\x61ttr\\x18\\x02 \\x03(\\x0b\\x32$.tensorboardX.NameAttrList.AttrEntry\\x1a\\x44\\n\\tAttrEntry\\x12\\x0b\\n\\x03key\\x18\\x01 \\x01(\\t\\x12&\\n\\x05value\\x18\\x02 \\x01(\\x0b\\x32\\x17.tensorboardX.AttrValue:\\x02\\x38\\x01\\x42\\x30\\n\\x18org.tensorflow.frameworkB\\x0f\\x41ttrValueProtosP\\x01\\xf8\\x01\\x01\\x62\\x06proto3')\n\n_globals = globals()\n_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)\n_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tensorboardX.proto.attr_value_pb2', _globals)\nif _descriptor._USE_C_DESCRIPTORS == False:\n\n  DESCRIPTOR._options = None\n  DESCRIPTOR._serialized_options = b'\\n\\030org.tensorflow.frameworkB\\017AttrValueProtosP\\001\\370\\001\\001'\n  _ATTRVALUE_LISTVALUE.fields_by_name['i']._options = None\n  _ATTRVALUE_LISTVALUE.fields_by_name['i']._serialized_options = b'\\020\\001'\n  _ATTRVALUE_LISTVALUE.fields_by_name['f']._options = None\n  _ATTRVALUE_LISTVALUE.fields_by_name['f']._serialized_options = b'\\020\\001'\n  _ATTRVALUE_LISTVALUE.fields_by_name['b']._options = None\n  _ATTRVALUE_LISTVALUE.fields_by_name['b']._serialized_options = b'\\020\\001'\n  _ATTRVALUE_LISTVALUE.fields_by_name['type']._options = None\n  _ATTRVALUE_LISTVALUE.fields_by_name['type']._serialized_options = b'\\020\\001'\n  _NAMEATTRLIST_ATTRENTRY._options = None\n  _NAMEATTRLIST_ATTRENTRY._serialized_options = b'8\\001'\n  _globals['_ATTRVALUE']._serialized_start=158\n  _globals['_ATTRVALUE']._serialized_end=726\n  _globals['_ATTRVALUE_LISTVALUE']._serialized_start=476\n  _globals['_ATTRVALUE_LISTVALUE']._serialized_end=717\n  _globals['_NAMEATTRLIST']._serialized_start=729\n  _globals['_NAMEATTRLIST']._serialized_end=879\n  _globals['_NAMEATTRLIST_ATTRENTRY']._serialized_start=811\n  _globals['_NAMEATTRLIST_ATTRENTRY']._serialized_end=879\n# @@protoc_insertion_point(module_scope)\n"
  },
  {
    "path": "tensorboardX/proto/event.proto",
    "content": "syntax = \"proto3\";\n\npackage tensorboardX;\noption cc_enable_arenas = true;\noption java_outer_classname = \"EventProtos\";\noption java_multiple_files = true;\noption java_package = \"org.tensorflow.util\";\n\nimport \"tensorboardX/proto/summary.proto\";\n\n// Protocol buffer representing an event that happened during\n// the execution of a Brain model.\nmessage Event {\n  // Timestamp of the event.\n  double wall_time = 1;\n\n  // Global step of the event.\n  int64 step = 2;\n\n  oneof what {\n    // An event file was started, with the specified version.\n    // This is use to identify the contents of the record IO files\n    // easily.  Current version is \"brain.Event:2\".  All versions\n    // start with \"brain.Event:\".\n    string file_version = 3;\n    // An encoded version of a GraphDef.\n    bytes graph_def = 4;\n    // A summary was generated.\n    Summary summary = 5;\n    // The user output a log message. Not all messages are logged, only ones\n    // generated via the Python tensorboard_logging module.\n    LogMessage log_message = 6;\n    // The state of the session which can be used for restarting after crashes.\n    SessionLog session_log = 7;\n    // The metadata returned by running a session.run() call.\n    TaggedRunMetadata tagged_run_metadata = 8;\n    // An encoded version of a MetaGraphDef.\n    bytes meta_graph_def = 9;\n  }\n}\n\n// Protocol buffer used for logging messages to the events file.\nmessage LogMessage {\n  enum Level {\n    UNKNOWN = 0;\n    DEBUG = 10;\n    INFO = 20;\n    WARN = 30;\n    ERROR = 40;\n    FATAL = 50;\n  }\n  Level level = 1;\n  string message = 2;\n}\n\n// Protocol buffer used for logging session state.\nmessage SessionLog {\n  enum SessionStatus {\n    STATUS_UNSPECIFIED = 0;\n    START = 1;\n    STOP = 2;\n    CHECKPOINT = 3;\n  }\n\n  SessionStatus status = 1;\n  // This checkpoint_path contains both the path and filename.\n  string checkpoint_path = 2;\n  string msg = 3;\n}\n\n// For logging the metadata output for a single session.run() call.\nmessage TaggedRunMetadata {\n  // Tag name associated with this metadata.\n  string tag = 1;\n  // Byte-encoded version of the `RunMetadata` proto in order to allow lazy\n  // deserialization.\n  bytes run_metadata = 2;\n}\n"
  },
  {
    "path": "tensorboardX/proto/event_pb2.py",
    "content": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: tensorboardX/proto/event.proto\n\"\"\"Generated protocol buffer code.\"\"\"\nfrom google.protobuf.internal import builder as _builder\nfrom google.protobuf import descriptor as _descriptor\nfrom google.protobuf import descriptor_pool as _descriptor_pool\nfrom google.protobuf import symbol_database as _symbol_database\n# @@protoc_insertion_point(imports)\n\n_sym_db = _symbol_database.Default()\n\n\nfrom tensorboardX.proto import summary_pb2 as tensorboardX_dot_proto_dot_summary__pb2\n\n\nDESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\\n\\x1etensorboardX/proto/event.proto\\x12\\x0ctensorboardX\\x1a tensorboardX/proto/summary.proto\\\"\\xc3\\x02\\n\\x05\\x45vent\\x12\\x11\\n\\twall_time\\x18\\x01 \\x01(\\x01\\x12\\x0c\\n\\x04step\\x18\\x02 \\x01(\\x03\\x12\\x16\\n\\x0c\\x66ile_version\\x18\\x03 \\x01(\\tH\\x00\\x12\\x13\\n\\tgraph_def\\x18\\x04 \\x01(\\x0cH\\x00\\x12(\\n\\x07summary\\x18\\x05 \\x01(\\x0b\\x32\\x15.tensorboardX.SummaryH\\x00\\x12/\\n\\x0blog_message\\x18\\x06 \\x01(\\x0b\\x32\\x18.tensorboardX.LogMessageH\\x00\\x12/\\n\\x0bsession_log\\x18\\x07 \\x01(\\x0b\\x32\\x18.tensorboardX.SessionLogH\\x00\\x12>\\n\\x13tagged_run_metadata\\x18\\x08 \\x01(\\x0b\\x32\\x1f.tensorboardX.TaggedRunMetadataH\\x00\\x12\\x18\\n\\x0emeta_graph_def\\x18\\t \\x01(\\x0cH\\x00\\x42\\x06\\n\\x04what\\\"\\x97\\x01\\n\\nLogMessage\\x12-\\n\\x05level\\x18\\x01 \\x01(\\x0e\\x32\\x1e.tensorboardX.LogMessage.Level\\x12\\x0f\\n\\x07message\\x18\\x02 \\x01(\\t\\\"I\\n\\x05Level\\x12\\x0b\\n\\x07UNKNOWN\\x10\\x00\\x12\\t\\n\\x05\\x44\\x45\\x42UG\\x10\\n\\x12\\x08\\n\\x04INFO\\x10\\x14\\x12\\x08\\n\\x04WARN\\x10\\x1e\\x12\\t\\n\\x05\\x45RROR\\x10(\\x12\\t\\n\\x05\\x46\\x41TAL\\x10\\x32\\\"\\xb8\\x01\\n\\nSessionLog\\x12\\x36\\n\\x06status\\x18\\x01 \\x01(\\x0e\\x32&.tensorboardX.SessionLog.SessionStatus\\x12\\x17\\n\\x0f\\x63heckpoint_path\\x18\\x02 \\x01(\\t\\x12\\x0b\\n\\x03msg\\x18\\x03 \\x01(\\t\\\"L\\n\\rSessionStatus\\x12\\x16\\n\\x12STATUS_UNSPECIFIED\\x10\\x00\\x12\\t\\n\\x05START\\x10\\x01\\x12\\x08\\n\\x04STOP\\x10\\x02\\x12\\x0e\\n\\nCHECKPOINT\\x10\\x03\\\"6\\n\\x11TaggedRunMetadata\\x12\\x0b\\n\\x03tag\\x18\\x01 \\x01(\\t\\x12\\x14\\n\\x0crun_metadata\\x18\\x02 \\x01(\\x0c\\x42\\'\\n\\x13org.tensorflow.utilB\\x0b\\x45ventProtosP\\x01\\xf8\\x01\\x01\\x62\\x06proto3')\n\n_globals = globals()\n_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)\n_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tensorboardX.proto.event_pb2', _globals)\nif _descriptor._USE_C_DESCRIPTORS == False:\n\n  DESCRIPTOR._options = None\n  DESCRIPTOR._serialized_options = b'\\n\\023org.tensorflow.utilB\\013EventProtosP\\001\\370\\001\\001'\n  _globals['_EVENT']._serialized_start=83\n  _globals['_EVENT']._serialized_end=406\n  _globals['_LOGMESSAGE']._serialized_start=409\n  _globals['_LOGMESSAGE']._serialized_end=560\n  _globals['_LOGMESSAGE_LEVEL']._serialized_start=487\n  _globals['_LOGMESSAGE_LEVEL']._serialized_end=560\n  _globals['_SESSIONLOG']._serialized_start=563\n  _globals['_SESSIONLOG']._serialized_end=747\n  _globals['_SESSIONLOG_SESSIONSTATUS']._serialized_start=671\n  _globals['_SESSIONLOG_SESSIONSTATUS']._serialized_end=747\n  _globals['_TAGGEDRUNMETADATA']._serialized_start=749\n  _globals['_TAGGEDRUNMETADATA']._serialized_end=803\n# @@protoc_insertion_point(module_scope)\n"
  },
  {
    "path": "tensorboardX/proto/graph.proto",
    "content": "syntax = \"proto3\";\n\npackage tensorboardX;\noption cc_enable_arenas = true;\noption java_outer_classname = \"GraphProtos\";\noption java_multiple_files = true;\noption java_package = \"org.tensorflow.framework\";\n\nimport \"tensorboardX/proto/node_def.proto\";\n//import \"tensorflow/core/framework/function.proto\";\nimport \"tensorboardX/proto/versions.proto\";\n\n// Represents the graph of operations\nmessage GraphDef {\n  repeated NodeDef node = 1;\n\n  // Compatibility versions of the graph.  See core/public/version.h for version\n  // history.  The GraphDef version is distinct from the TensorFlow version, and\n  // each release of TensorFlow will support a range of GraphDef versions.\n  VersionDef versions = 4;\n\n  // Deprecated single version field; use versions above instead.  Since all\n  // GraphDef changes before \"versions\" was introduced were forward\n  // compatible, this field is entirely ignored.\n  int32 version = 3 [deprecated = true];\n\n  // EXPERIMENTAL. DO NOT USE OR DEPEND ON THIS YET.\n  //\n  // \"library\" provides user-defined functions.\n  //\n  // Naming:\n  //   * library.function.name are in a flat namespace.\n  //     NOTE: We may need to change it to be hierarchical to support\n  //     different orgs. E.g.,\n  //     { \"/google/nn\", { ... }},\n  //     { \"/google/vision\", { ... }}\n  //     { \"/org_foo/module_bar\", { ... }}\n  //     map<string, FunctionDefLib> named_lib;\n  //   * If node[i].op is the name of one function in \"library\",\n  //     node[i] is deemed as a function call. Otherwise, node[i].op\n  //     must be a primitive operation supported by the runtime.\n  //\n  //\n  // Function call semantics:\n  //\n  //   * The callee may start execution as soon as some of its inputs\n  //     are ready. The caller may want to use Tuple() mechanism to\n  //     ensure all inputs are ready in the same time.\n  //\n  //   * The consumer of return values may start executing as soon as\n  //     the return values the consumer depends on are ready.  The\n  //     consumer may want to use Tuple() mechanism to ensure the\n  //     consumer does not start until all return values of the callee\n  //     function are ready.\n  //FunctionDefLibrary library = 2;\n};\n"
  },
  {
    "path": "tensorboardX/proto/graph_pb2.py",
    "content": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: tensorboardX/proto/graph.proto\n\"\"\"Generated protocol buffer code.\"\"\"\nfrom google.protobuf.internal import builder as _builder\nfrom google.protobuf import descriptor as _descriptor\nfrom google.protobuf import descriptor_pool as _descriptor_pool\nfrom google.protobuf import symbol_database as _symbol_database\n# @@protoc_insertion_point(imports)\n\n_sym_db = _symbol_database.Default()\n\n\nfrom tensorboardX.proto import node_def_pb2 as tensorboardX_dot_proto_dot_node__def__pb2\nfrom tensorboardX.proto import versions_pb2 as tensorboardX_dot_proto_dot_versions__pb2\n\n\nDESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\\n\\x1etensorboardX/proto/graph.proto\\x12\\x0ctensorboardX\\x1a!tensorboardX/proto/node_def.proto\\x1a!tensorboardX/proto/versions.proto\\\"p\\n\\x08GraphDef\\x12#\\n\\x04node\\x18\\x01 \\x03(\\x0b\\x32\\x15.tensorboardX.NodeDef\\x12*\\n\\x08versions\\x18\\x04 \\x01(\\x0b\\x32\\x18.tensorboardX.VersionDef\\x12\\x13\\n\\x07version\\x18\\x03 \\x01(\\x05\\x42\\x02\\x18\\x01\\x42,\\n\\x18org.tensorflow.frameworkB\\x0bGraphProtosP\\x01\\xf8\\x01\\x01\\x62\\x06proto3')\n\n_globals = globals()\n_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)\n_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tensorboardX.proto.graph_pb2', _globals)\nif _descriptor._USE_C_DESCRIPTORS == False:\n\n  DESCRIPTOR._options = None\n  DESCRIPTOR._serialized_options = b'\\n\\030org.tensorflow.frameworkB\\013GraphProtosP\\001\\370\\001\\001'\n  _GRAPHDEF.fields_by_name['version']._options = None\n  _GRAPHDEF.fields_by_name['version']._serialized_options = b'\\030\\001'\n  _globals['_GRAPHDEF']._serialized_start=118\n  _globals['_GRAPHDEF']._serialized_end=230\n# @@protoc_insertion_point(module_scope)\n"
  },
  {
    "path": "tensorboardX/proto/layout.proto",
    "content": "/* Copyright 2017 The TensorFlow Authors. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n==============================================================================*/\n\nsyntax = \"proto3\";\n\npackage tensorboardX;\n\n\n/**\n * Encapsulates information on a single chart. Many charts appear in a category.\n */\nmessage Chart {\n  // The title shown atop this chart. Optional. Defaults to 'untitled'.\n  string title = 1;\n\n  // The content of the chart. This depends on the type of the chart.\n  oneof content {\n    MultilineChartContent multiline = 2;\n    MarginChartContent margin = 3;\n  }\n}\n\n/**\n * Encapsulates information on a single line chart. This line chart may have\n * lines associated with several tags.\n */\nmessage MultilineChartContent {\n  // A list of regular expressions for tags that should appear in this chart.\n  // Tags are matched from beginning to end. Each regex captures a set of tags.\n  repeated string tag = 1;\n}\n\n/**\n * Encapsulates information on a single margin chart. A margin chart uses fill\n * area to visualize lower and upper bounds that surround a value.\n */\nmessage MarginChartContent {\n  /**\n   * Encapsulates a tag of data for the chart.\n   */\n  message Series {\n    // The exact tag string associated with the scalar summaries making up the\n    // main value between the bounds.\n    string value = 1;\n\n    // The exact tag string associated with the scalar summaries making up the\n    // lower bound.\n    string lower = 2;\n\n    // The exact tag string associated with the scalar summaries making up the\n    // upper bound.\n    string upper = 3;\n  }\n\n  // A list of data series to include within this margin chart.\n  repeated Series series = 1;\n}\n\n/**\n * A category contains a group of charts. Each category maps to a collapsible\n * within the dashboard.\n */\nmessage Category {\n  // This string appears atop each grouping of charts within the dashboard.\n  string title = 1;\n\n  // Encapsulates data on charts to be shown in the category.\n  repeated Chart chart = 2;\n\n  // Whether this category should be initially closed. False by default.\n  bool closed = 3;\n}\n\n/**\n * A layout encapsulates how charts are laid out within the custom scalars\n * dashboard.\n */\nmessage Layout {\n  // Version `0` is the only supported version.\n  int32 version = 1;\n\n  // The categories here are rendered from top to bottom.\n  repeated Category category = 2;\n}\n"
  },
  {
    "path": "tensorboardX/proto/layout_pb2.py",
    "content": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: tensorboardX/proto/layout.proto\n\"\"\"Generated protocol buffer code.\"\"\"\nfrom google.protobuf.internal import builder as _builder\nfrom google.protobuf import descriptor as _descriptor\nfrom google.protobuf import descriptor_pool as _descriptor_pool\nfrom google.protobuf import symbol_database as _symbol_database\n# @@protoc_insertion_point(imports)\n\n_sym_db = _symbol_database.Default()\n\n\n\n\nDESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\\n\\x1ftensorboardX/proto/layout.proto\\x12\\x0ctensorboardX\\\"\\x8f\\x01\\n\\x05\\x43hart\\x12\\r\\n\\x05title\\x18\\x01 \\x01(\\t\\x12\\x38\\n\\tmultiline\\x18\\x02 \\x01(\\x0b\\x32#.tensorboardX.MultilineChartContentH\\x00\\x12\\x32\\n\\x06margin\\x18\\x03 \\x01(\\x0b\\x32 .tensorboardX.MarginChartContentH\\x00\\x42\\t\\n\\x07\\x63ontent\\\"$\\n\\x15MultilineChartContent\\x12\\x0b\\n\\x03tag\\x18\\x01 \\x03(\\t\\\"\\x84\\x01\\n\\x12MarginChartContent\\x12\\x37\\n\\x06series\\x18\\x01 \\x03(\\x0b\\x32\\'.tensorboardX.MarginChartContent.Series\\x1a\\x35\\n\\x06Series\\x12\\r\\n\\x05value\\x18\\x01 \\x01(\\t\\x12\\r\\n\\x05lower\\x18\\x02 \\x01(\\t\\x12\\r\\n\\x05upper\\x18\\x03 \\x01(\\t\\\"M\\n\\x08\\x43\\x61tegory\\x12\\r\\n\\x05title\\x18\\x01 \\x01(\\t\\x12\\\"\\n\\x05\\x63hart\\x18\\x02 \\x03(\\x0b\\x32\\x13.tensorboardX.Chart\\x12\\x0e\\n\\x06\\x63losed\\x18\\x03 \\x01(\\x08\\\"C\\n\\x06Layout\\x12\\x0f\\n\\x07version\\x18\\x01 \\x01(\\x05\\x12(\\n\\x08\\x63\\x61tegory\\x18\\x02 \\x03(\\x0b\\x32\\x16.tensorboardX.Categoryb\\x06proto3')\n\n_globals = globals()\n_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)\n_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tensorboardX.proto.layout_pb2', _globals)\nif _descriptor._USE_C_DESCRIPTORS == False:\n\n  DESCRIPTOR._options = None\n  _globals['_CHART']._serialized_start=50\n  _globals['_CHART']._serialized_end=193\n  _globals['_MULTILINECHARTCONTENT']._serialized_start=195\n  _globals['_MULTILINECHARTCONTENT']._serialized_end=231\n  _globals['_MARGINCHARTCONTENT']._serialized_start=234\n  _globals['_MARGINCHARTCONTENT']._serialized_end=366\n  _globals['_MARGINCHARTCONTENT_SERIES']._serialized_start=313\n  _globals['_MARGINCHARTCONTENT_SERIES']._serialized_end=366\n  _globals['_CATEGORY']._serialized_start=368\n  _globals['_CATEGORY']._serialized_end=445\n  _globals['_LAYOUT']._serialized_start=447\n  _globals['_LAYOUT']._serialized_end=514\n# @@protoc_insertion_point(module_scope)\n"
  },
  {
    "path": "tensorboardX/proto/node_def.proto",
    "content": "syntax = \"proto3\";\n\npackage tensorboardX;\noption cc_enable_arenas = true;\noption java_outer_classname = \"NodeProto\";\noption java_multiple_files = true;\noption java_package = \"org.tensorflow.framework\";\n\nimport \"tensorboardX/proto/attr_value.proto\";\n\nmessage NodeDef {\n  // The name given to this operator. Used for naming inputs,\n  // logging, visualization, etc.  Unique within a single GraphDef.\n  // Must match the regexp \"[A-Za-z0-9.][A-Za-z0-9_./]*\".\n  string name = 1;\n\n  // The operation name.  There may be custom parameters in attrs.\n  // Op names starting with an underscore are reserved for internal use.\n  string op = 2;\n\n  // Each input is \"node:src_output\" with \"node\" being a string name and\n  // \"src_output\" indicating which output tensor to use from \"node\". If\n  // \"src_output\" is 0 the \":0\" suffix can be omitted.  Regular inputs\n  // may optionally be followed by control inputs that have the format\n  // \"^node\".\n  repeated string input = 3;\n\n  // A (possibly partial) specification for the device on which this\n  // node should be placed.\n  // The expected syntax for this string is as follows:\n  //\n  // DEVICE_SPEC ::= PARTIAL_SPEC\n  //\n  // PARTIAL_SPEC ::= (\"/\" CONSTRAINT) *\n  // CONSTRAINT ::= (\"job:\" JOB_NAME)\n  //              | (\"replica:\" [1-9][0-9]*)\n  //              | (\"task:\" [1-9][0-9]*)\n  //              | ( (\"gpu\" | \"cpu\") \":\" ([1-9][0-9]* | \"*\") )\n  //\n  // Valid values for this string include:\n  // * \"/job:worker/replica:0/task:1/gpu:3\"  (full specification)\n  // * \"/job:worker/gpu:3\"                   (partial specification)\n  // * \"\"                                    (no specification)\n  //\n  // If the constraints do not resolve to a single device (or if this\n  // field is empty or not present), the runtime will attempt to\n  // choose a device automatically.\n  string device = 4;\n\n  // Operation-specific graph-construction-time configuration.\n  // Note that this should include all attrs defined in the\n  // corresponding OpDef, including those with a value matching\n  // the default -- this allows the default to change and makes\n  // NodeDefs easier to interpret on their own.  However, if\n  // an attr with a default is not specified in this list, the\n  // default will be used.\n  // The \"names\" (keys) must match the regexp \"[a-z][a-z0-9_]+\" (and\n  // one of the names from the corresponding OpDef's attr field).\n  // The values must have a type matching the corresponding OpDef\n  // attr's type field.\n  // TODO(josh11b): Add some examples here showing best practices.\n  map<string, AttrValue> attr = 5;\n};\n"
  },
  {
    "path": "tensorboardX/proto/node_def_pb2.py",
    "content": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: tensorboardX/proto/node_def.proto\n\"\"\"Generated protocol buffer code.\"\"\"\nfrom google.protobuf.internal import builder as _builder\nfrom google.protobuf import descriptor as _descriptor\nfrom google.protobuf import descriptor_pool as _descriptor_pool\nfrom google.protobuf import symbol_database as _symbol_database\n# @@protoc_insertion_point(imports)\n\n_sym_db = _symbol_database.Default()\n\n\nfrom tensorboardX.proto import attr_value_pb2 as tensorboardX_dot_proto_dot_attr__value__pb2\n\n\nDESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\\n!tensorboardX/proto/node_def.proto\\x12\\x0ctensorboardX\\x1a#tensorboardX/proto/attr_value.proto\\\"\\xb7\\x01\\n\\x07NodeDef\\x12\\x0c\\n\\x04name\\x18\\x01 \\x01(\\t\\x12\\n\\n\\x02op\\x18\\x02 \\x01(\\t\\x12\\r\\n\\x05input\\x18\\x03 \\x03(\\t\\x12\\x0e\\n\\x06\\x64\\x65vice\\x18\\x04 \\x01(\\t\\x12-\\n\\x04\\x61ttr\\x18\\x05 \\x03(\\x0b\\x32\\x1f.tensorboardX.NodeDef.AttrEntry\\x1a\\x44\\n\\tAttrEntry\\x12\\x0b\\n\\x03key\\x18\\x01 \\x01(\\t\\x12&\\n\\x05value\\x18\\x02 \\x01(\\x0b\\x32\\x17.tensorboardX.AttrValue:\\x02\\x38\\x01\\x42*\\n\\x18org.tensorflow.frameworkB\\tNodeProtoP\\x01\\xf8\\x01\\x01\\x62\\x06proto3')\n\n_globals = globals()\n_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)\n_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tensorboardX.proto.node_def_pb2', _globals)\nif _descriptor._USE_C_DESCRIPTORS == False:\n\n  DESCRIPTOR._options = None\n  DESCRIPTOR._serialized_options = b'\\n\\030org.tensorflow.frameworkB\\tNodeProtoP\\001\\370\\001\\001'\n  _NODEDEF_ATTRENTRY._options = None\n  _NODEDEF_ATTRENTRY._serialized_options = b'8\\001'\n  _globals['_NODEDEF']._serialized_start=89\n  _globals['_NODEDEF']._serialized_end=272\n  _globals['_NODEDEF_ATTRENTRY']._serialized_start=204\n  _globals['_NODEDEF_ATTRENTRY']._serialized_end=272\n# @@protoc_insertion_point(module_scope)\n"
  },
  {
    "path": "tensorboardX/proto/plugin_hparams.proto",
    "content": "/* Copyright 2019 The TensorFlow Authors. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n==============================================================================*/\n\n// Defines protos for storing a hypertuning experiment data inside Summary tags.\n//\n// A hypertuning-experiment data consists of metadata that's constant\n// throughout the experiment and evolving metric data for each training session\n// in the experiment. The HParams plugin assumes the following organization of\n// this entire data set. Experiment metadata is recorded in the empty run in a\n// tag (named by the Python constant) metadata.EXPERIMENT_TAG. Within the\n// experiment, for a session named by <session_name> its metadata is recorded\n// in the run <session_name> in the tags metadata.SESSION_START_INFO and\n// metadata.SESSION_END_INFO. Finally, the session's metric data for a metric\n// with a (<group>, <tag>) name (see MetricName in api.proto), is recorded\n// in a Scalar-plugin summary with tag <tag> in the run <session_name><group>.\n\nsyntax = \"proto3\";\n\nimport \"tensorboardX/proto/api.proto\";\nimport \"google/protobuf/struct.proto\";\n\npackage tensorboardX.hparam;\n\n// HParam summaries created by `tensorboard.plugins.hparams.summary`\n// module will include `SummaryMetadata` whose `plugin_data` field has\n// as `content` a serialized HParamsPluginData message.\nmessage HParamsPluginData {\n  // The version of the plugin data schema.\n  int32 version = 1;\n  oneof data {\n    Experiment experiment = 2;\n    SessionStartInfo session_start_info = 3;\n    SessionEndInfo session_end_info = 4;\n  }\n}\n\nmessage SessionStartInfo {\n  // A map describing the hyperparameter values for the session.\n  // Maps each hyperparameter name to its value.\n  // Currently only scalars are supported.\n  map<string, google.protobuf.Value> hparams = 1;\n\n  // A URI for where checkpoints are saved.\n  string model_uri = 2;\n\n  // An optional URL to a website monitoring the session.\n  string monitor_url = 3;\n\n  // The name of the session group containing this session. If empty, the\n  // group name is taken to be the session id (so this session is the only\n  // member of its group).\n  string group_name = 4;\n\n  // The time the session started in seconds since epoch.\n  double start_time_secs = 5;\n}\n\nmessage SessionEndInfo {\n  Status status = 1;\n\n  // The time the session ended in seconds since epoch.\n  double end_time_secs = 2;\n}\n"
  },
  {
    "path": "tensorboardX/proto/plugin_hparams_pb2.py",
    "content": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: tensorboardX/proto/plugin_hparams.proto\n\"\"\"Generated protocol buffer code.\"\"\"\nfrom google.protobuf.internal import builder as _builder\nfrom google.protobuf import descriptor as _descriptor\nfrom google.protobuf import descriptor_pool as _descriptor_pool\nfrom google.protobuf import symbol_database as _symbol_database\n# @@protoc_insertion_point(imports)\n\n_sym_db = _symbol_database.Default()\n\n\nfrom tensorboardX.proto import api_pb2 as tensorboardX_dot_proto_dot_api__pb2\nfrom google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2\n\n\nDESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\\n\\'tensorboardX/proto/plugin_hparams.proto\\x12\\x13tensorboardX.hparam\\x1a\\x1ctensorboardX/proto/api.proto\\x1a\\x1cgoogle/protobuf/struct.proto\\\"\\xe9\\x01\\n\\x11HParamsPluginData\\x12\\x0f\\n\\x07version\\x18\\x01 \\x01(\\x05\\x12\\x35\\n\\nexperiment\\x18\\x02 \\x01(\\x0b\\x32\\x1f.tensorboardX.hparam.ExperimentH\\x00\\x12\\x43\\n\\x12session_start_info\\x18\\x03 \\x01(\\x0b\\x32%.tensorboardX.hparam.SessionStartInfoH\\x00\\x12?\\n\\x10session_end_info\\x18\\x04 \\x01(\\x0b\\x32#.tensorboardX.hparam.SessionEndInfoH\\x00\\x42\\x06\\n\\x04\\x64\\x61ta\\\"\\xf4\\x01\\n\\x10SessionStartInfo\\x12\\x43\\n\\x07hparams\\x18\\x01 \\x03(\\x0b\\x32\\x32.tensorboardX.hparam.SessionStartInfo.HparamsEntry\\x12\\x11\\n\\tmodel_uri\\x18\\x02 \\x01(\\t\\x12\\x13\\n\\x0bmonitor_url\\x18\\x03 \\x01(\\t\\x12\\x12\\n\\ngroup_name\\x18\\x04 \\x01(\\t\\x12\\x17\\n\\x0fstart_time_secs\\x18\\x05 \\x01(\\x01\\x1a\\x46\\n\\x0cHparamsEntry\\x12\\x0b\\n\\x03key\\x18\\x01 \\x01(\\t\\x12%\\n\\x05value\\x18\\x02 \\x01(\\x0b\\x32\\x16.google.protobuf.Value:\\x02\\x38\\x01\\\"T\\n\\x0eSessionEndInfo\\x12+\\n\\x06status\\x18\\x01 \\x01(\\x0e\\x32\\x1b.tensorboardX.hparam.Status\\x12\\x15\\n\\rend_time_secs\\x18\\x02 \\x01(\\x01\\x62\\x06proto3')\n\n_globals = globals()\n_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)\n_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tensorboardX.proto.plugin_hparams_pb2', _globals)\nif _descriptor._USE_C_DESCRIPTORS == False:\n\n  DESCRIPTOR._options = None\n  _SESSIONSTARTINFO_HPARAMSENTRY._options = None\n  _SESSIONSTARTINFO_HPARAMSENTRY._serialized_options = b'8\\001'\n  _globals['_HPARAMSPLUGINDATA']._serialized_start=125\n  _globals['_HPARAMSPLUGINDATA']._serialized_end=358\n  _globals['_SESSIONSTARTINFO']._serialized_start=361\n  _globals['_SESSIONSTARTINFO']._serialized_end=605\n  _globals['_SESSIONSTARTINFO_HPARAMSENTRY']._serialized_start=535\n  _globals['_SESSIONSTARTINFO_HPARAMSENTRY']._serialized_end=605\n  _globals['_SESSIONENDINFO']._serialized_start=607\n  _globals['_SESSIONENDINFO']._serialized_end=691\n# @@protoc_insertion_point(module_scope)\n"
  },
  {
    "path": "tensorboardX/proto/plugin_mesh.proto",
    "content": "syntax = \"proto3\";\n\npackage tensorboardX.mesh;\n\n// A MeshPluginData encapsulates information on which plugins are able to make\n// use of a certain summary value.\nmessage MeshPluginData {\n  enum ContentType {\n    UNDEFINED = 0;\n    VERTEX = 1;\n    FACE = 2;  // Triangle face.\n    COLOR = 3;\n  }\n\n  // Version `0` is the only supported version.\n  int32 version = 1;\n\n  // The name of the mesh summary this particular summary belongs to.\n  string name = 2;\n\n  // Type of data in the summary.\n  ContentType content_type = 3;\n\n  // JSON-serialized dictionary of ThreeJS classes configuration.\n  string json_config = 5;\n\n  // Shape of underlying data. Cache it here for performance reasons.\n  repeated int32 shape = 6;\n}\n"
  },
  {
    "path": "tensorboardX/proto/plugin_mesh_pb2.py",
    "content": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: tensorboardX/proto/plugin_mesh.proto\n\"\"\"Generated protocol buffer code.\"\"\"\nfrom google.protobuf.internal import builder as _builder\nfrom google.protobuf import descriptor as _descriptor\nfrom google.protobuf import descriptor_pool as _descriptor_pool\nfrom google.protobuf import symbol_database as _symbol_database\n# @@protoc_insertion_point(imports)\n\n_sym_db = _symbol_database.Default()\n\n\n\n\nDESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\\n$tensorboardX/proto/plugin_mesh.proto\\x12\\x11tensorboardX.mesh\\\"\\xd7\\x01\\n\\x0eMeshPluginData\\x12\\x0f\\n\\x07version\\x18\\x01 \\x01(\\x05\\x12\\x0c\\n\\x04name\\x18\\x02 \\x01(\\t\\x12\\x43\\n\\x0c\\x63ontent_type\\x18\\x03 \\x01(\\x0e\\x32-.tensorboardX.mesh.MeshPluginData.ContentType\\x12\\x13\\n\\x0bjson_config\\x18\\x05 \\x01(\\t\\x12\\r\\n\\x05shape\\x18\\x06 \\x03(\\x05\\\"=\\n\\x0b\\x43ontentType\\x12\\r\\n\\tUNDEFINED\\x10\\x00\\x12\\n\\n\\x06VERTEX\\x10\\x01\\x12\\x08\\n\\x04\\x46\\x41\\x43\\x45\\x10\\x02\\x12\\t\\n\\x05\\x43OLOR\\x10\\x03\\x62\\x06proto3')\n\n_globals = globals()\n_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)\n_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tensorboardX.proto.plugin_mesh_pb2', _globals)\nif _descriptor._USE_C_DESCRIPTORS == False:\n\n  DESCRIPTOR._options = None\n  _globals['_MESHPLUGINDATA']._serialized_start=60\n  _globals['_MESHPLUGINDATA']._serialized_end=275\n  _globals['_MESHPLUGINDATA_CONTENTTYPE']._serialized_start=214\n  _globals['_MESHPLUGINDATA_CONTENTTYPE']._serialized_end=275\n# @@protoc_insertion_point(module_scope)\n"
  },
  {
    "path": "tensorboardX/proto/plugin_pr_curve.proto",
    "content": "/* Copyright 2017 The TensorFlow Authors. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n==============================================================================*/\n\nsyntax = \"proto3\";\n\npackage tensorboardX;\n\nmessage PrCurvePluginData {\n  // Version `0` is the only supported version.\n  int32 version = 1;\n\n  uint32 num_thresholds = 2;\n}\n"
  },
  {
    "path": "tensorboardX/proto/plugin_pr_curve_pb2.py",
    "content": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: tensorboardX/proto/plugin_pr_curve.proto\n\"\"\"Generated protocol buffer code.\"\"\"\nfrom google.protobuf.internal import builder as _builder\nfrom google.protobuf import descriptor as _descriptor\nfrom google.protobuf import descriptor_pool as _descriptor_pool\nfrom google.protobuf import symbol_database as _symbol_database\n# @@protoc_insertion_point(imports)\n\n_sym_db = _symbol_database.Default()\n\n\n\n\nDESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\\n(tensorboardX/proto/plugin_pr_curve.proto\\x12\\x0ctensorboardX\\\"<\\n\\x11PrCurvePluginData\\x12\\x0f\\n\\x07version\\x18\\x01 \\x01(\\x05\\x12\\x16\\n\\x0enum_thresholds\\x18\\x02 \\x01(\\rb\\x06proto3')\n\n_globals = globals()\n_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)\n_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tensorboardX.proto.plugin_pr_curve_pb2', _globals)\nif _descriptor._USE_C_DESCRIPTORS == False:\n\n  DESCRIPTOR._options = None\n  _globals['_PRCURVEPLUGINDATA']._serialized_start=58\n  _globals['_PRCURVEPLUGINDATA']._serialized_end=118\n# @@protoc_insertion_point(module_scope)\n"
  },
  {
    "path": "tensorboardX/proto/plugin_text.proto",
    "content": "/* Copyright 2017 The TensorFlow Authors. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n==============================================================================*/\n\nsyntax = \"proto3\";\n\npackage tensorboardX;\n\n// Text summaries created by the `tensorboard.plugins.text.summary`\n// module will include `SummaryMetadata` whose `plugin_data` field has\n// as `content` a binary string that is the encoding of an\n// `TextPluginData` proto.\nmessage TextPluginData {\n  // Version `0` is the only supported version.\n  int32 version = 1;\n}\n"
  },
  {
    "path": "tensorboardX/proto/plugin_text_pb2.py",
    "content": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: tensorboardX/proto/plugin_text.proto\n\"\"\"Generated protocol buffer code.\"\"\"\nfrom google.protobuf.internal import builder as _builder\nfrom google.protobuf import descriptor as _descriptor\nfrom google.protobuf import descriptor_pool as _descriptor_pool\nfrom google.protobuf import symbol_database as _symbol_database\n# @@protoc_insertion_point(imports)\n\n_sym_db = _symbol_database.Default()\n\n\n\n\nDESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\\n$tensorboardX/proto/plugin_text.proto\\x12\\x0ctensorboardX\\\"!\\n\\x0eTextPluginData\\x12\\x0f\\n\\x07version\\x18\\x01 \\x01(\\x05\\x62\\x06proto3')\n\n_globals = globals()\n_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)\n_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tensorboardX.proto.plugin_text_pb2', _globals)\nif _descriptor._USE_C_DESCRIPTORS == False:\n\n  DESCRIPTOR._options = None\n  _globals['_TEXTPLUGINDATA']._serialized_start=54\n  _globals['_TEXTPLUGINDATA']._serialized_end=87\n# @@protoc_insertion_point(module_scope)\n"
  },
  {
    "path": "tensorboardX/proto/resource_handle.proto",
    "content": "syntax = \"proto3\";\n\npackage tensorboardX;\noption cc_enable_arenas = true;\noption java_outer_classname = \"ResourceHandle\";\noption java_multiple_files = true;\noption java_package = \"org.tensorflow.framework\";\n\n// Protocol buffer representing a handle to a tensorflow resource. Handles are\n// not valid across executions, but can be serialized back and forth from within\n// a single run.\nmessage ResourceHandleProto {\n  // Unique name for the device containing the resource.\n  string device = 1;\n\n  // Container in which this resource is placed.\n  string container = 2;\n\n  // Unique name of this resource.\n  string name = 3;\n\n  // Hash code for the type of the resource. Is only valid in the same device\n  // and in the same execution.\n  uint64 hash_code = 4;\n\n  // For debug-only, the name of the type pointed to by this handle, if\n  // available.\n  string maybe_type_name = 5;\n};\n"
  },
  {
    "path": "tensorboardX/proto/resource_handle_pb2.py",
    "content": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: tensorboardX/proto/resource_handle.proto\n\"\"\"Generated protocol buffer code.\"\"\"\nfrom google.protobuf.internal import builder as _builder\nfrom google.protobuf import descriptor as _descriptor\nfrom google.protobuf import descriptor_pool as _descriptor_pool\nfrom google.protobuf import symbol_database as _symbol_database\n# @@protoc_insertion_point(imports)\n\n_sym_db = _symbol_database.Default()\n\n\n\n\nDESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\\n(tensorboardX/proto/resource_handle.proto\\x12\\x0ctensorboardX\\\"r\\n\\x13ResourceHandleProto\\x12\\x0e\\n\\x06\\x64\\x65vice\\x18\\x01 \\x01(\\t\\x12\\x11\\n\\tcontainer\\x18\\x02 \\x01(\\t\\x12\\x0c\\n\\x04name\\x18\\x03 \\x01(\\t\\x12\\x11\\n\\thash_code\\x18\\x04 \\x01(\\x04\\x12\\x17\\n\\x0fmaybe_type_name\\x18\\x05 \\x01(\\tB/\\n\\x18org.tensorflow.frameworkB\\x0eResourceHandleP\\x01\\xf8\\x01\\x01\\x62\\x06proto3')\n\n_globals = globals()\n_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)\n_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tensorboardX.proto.resource_handle_pb2', _globals)\nif _descriptor._USE_C_DESCRIPTORS == False:\n\n  DESCRIPTOR._options = None\n  DESCRIPTOR._serialized_options = b'\\n\\030org.tensorflow.frameworkB\\016ResourceHandleP\\001\\370\\001\\001'\n  _globals['_RESOURCEHANDLEPROTO']._serialized_start=58\n  _globals['_RESOURCEHANDLEPROTO']._serialized_end=172\n# @@protoc_insertion_point(module_scope)\n"
  },
  {
    "path": "tensorboardX/proto/summary.proto",
    "content": "syntax = \"proto3\";\n\npackage tensorboardX;\noption cc_enable_arenas = true;\noption java_outer_classname = \"SummaryProtos\";\noption java_multiple_files = true;\noption java_package = \"org.tensorflow.framework\";\n\nimport \"tensorboardX/proto/tensor.proto\";\n\n// Metadata associated with a series of Summary data\nmessage SummaryDescription {\n  // Hint on how plugins should process the data in this series.\n  // Supported values include \"scalar\", \"histogram\", \"image\", \"audio\"\n  string type_hint = 1;\n}\n\n// Serialization format for histogram module in\n// core/lib/histogram/histogram.h\nmessage HistogramProto {\n  double min = 1;\n  double max = 2;\n  double num = 3;\n  double sum = 4;\n  double sum_squares = 5;\n\n  // Parallel arrays encoding the bucket boundaries and the bucket values.\n  // bucket(i) is the count for the bucket i.  The range for\n  // a bucket is:\n  //   i == 0:  -DBL_MAX .. bucket_limit(0)\n  //   i != 0:  bucket_limit(i-1) .. bucket_limit(i)\n  repeated double bucket_limit = 6 [packed = true];\n  repeated double bucket = 7 [packed = true];\n};\n\n// A SummaryMetadata encapsulates information on which plugins are able to make\n// use of a certain summary value.\nmessage SummaryMetadata {\n  message PluginData {\n    // The name of the plugin this data pertains to.\n    string plugin_name = 1;\n\n    // The content to store for the plugin. The best practice is for this to be\n    // a binary serialized protocol buffer.\n    bytes content = 2;\n  }\n\n  // Data that associates a summary with a certain plugin.\n  PluginData plugin_data = 1;\n\n  // Display name for viewing in TensorBoard.\n  string display_name = 2;\n\n  // Longform readable description of the summary sequence. Markdown supported.\n  string summary_description = 3;\n};\n\n// A Summary is a set of named values to be displayed by the\n// visualizer.\n//\n// Summaries are produced regularly during training, as controlled by\n// the \"summary_interval_secs\" attribute of the training operation.\n// Summaries are also produced at the end of an evaluation.\nmessage Summary {\n  message Image {\n    // Dimensions of the image.\n    int32 height = 1;\n    int32 width = 2;\n    // Valid colorspace values are\n    //   1 - grayscale\n    //   2 - grayscale + alpha\n    //   3 - RGB\n    //   4 - RGBA\n    //   5 - DIGITAL_YUV\n    //   6 - BGRA\n    int32 colorspace = 3;\n    // Image data in encoded format.  All image formats supported by\n    // image_codec::CoderUtil can be stored here.\n    bytes encoded_image_string = 4;\n  }\n\n  message Audio {\n    // Sample rate of the audio in Hz.\n    float sample_rate = 1;\n    // Number of channels of audio.\n    int64 num_channels = 2;\n    // Length of the audio in frames (samples per channel).\n    int64 length_frames = 3;\n    // Encoded audio data and its associated RFC 2045 content type (e.g.\n    // \"audio/wav\").\n    bytes encoded_audio_string = 4;\n    string content_type = 5;\n  }\n\n  message Value {\n    // This field is deprecated and will not be set.\n    string node_name = 7;\n\n    // Tag name for the data. Used by TensorBoard plugins to organize data. Tags\n    // are often organized by scope (which contains slashes to convey\n    // hierarchy). For example: foo/bar/0\n    string tag = 1;\n\n    // Contains metadata on the summary value such as which plugins may use it.\n    // Take note that many summary values may lack a metadata field. This is\n    // because the FileWriter only keeps a metadata object on the first summary\n    // value with a certain tag for each tag. TensorBoard then remembers which\n    // tags are associated with which plugins. This saves space.\n    SummaryMetadata metadata = 9;\n\n    // Value associated with the tag.\n    oneof value {\n      float simple_value = 2;\n      bytes obsolete_old_style_histogram = 3;\n      Image image = 4;\n      HistogramProto histo = 5;\n      Audio audio = 6;\n      TensorProto tensor = 8;\n    }\n  }\n\n  // Set of values for the summary.\n  repeated Value value = 1;\n}\n"
  },
  {
    "path": "tensorboardX/proto/summary_pb2.py",
    "content": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: tensorboardX/proto/summary.proto\n\"\"\"Generated protocol buffer code.\"\"\"\nfrom google.protobuf.internal import builder as _builder\nfrom google.protobuf import descriptor as _descriptor\nfrom google.protobuf import descriptor_pool as _descriptor_pool\nfrom google.protobuf import symbol_database as _symbol_database\n# @@protoc_insertion_point(imports)\n\n_sym_db = _symbol_database.Default()\n\n\nfrom tensorboardX.proto import tensor_pb2 as tensorboardX_dot_proto_dot_tensor__pb2\n\n\nDESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\\n tensorboardX/proto/summary.proto\\x12\\x0ctensorboardX\\x1a\\x1ftensorboardX/proto/tensor.proto\\\"\\'\\n\\x12SummaryDescription\\x12\\x11\\n\\ttype_hint\\x18\\x01 \\x01(\\t\\\"\\x87\\x01\\n\\x0eHistogramProto\\x12\\x0b\\n\\x03min\\x18\\x01 \\x01(\\x01\\x12\\x0b\\n\\x03max\\x18\\x02 \\x01(\\x01\\x12\\x0b\\n\\x03num\\x18\\x03 \\x01(\\x01\\x12\\x0b\\n\\x03sum\\x18\\x04 \\x01(\\x01\\x12\\x13\\n\\x0bsum_squares\\x18\\x05 \\x01(\\x01\\x12\\x18\\n\\x0c\\x62ucket_limit\\x18\\x06 \\x03(\\x01\\x42\\x02\\x10\\x01\\x12\\x12\\n\\x06\\x62ucket\\x18\\x07 \\x03(\\x01\\x42\\x02\\x10\\x01\\\"\\xb7\\x01\\n\\x0fSummaryMetadata\\x12=\\n\\x0bplugin_data\\x18\\x01 \\x01(\\x0b\\x32(.tensorboardX.SummaryMetadata.PluginData\\x12\\x14\\n\\x0c\\x64isplay_name\\x18\\x02 \\x01(\\t\\x12\\x1b\\n\\x13summary_description\\x18\\x03 \\x01(\\t\\x1a\\x32\\n\\nPluginData\\x12\\x13\\n\\x0bplugin_name\\x18\\x01 \\x01(\\t\\x12\\x0f\\n\\x07\\x63ontent\\x18\\x02 \\x01(\\x0c\\\"\\xea\\x04\\n\\x07Summary\\x12*\\n\\x05value\\x18\\x01 \\x03(\\x0b\\x32\\x1b.tensorboardX.Summary.Value\\x1aX\\n\\x05Image\\x12\\x0e\\n\\x06height\\x18\\x01 \\x01(\\x05\\x12\\r\\n\\x05width\\x18\\x02 \\x01(\\x05\\x12\\x12\\n\\ncolorspace\\x18\\x03 \\x01(\\x05\\x12\\x1c\\n\\x14\\x65ncoded_image_string\\x18\\x04 \\x01(\\x0c\\x1a}\\n\\x05\\x41udio\\x12\\x13\\n\\x0bsample_rate\\x18\\x01 \\x01(\\x02\\x12\\x14\\n\\x0cnum_channels\\x18\\x02 \\x01(\\x03\\x12\\x15\\n\\rlength_frames\\x18\\x03 \\x01(\\x03\\x12\\x1c\\n\\x14\\x65ncoded_audio_string\\x18\\x04 \\x01(\\x0c\\x12\\x14\\n\\x0c\\x63ontent_type\\x18\\x05 \\x01(\\t\\x1a\\xd9\\x02\\n\\x05Value\\x12\\x11\\n\\tnode_name\\x18\\x07 \\x01(\\t\\x12\\x0b\\n\\x03tag\\x18\\x01 \\x01(\\t\\x12/\\n\\x08metadata\\x18\\t \\x01(\\x0b\\x32\\x1d.tensorboardX.SummaryMetadata\\x12\\x16\\n\\x0csimple_value\\x18\\x02 \\x01(\\x02H\\x00\\x12&\\n\\x1cobsolete_old_style_histogram\\x18\\x03 \\x01(\\x0cH\\x00\\x12,\\n\\x05image\\x18\\x04 \\x01(\\x0b\\x32\\x1b.tensorboardX.Summary.ImageH\\x00\\x12-\\n\\x05histo\\x18\\x05 \\x01(\\x0b\\x32\\x1c.tensorboardX.HistogramProtoH\\x00\\x12,\\n\\x05\\x61udio\\x18\\x06 \\x01(\\x0b\\x32\\x1b.tensorboardX.Summary.AudioH\\x00\\x12+\\n\\x06tensor\\x18\\x08 \\x01(\\x0b\\x32\\x19.tensorboardX.TensorProtoH\\x00\\x42\\x07\\n\\x05valueB.\\n\\x18org.tensorflow.frameworkB\\rSummaryProtosP\\x01\\xf8\\x01\\x01\\x62\\x06proto3')\n\n_globals = globals()\n_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)\n_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tensorboardX.proto.summary_pb2', _globals)\nif _descriptor._USE_C_DESCRIPTORS == False:\n\n  DESCRIPTOR._options = None\n  DESCRIPTOR._serialized_options = b'\\n\\030org.tensorflow.frameworkB\\rSummaryProtosP\\001\\370\\001\\001'\n  _HISTOGRAMPROTO.fields_by_name['bucket_limit']._options = None\n  _HISTOGRAMPROTO.fields_by_name['bucket_limit']._serialized_options = b'\\020\\001'\n  _HISTOGRAMPROTO.fields_by_name['bucket']._options = None\n  _HISTOGRAMPROTO.fields_by_name['bucket']._serialized_options = b'\\020\\001'\n  _globals['_SUMMARYDESCRIPTION']._serialized_start=83\n  _globals['_SUMMARYDESCRIPTION']._serialized_end=122\n  _globals['_HISTOGRAMPROTO']._serialized_start=125\n  _globals['_HISTOGRAMPROTO']._serialized_end=260\n  _globals['_SUMMARYMETADATA']._serialized_start=263\n  _globals['_SUMMARYMETADATA']._serialized_end=446\n  _globals['_SUMMARYMETADATA_PLUGINDATA']._serialized_start=396\n  _globals['_SUMMARYMETADATA_PLUGINDATA']._serialized_end=446\n  _globals['_SUMMARY']._serialized_start=449\n  _globals['_SUMMARY']._serialized_end=1067\n  _globals['_SUMMARY_IMAGE']._serialized_start=504\n  _globals['_SUMMARY_IMAGE']._serialized_end=592\n  _globals['_SUMMARY_AUDIO']._serialized_start=594\n  _globals['_SUMMARY_AUDIO']._serialized_end=719\n  _globals['_SUMMARY_VALUE']._serialized_start=722\n  _globals['_SUMMARY_VALUE']._serialized_end=1067\n# @@protoc_insertion_point(module_scope)\n"
  },
  {
    "path": "tensorboardX/proto/tensor.proto",
    "content": "syntax = \"proto3\";\n\npackage tensorboardX;\noption cc_enable_arenas = true;\noption java_outer_classname = \"TensorProtos\";\noption java_multiple_files = true;\noption java_package = \"org.tensorflow.framework\";\n\nimport \"tensorboardX/proto/resource_handle.proto\";\nimport \"tensorboardX/proto/tensor_shape.proto\";\nimport \"tensorboardX/proto/types.proto\";\n\n// Protocol buffer representing a tensor.\nmessage TensorProto {\n  DataType dtype = 1;\n\n  // Shape of the tensor.  TODO(touts): sort out the 0-rank issues.\n  TensorShapeProto tensor_shape = 2;\n\n  // Only one of the representations below is set, one of \"tensor_contents\" and\n  // the \"xxx_val\" attributes.  We are not using oneof because as oneofs cannot\n  // contain repeated fields it would require another extra set of messages.\n\n  // Version number.\n  //\n  // In version 0, if the \"repeated xxx\" representations contain only one\n  // element, that element is repeated to fill the shape.  This makes it easy\n  // to represent a constant Tensor with a single value.\n  int32 version_number = 3;\n\n  // Serialized raw tensor content from either Tensor::AsProtoTensorContent or\n  // memcpy in tensorflow::grpc::EncodeTensorToByteBuffer. This representation\n  // can be used for all tensor types. The purpose of this representation is to\n  // reduce serialization overhead during RPC call by avoiding serialization of\n  // many repeated small items.\n  bytes tensor_content = 4;\n\n  // Type specific representations that make it easy to create tensor protos in\n  // all languages.  Only the representation corresponding to \"dtype\" can\n  // be set.  The values hold the flattened representation of the tensor in\n  // row major order.\n\n  // DT_HALF. Note that since protobuf has no int16 type, we'll have some\n  // pointless zero padding for each value here.\n  repeated int32 half_val = 13 [packed = true];\n\n  // DT_FLOAT.\n  repeated float float_val = 5 [packed = true];\n\n  // DT_DOUBLE.\n  repeated double double_val = 6 [packed = true];\n\n  // DT_INT32, DT_INT16, DT_INT8, DT_UINT8.\n  repeated int32 int_val = 7 [packed = true];\n\n  // DT_STRING\n  repeated bytes string_val = 8;\n\n  // DT_COMPLEX64. scomplex_val(2*i) and scomplex_val(2*i+1) are real\n  // and imaginary parts of i-th single precision complex.\n  repeated float scomplex_val = 9 [packed = true];\n\n  // DT_INT64\n  repeated int64 int64_val = 10 [packed = true];\n\n  // DT_BOOL\n  repeated bool bool_val = 11 [packed = true];\n\n  // DT_COMPLEX128. dcomplex_val(2*i) and dcomplex_val(2*i+1) are real\n  // and imaginary parts of i-th double precision complex.\n  repeated double dcomplex_val = 12 [packed = true];\n\n  // DT_RESOURCE\n  repeated ResourceHandleProto resource_handle_val = 14;\n};\n"
  },
  {
    "path": "tensorboardX/proto/tensor_pb2.py",
    "content": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: tensorboardX/proto/tensor.proto\n\"\"\"Generated protocol buffer code.\"\"\"\nfrom google.protobuf.internal import builder as _builder\nfrom google.protobuf import descriptor as _descriptor\nfrom google.protobuf import descriptor_pool as _descriptor_pool\nfrom google.protobuf import symbol_database as _symbol_database\n# @@protoc_insertion_point(imports)\n\n_sym_db = _symbol_database.Default()\n\n\nfrom tensorboardX.proto import resource_handle_pb2 as tensorboardX_dot_proto_dot_resource__handle__pb2\nfrom tensorboardX.proto import tensor_shape_pb2 as tensorboardX_dot_proto_dot_tensor__shape__pb2\nfrom tensorboardX.proto import types_pb2 as tensorboardX_dot_proto_dot_types__pb2\n\n\nDESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\\n\\x1ftensorboardX/proto/tensor.proto\\x12\\x0ctensorboardX\\x1a(tensorboardX/proto/resource_handle.proto\\x1a%tensorboardX/proto/tensor_shape.proto\\x1a\\x1etensorboardX/proto/types.proto\\\"\\xa9\\x03\\n\\x0bTensorProto\\x12%\\n\\x05\\x64type\\x18\\x01 \\x01(\\x0e\\x32\\x16.tensorboardX.DataType\\x12\\x34\\n\\x0ctensor_shape\\x18\\x02 \\x01(\\x0b\\x32\\x1e.tensorboardX.TensorShapeProto\\x12\\x16\\n\\x0eversion_number\\x18\\x03 \\x01(\\x05\\x12\\x16\\n\\x0etensor_content\\x18\\x04 \\x01(\\x0c\\x12\\x14\\n\\x08half_val\\x18\\r \\x03(\\x05\\x42\\x02\\x10\\x01\\x12\\x15\\n\\tfloat_val\\x18\\x05 \\x03(\\x02\\x42\\x02\\x10\\x01\\x12\\x16\\n\\ndouble_val\\x18\\x06 \\x03(\\x01\\x42\\x02\\x10\\x01\\x12\\x13\\n\\x07int_val\\x18\\x07 \\x03(\\x05\\x42\\x02\\x10\\x01\\x12\\x12\\n\\nstring_val\\x18\\x08 \\x03(\\x0c\\x12\\x18\\n\\x0cscomplex_val\\x18\\t \\x03(\\x02\\x42\\x02\\x10\\x01\\x12\\x15\\n\\tint64_val\\x18\\n \\x03(\\x03\\x42\\x02\\x10\\x01\\x12\\x14\\n\\x08\\x62ool_val\\x18\\x0b \\x03(\\x08\\x42\\x02\\x10\\x01\\x12\\x18\\n\\x0c\\x64\\x63omplex_val\\x18\\x0c \\x03(\\x01\\x42\\x02\\x10\\x01\\x12>\\n\\x13resource_handle_val\\x18\\x0e \\x03(\\x0b\\x32!.tensorboardX.ResourceHandleProtoB-\\n\\x18org.tensorflow.frameworkB\\x0cTensorProtosP\\x01\\xf8\\x01\\x01\\x62\\x06proto3')\n\n_globals = globals()\n_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)\n_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tensorboardX.proto.tensor_pb2', _globals)\nif _descriptor._USE_C_DESCRIPTORS == False:\n\n  DESCRIPTOR._options = None\n  DESCRIPTOR._serialized_options = b'\\n\\030org.tensorflow.frameworkB\\014TensorProtosP\\001\\370\\001\\001'\n  _TENSORPROTO.fields_by_name['half_val']._options = None\n  _TENSORPROTO.fields_by_name['half_val']._serialized_options = b'\\020\\001'\n  _TENSORPROTO.fields_by_name['float_val']._options = None\n  _TENSORPROTO.fields_by_name['float_val']._serialized_options = b'\\020\\001'\n  _TENSORPROTO.fields_by_name['double_val']._options = None\n  _TENSORPROTO.fields_by_name['double_val']._serialized_options = b'\\020\\001'\n  _TENSORPROTO.fields_by_name['int_val']._options = None\n  _TENSORPROTO.fields_by_name['int_val']._serialized_options = b'\\020\\001'\n  _TENSORPROTO.fields_by_name['scomplex_val']._options = None\n  _TENSORPROTO.fields_by_name['scomplex_val']._serialized_options = b'\\020\\001'\n  _TENSORPROTO.fields_by_name['int64_val']._options = None\n  _TENSORPROTO.fields_by_name['int64_val']._serialized_options = b'\\020\\001'\n  _TENSORPROTO.fields_by_name['bool_val']._options = None\n  _TENSORPROTO.fields_by_name['bool_val']._serialized_options = b'\\020\\001'\n  _TENSORPROTO.fields_by_name['dcomplex_val']._options = None\n  _TENSORPROTO.fields_by_name['dcomplex_val']._serialized_options = b'\\020\\001'\n  _globals['_TENSORPROTO']._serialized_start=163\n  _globals['_TENSORPROTO']._serialized_end=588\n# @@protoc_insertion_point(module_scope)\n"
  },
  {
    "path": "tensorboardX/proto/tensor_shape.proto",
    "content": "// Protocol buffer representing the shape of tensors.\n\nsyntax = \"proto3\";\noption cc_enable_arenas = true;\noption java_outer_classname = \"TensorShapeProtos\";\noption java_multiple_files = true;\noption java_package = \"org.tensorflow.framework\";\n\npackage tensorboardX;\n\n// Dimensions of a tensor.\nmessage TensorShapeProto {\n  // One dimension of the tensor.\n  message Dim {\n    // Size of the tensor in that dimension.\n    // This value must be >= -1, but values of -1 are reserved for \"unknown\"\n    // shapes (values of -1 mean \"unknown\" dimension).  Certain wrappers\n    // that work with TensorShapeProto may fail at runtime when deserializing\n    // a TensorShapeProto containing a dim value of -1.\n    int64 size = 1;\n\n    // Optional name of the tensor dimension.\n    string name = 2;\n  };\n\n  // Dimensions of the tensor, such as {\"input\", 30}, {\"output\", 40}\n  // for a 30 x 40 2D tensor.  If an entry has size -1, this\n  // corresponds to a dimension of unknown size. The names are\n  // optional.\n  //\n  // The order of entries in \"dim\" matters: It indicates the layout of the\n  // values in the tensor in-memory representation.\n  //\n  // The first entry in \"dim\" is the outermost dimension used to layout the\n  // values, the last entry is the innermost dimension.  This matches the\n  // in-memory layout of RowMajor Eigen tensors.\n  //\n  // If \"dim.size()\" > 0, \"unknown_rank\" must be false.\n  repeated Dim dim = 2;\n\n  // If true, the number of dimensions in the shape is unknown.\n  //\n  // If true, \"dim.size()\" must be 0.\n  bool unknown_rank = 3;\n};\n"
  },
  {
    "path": "tensorboardX/proto/tensor_shape_pb2.py",
    "content": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: tensorboardX/proto/tensor_shape.proto\n\"\"\"Generated protocol buffer code.\"\"\"\nfrom google.protobuf.internal import builder as _builder\nfrom google.protobuf import descriptor as _descriptor\nfrom google.protobuf import descriptor_pool as _descriptor_pool\nfrom google.protobuf import symbol_database as _symbol_database\n# @@protoc_insertion_point(imports)\n\n_sym_db = _symbol_database.Default()\n\n\n\n\nDESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\\n%tensorboardX/proto/tensor_shape.proto\\x12\\x0ctensorboardX\\\"|\\n\\x10TensorShapeProto\\x12/\\n\\x03\\x64im\\x18\\x02 \\x03(\\x0b\\x32\\\".tensorboardX.TensorShapeProto.Dim\\x12\\x14\\n\\x0cunknown_rank\\x18\\x03 \\x01(\\x08\\x1a!\\n\\x03\\x44im\\x12\\x0c\\n\\x04size\\x18\\x01 \\x01(\\x03\\x12\\x0c\\n\\x04name\\x18\\x02 \\x01(\\tB2\\n\\x18org.tensorflow.frameworkB\\x11TensorShapeProtosP\\x01\\xf8\\x01\\x01\\x62\\x06proto3')\n\n_globals = globals()\n_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)\n_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tensorboardX.proto.tensor_shape_pb2', _globals)\nif _descriptor._USE_C_DESCRIPTORS == False:\n\n  DESCRIPTOR._options = None\n  DESCRIPTOR._serialized_options = b'\\n\\030org.tensorflow.frameworkB\\021TensorShapeProtosP\\001\\370\\001\\001'\n  _globals['_TENSORSHAPEPROTO']._serialized_start=55\n  _globals['_TENSORSHAPEPROTO']._serialized_end=179\n  _globals['_TENSORSHAPEPROTO_DIM']._serialized_start=146\n  _globals['_TENSORSHAPEPROTO_DIM']._serialized_end=179\n# @@protoc_insertion_point(module_scope)\n"
  },
  {
    "path": "tensorboardX/proto/types.proto",
    "content": "syntax = \"proto3\";\n\npackage tensorboardX;\noption cc_enable_arenas = true;\noption java_outer_classname = \"TypesProtos\";\noption java_multiple_files = true;\noption java_package = \"org.tensorflow.framework\";\n\n// LINT.IfChange\nenum DataType {\n  // Not a legal value for DataType.  Used to indicate a DataType field\n  // has not been set.\n  DT_INVALID = 0;\n\n  // Data types that all computation devices are expected to be\n  // capable to support.\n  DT_FLOAT = 1;\n  DT_DOUBLE = 2;\n  DT_INT32 = 3;\n  DT_UINT8 = 4;\n  DT_INT16 = 5;\n  DT_INT8 = 6;\n  DT_STRING = 7;\n  DT_COMPLEX64 = 8;  // Single-precision complex\n  DT_INT64 = 9;\n  DT_BOOL = 10;\n  DT_QINT8 = 11;     // Quantized int8\n  DT_QUINT8 = 12;    // Quantized uint8\n  DT_QINT32 = 13;    // Quantized int32\n  DT_BFLOAT16 = 14;  // Float32 truncated to 16 bits.  Only for cast ops.\n  DT_QINT16 = 15;    // Quantized int16\n  DT_QUINT16 = 16;   // Quantized uint16\n  DT_UINT16 = 17;\n  DT_COMPLEX128 = 18;  // Double-precision complex\n  DT_HALF = 19;\n  DT_RESOURCE = 20;\n\n  // TODO(josh11b): DT_GENERIC_PROTO = ??;\n  // TODO(jeff,josh11b): DT_UINT64?  DT_UINT32?\n\n  // Do not use!  These are only for parameters.  Every enum above\n  // should have a corresponding value below (verified by types_test).\n  DT_FLOAT_REF = 101;\n  DT_DOUBLE_REF = 102;\n  DT_INT32_REF = 103;\n  DT_UINT8_REF = 104;\n  DT_INT16_REF = 105;\n  DT_INT8_REF = 106;\n  DT_STRING_REF = 107;\n  DT_COMPLEX64_REF = 108;\n  DT_INT64_REF = 109;\n  DT_BOOL_REF = 110;\n  DT_QINT8_REF = 111;\n  DT_QUINT8_REF = 112;\n  DT_QINT32_REF = 113;\n  DT_BFLOAT16_REF = 114;\n  DT_QINT16_REF = 115;\n  DT_QUINT16_REF = 116;\n  DT_UINT16_REF = 117;\n  DT_COMPLEX128_REF = 118;\n  DT_HALF_REF = 119;\n  DT_RESOURCE_REF = 120;\n}\n// LINT.ThenChange(https://www.tensorflow.org/code/tensorflow/c/c_api.h,https://www.tensorflow.org/code/tensorflow/go/tensor.go)\n"
  },
  {
    "path": "tensorboardX/proto/types_pb2.py",
    "content": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: tensorboardX/proto/types.proto\n\"\"\"Generated protocol buffer code.\"\"\"\nfrom google.protobuf.internal import builder as _builder\nfrom google.protobuf import descriptor as _descriptor\nfrom google.protobuf import descriptor_pool as _descriptor_pool\nfrom google.protobuf import symbol_database as _symbol_database\n# @@protoc_insertion_point(imports)\n\n_sym_db = _symbol_database.Default()\n\n\n\n\nDESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\\n\\x1etensorboardX/proto/types.proto\\x12\\x0ctensorboardX*\\xc2\\x05\\n\\x08\\x44\\x61taType\\x12\\x0e\\n\\nDT_INVALID\\x10\\x00\\x12\\x0c\\n\\x08\\x44T_FLOAT\\x10\\x01\\x12\\r\\n\\tDT_DOUBLE\\x10\\x02\\x12\\x0c\\n\\x08\\x44T_INT32\\x10\\x03\\x12\\x0c\\n\\x08\\x44T_UINT8\\x10\\x04\\x12\\x0c\\n\\x08\\x44T_INT16\\x10\\x05\\x12\\x0b\\n\\x07\\x44T_INT8\\x10\\x06\\x12\\r\\n\\tDT_STRING\\x10\\x07\\x12\\x10\\n\\x0c\\x44T_COMPLEX64\\x10\\x08\\x12\\x0c\\n\\x08\\x44T_INT64\\x10\\t\\x12\\x0b\\n\\x07\\x44T_BOOL\\x10\\n\\x12\\x0c\\n\\x08\\x44T_QINT8\\x10\\x0b\\x12\\r\\n\\tDT_QUINT8\\x10\\x0c\\x12\\r\\n\\tDT_QINT32\\x10\\r\\x12\\x0f\\n\\x0b\\x44T_BFLOAT16\\x10\\x0e\\x12\\r\\n\\tDT_QINT16\\x10\\x0f\\x12\\x0e\\n\\nDT_QUINT16\\x10\\x10\\x12\\r\\n\\tDT_UINT16\\x10\\x11\\x12\\x11\\n\\rDT_COMPLEX128\\x10\\x12\\x12\\x0b\\n\\x07\\x44T_HALF\\x10\\x13\\x12\\x0f\\n\\x0b\\x44T_RESOURCE\\x10\\x14\\x12\\x10\\n\\x0c\\x44T_FLOAT_REF\\x10\\x65\\x12\\x11\\n\\rDT_DOUBLE_REF\\x10\\x66\\x12\\x10\\n\\x0c\\x44T_INT32_REF\\x10g\\x12\\x10\\n\\x0c\\x44T_UINT8_REF\\x10h\\x12\\x10\\n\\x0c\\x44T_INT16_REF\\x10i\\x12\\x0f\\n\\x0b\\x44T_INT8_REF\\x10j\\x12\\x11\\n\\rDT_STRING_REF\\x10k\\x12\\x14\\n\\x10\\x44T_COMPLEX64_REF\\x10l\\x12\\x10\\n\\x0c\\x44T_INT64_REF\\x10m\\x12\\x0f\\n\\x0b\\x44T_BOOL_REF\\x10n\\x12\\x10\\n\\x0c\\x44T_QINT8_REF\\x10o\\x12\\x11\\n\\rDT_QUINT8_REF\\x10p\\x12\\x11\\n\\rDT_QINT32_REF\\x10q\\x12\\x13\\n\\x0f\\x44T_BFLOAT16_REF\\x10r\\x12\\x11\\n\\rDT_QINT16_REF\\x10s\\x12\\x12\\n\\x0e\\x44T_QUINT16_REF\\x10t\\x12\\x11\\n\\rDT_UINT16_REF\\x10u\\x12\\x15\\n\\x11\\x44T_COMPLEX128_REF\\x10v\\x12\\x0f\\n\\x0b\\x44T_HALF_REF\\x10w\\x12\\x13\\n\\x0f\\x44T_RESOURCE_REF\\x10xB,\\n\\x18org.tensorflow.frameworkB\\x0bTypesProtosP\\x01\\xf8\\x01\\x01\\x62\\x06proto3')\n\n_globals = globals()\n_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)\n_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tensorboardX.proto.types_pb2', _globals)\nif _descriptor._USE_C_DESCRIPTORS == False:\n\n  DESCRIPTOR._options = None\n  DESCRIPTOR._serialized_options = b'\\n\\030org.tensorflow.frameworkB\\013TypesProtosP\\001\\370\\001\\001'\n  _globals['_DATATYPE']._serialized_start=49\n  _globals['_DATATYPE']._serialized_end=755\n# @@protoc_insertion_point(module_scope)\n"
  },
  {
    "path": "tensorboardX/proto/versions.proto",
    "content": "syntax = \"proto3\";\n\npackage tensorboardX;\noption cc_enable_arenas = true;\noption java_outer_classname = \"VersionsProtos\";\noption java_multiple_files = true;\noption java_package = \"org.tensorflow.framework\";\n\n// Version information for a piece of serialized data\n//\n// There are different types of versions for each type of data\n// (GraphDef, etc.), but they all have the same common shape\n// described here.\n//\n// Each consumer has \"consumer\" and \"min_producer\" versions (specified\n// elsewhere).  A consumer is allowed to consume this data if\n//\n//   producer >= min_producer\n//   consumer >= min_consumer\n//   consumer not in bad_consumers\n//\nmessage VersionDef {\n  // The version of the code that produced this data.\n  int32 producer = 1;\n\n  // Any consumer below this version is not allowed to consume this data.\n  int32 min_consumer = 2;\n\n  // Specific consumer versions which are disallowed (e.g. due to bugs).\n  repeated int32 bad_consumers = 3;\n};\n"
  },
  {
    "path": "tensorboardX/proto/versions_pb2.py",
    "content": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: tensorboardX/proto/versions.proto\n\"\"\"Generated protocol buffer code.\"\"\"\nfrom google.protobuf.internal import builder as _builder\nfrom google.protobuf import descriptor as _descriptor\nfrom google.protobuf import descriptor_pool as _descriptor_pool\nfrom google.protobuf import symbol_database as _symbol_database\n# @@protoc_insertion_point(imports)\n\n_sym_db = _symbol_database.Default()\n\n\n\n\nDESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\\n!tensorboardX/proto/versions.proto\\x12\\x0ctensorboardX\\\"K\\n\\nVersionDef\\x12\\x10\\n\\x08producer\\x18\\x01 \\x01(\\x05\\x12\\x14\\n\\x0cmin_consumer\\x18\\x02 \\x01(\\x05\\x12\\x15\\n\\rbad_consumers\\x18\\x03 \\x03(\\x05\\x42/\\n\\x18org.tensorflow.frameworkB\\x0eVersionsProtosP\\x01\\xf8\\x01\\x01\\x62\\x06proto3')\n\n_globals = globals()\n_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)\n_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tensorboardX.proto.versions_pb2', _globals)\nif _descriptor._USE_C_DESCRIPTORS == False:\n\n  DESCRIPTOR._options = None\n  DESCRIPTOR._serialized_options = b'\\n\\030org.tensorflow.frameworkB\\016VersionsProtosP\\001\\370\\001\\001'\n  _globals['_VERSIONDEF']._serialized_start=51\n  _globals['_VERSIONDEF']._serialized_end=126\n# @@protoc_insertion_point(module_scope)\n"
  },
  {
    "path": "tensorboardX/record_writer.py",
    "content": "\"\"\"\nTo write tf_record into file. Here we use it for tensorboard's event writting.\nThe code was borrowed from https://github.com/TeamHG-Memex/tensorboard_logger\n\"\"\"\n\nimport copy\nimport io\nimport os\nimport os.path\nimport re\nimport struct\n\ntry:\n    import boto3\n    S3_ENABLED = True\nexcept ImportError:\n    S3_ENABLED = False\ntry:\n    from google.cloud import storage\n    GCS_ENABLED = True\nexcept ImportError:\n    GCS_ENABLED = False\n\nfrom .crc32c import crc32c\n\n_VALID_OP_NAME_START = re.compile('^[A-Za-z0-9.]')\n_VALID_OP_NAME_PART = re.compile('[A-Za-z0-9_.\\\\-/]+')\n\n# Registry of writer factories by prefix backends.\n#\n# Currently supports \"s3://\" URLs for S3 based on boto,\n# \"gs://\" URLs for Google Cloud Storage and falls\n# back to local filesystem.\nREGISTERED_FACTORIES = {}\n\n\ndef register_writer_factory(prefix, factory):\n    if ':' in prefix:\n        raise ValueError('prefix cannot contain a :')\n    REGISTERED_FACTORIES[prefix] = factory\n\n\ndef directory_check(path):\n    '''Initialize the directory for log files.'''\n    try:\n        prefix = path.split(':')[0]\n        factory = REGISTERED_FACTORIES[prefix]\n        return factory.directory_check(path)\n    except KeyError:\n        if not os.path.exists(path):\n            os.makedirs(path)\n\n\ndef open_file(path):\n    '''Open a writer for outputting event files.'''\n    try:\n        prefix = path.split(':')[0]\n        factory = REGISTERED_FACTORIES[prefix]\n        return factory.open(path)\n    except KeyError:\n        return open(path, 'wb')\n\n\nclass S3RecordWriter:\n    \"\"\"Writes tensorboard protocol buffer files to S3.\"\"\"\n\n    def __init__(self, path):\n        if not S3_ENABLED:\n            raise ImportError(\"boto3 must be installed for S3 support.\")\n        self.path = path\n        self.buffer = io.BytesIO()\n        self.closed = False\n\n    def __del__(self):\n        if not self.closed:\n            self.close()\n\n    def bucket_and_path(self):\n        path = self.path\n        if path.startswith(\"s3://\"):\n            path = path[len(\"s3://\"):]\n        bp = path.split(\"/\")\n        bucket = bp[0]\n        path = path[1 + len(bucket):]\n        return bucket, path\n\n    def write(self, val):\n        self.buffer.write(val)\n\n    def flush(self):\n        s3 = boto3.client('s3', endpoint_url=os.environ.get('S3_ENDPOINT'))\n        bucket, path = self.bucket_and_path()\n        upload_buffer = copy.copy(self.buffer)\n        upload_buffer.seek(0)\n        s3.upload_fileobj(upload_buffer, bucket, path)\n\n    def close(self):\n        self.flush()\n        self.closed = True\n\n\nclass S3RecordWriterFactory:\n    \"\"\"Factory for event protocol buffer files to S3.\"\"\"\n\n    def open(self, path):\n        return S3RecordWriter(path)\n\n    def directory_check(self, path):\n        # S3 doesn't need directories created before files are added\n        # so we can just skip this check\n        pass\n\n\nregister_writer_factory(\"s3\", S3RecordWriterFactory())\n\n\nclass GCSRecordWriter:\n    \"\"\"Writes tensorboard protocol buffer files to Google Cloud Storage.\"\"\"\n\n    def __init__(self, path):\n        if not GCS_ENABLED:\n            raise ImportError(\"`google-cloud-storage` must be installed in order to use \"\n                              \"the 'gs://' protocol\")\n\n        self.path = path\n        self.buffer = io.BytesIO()\n\n        client = storage.Client()\n        bucket_name, filepath = self.bucket_and_path()\n        bucket = storage.Bucket(client, bucket_name)\n        self.blob = storage.Blob(filepath, bucket)\n\n    def __del__(self):\n        self.close()\n\n    def bucket_and_path(self):\n        path = self.path\n        if path.startswith(\"gs://\"):\n            path = path[len(\"gs://\"):]\n        bp = path.split(\"/\")\n        bucket = bp[0]\n        path = path[1 + len(bucket):]\n        return bucket, path\n\n    def write(self, val):\n        self.buffer.write(val)\n\n    def flush(self):\n        upload_buffer = copy.copy(self.buffer)\n        upload_buffer.seek(0)\n\n        # work with blob generation, so that uploading will automatically retry in case of connection errors\n        blob_generation = self.blob.generation\n        self.blob.upload_from_string(data=upload_buffer.getvalue(),\n                                     if_generation_match=blob_generation)\n\n    def close(self):\n        self.flush()\n\n\nclass GCSRecordWriterFactory:\n    \"\"\"Factory for event protocol buffer files to Google Cloud Storage.\"\"\"\n\n    def open(self, path):\n        return GCSRecordWriter(path)\n\n    def directory_check(self, path):\n        # Google Cloud Storage doesn't need directories created before files\n        # are added so we can just skip this check\n        pass\n\n\nregister_writer_factory(\"gs\", GCSRecordWriterFactory())\n\n\nclass RecordWriter:\n    def __init__(self, path):\n        self._name_to_tf_name = {}\n        self._tf_names = set()\n        self.path = path\n        self._writer = None\n        self._writer = open_file(path)\n\n    def write(self, data):\n        w = self._writer.write\n        header = struct.pack('Q', len(data))\n        w(header)\n        w(struct.pack('I', masked_crc32c(header)))\n        w(data)\n        w(struct.pack('I', masked_crc32c(data)))\n\n    def flush(self):\n        self._writer.flush()\n\n    def close(self):\n        self._writer.close()\n\n\ndef masked_crc32c(data):\n    x = u32(crc32c(data))\n    return u32(((x >> 15) | u32(x << 17)) + 0xa282ead8)\n\n\ndef u32(x):\n    return x & 0xffffffff\n\n\ndef make_valid_tf_name(name):\n    if not _VALID_OP_NAME_START.match(name):\n        # Must make it valid somehow, but don't want to remove stuff\n        name = '.' + name\n    return '_'.join(_VALID_OP_NAME_PART.findall(name))\n"
  },
  {
    "path": "tensorboardX/summary.py",
    "content": "import logging\nimport os\nimport re as _re\n\nimport numpy as np\n\nfrom .proto import layout_pb2\nfrom .proto.plugin_mesh_pb2 import MeshPluginData\nfrom .proto.plugin_pr_curve_pb2 import PrCurvePluginData\nfrom .proto.plugin_text_pb2 import TextPluginData\n\n# pylint: disable=unused-import\nfrom .proto.summary_pb2 import HistogramProto, Summary, SummaryMetadata\nfrom .proto.tensor_pb2 import TensorProto\nfrom .proto.tensor_shape_pb2 import TensorShapeProto\nfrom .utils import _prepare_video, convert_to_HWC, convert_to_NTCHW\nfrom .x2num import make_np\n\nlogger = logging.getLogger(__name__)\n\n_INVALID_TAG_CHARACTERS = _re.compile(r'[^-/\\w\\.]')\n\n\ndef _clean_tag(name):\n    # In the past, the first argument to summary ops was a tag, which allowed\n    # arbitrary characters. Now we are changing the first argument to be the node\n    # name. This has a number of advantages (users of summary ops now can\n    # take advantage of the tf name scope system) but risks breaking existing\n    # usage, because a much smaller set of characters are allowed in node names.\n    # This function replaces all illegal characters with _s, and logs a warning.\n    # It also strips leading slashes from the name.\n    if name is not None:\n        new_name = _INVALID_TAG_CHARACTERS.sub('_', name)\n        new_name = new_name.lstrip('/')  # Remove leading slashes\n        if new_name != name:\n            logger.info(\n                f'Summary name {name} is illegal; using {new_name} instead.')\n            name = new_name\n    return name\n\n\ndef _draw_single_box(image, xmin, ymin, xmax, ymax, display_str, color='black', color_text='black', thickness=2):\n    from PIL import ImageDraw, ImageFont\n    font = ImageFont.load_default()\n    draw = ImageDraw.Draw(image)\n    (left, right, top, bottom) = (xmin, xmax, ymin, ymax)\n    draw.line([(left, top), (left, bottom), (right, bottom),\n               (right, top), (left, top)], width=thickness, fill=color)\n    if display_str:\n        text_bottom = bottom\n        # Reverse list and print from bottom to top.\n        l, t, r, b = font.getbbox(display_str)\n        text_width, text_height = r - l, b - t\n        margin = np.ceil(0.05 * text_height)\n        draw.rectangle(\n            [(left, text_bottom - text_height - 2 * margin),\n             (left + text_width, text_bottom)], fill=color\n        )\n        draw.text(\n            (left + margin, text_bottom - text_height - margin),\n            display_str, fill=color_text, font=font\n        )\n    return image\n\n\ndef hparams(hparam_dict=None, metric_dict=None):\n    from tensorboardX.proto.api_pb2 import (\n        DataType,\n        Experiment,\n        HParamInfo,\n        MetricInfo,\n        MetricName,\n        Status,\n    )\n    from tensorboardX.proto.plugin_hparams_pb2 import (\n        HParamsPluginData,\n        SessionEndInfo,\n        SessionStartInfo,\n    )\n\n    PLUGIN_NAME = 'hparams'\n    PLUGIN_DATA_VERSION = 0\n\n    EXPERIMENT_TAG = '_hparams_/experiment'\n    SESSION_START_INFO_TAG = '_hparams_/session_start_info'\n    SESSION_END_INFO_TAG = '_hparams_/session_end_info'\n\n    # TODO: expose other parameters in the future.\n    # hp = HParamInfo(name='lr',display_name='learning rate', type=DataType.DATA_TYPE_FLOAT64, domain_interval=Interval(min_value=10, max_value=100))  # noqa E501\n    # mt = MetricInfo(name=MetricName(tag='accuracy'), display_name='accuracy', description='', dataset_type=DatasetType.DATASET_VALIDATION)  # noqa E501\n    # exp = Experiment(name='123', description='456', time_created_secs=100.0, hparam_infos=[hp], metric_infos=[mt], user='tw')  # noqa E501\n\n    hps = []\n\n    ssi = SessionStartInfo()\n    for k, v in hparam_dict.items():\n        if v is None:\n            continue\n\n        if isinstance(v, str):\n            ssi.hparams[k].string_value = v\n            hps.append(HParamInfo(name=k, type=DataType.Value(\"DATA_TYPE_STRING\")))\n            continue\n\n        if isinstance(v, bool):\n            ssi.hparams[k].bool_value = v\n            hps.append(HParamInfo(name=k, type=DataType.Value(\"DATA_TYPE_BOOL\")))\n            continue\n\n        if isinstance(v, (int, float)):\n            v = make_np(v)[0]\n            ssi.hparams[k].number_value = v\n            hps.append(HParamInfo(name=k, type=DataType.Value(\"DATA_TYPE_FLOAT64\")))\n            continue\n\n        if callable(v):\n            ssi.hparams[k].string_value = getattr(v, '__name__', str(v))\n            hps.append(HParamInfo(name=k, type=DataType.Value(\"DATA_TYPE_STRING\")))\n            continue\n\n        hps.append(HParamInfo(name=k, type=DataType.Value(\"DATA_TYPE_UNSET\")))\n\n    content = HParamsPluginData(session_start_info=ssi, version=PLUGIN_DATA_VERSION)\n    smd = SummaryMetadata(plugin_data=SummaryMetadata.PluginData(plugin_name=PLUGIN_NAME,\n                                                                 content=content.SerializeToString()))\n    ssi = Summary(value=[Summary.Value(tag=SESSION_START_INFO_TAG, metadata=smd)])\n\n    mts = [MetricInfo(name=MetricName(tag=k)) for k in metric_dict]\n\n    exp = Experiment(hparam_infos=hps, metric_infos=mts)\n    content = HParamsPluginData(experiment=exp, version=PLUGIN_DATA_VERSION)\n    smd = SummaryMetadata(plugin_data=SummaryMetadata.PluginData(plugin_name=PLUGIN_NAME,\n                                                                 content=content.SerializeToString()))\n    exp = Summary(value=[Summary.Value(tag=EXPERIMENT_TAG, metadata=smd)])\n\n    sei = SessionEndInfo(status=Status.Value(\"STATUS_SUCCESS\"))\n    content = HParamsPluginData(session_end_info=sei, version=PLUGIN_DATA_VERSION)\n    smd = SummaryMetadata(plugin_data=SummaryMetadata.PluginData(plugin_name=PLUGIN_NAME,\n                                                                 content=content.SerializeToString()))\n    sei = Summary(value=[Summary.Value(tag=SESSION_END_INFO_TAG, metadata=smd)])\n    return exp, ssi, sei\n\n\ndef scalar(name, scalar, display_name=\"\", summary_description=\"\"):\n    \"\"\"Outputs a `Summary` protocol buffer containing a single scalar value.\n    The generated Summary has a Tensor.proto containing the input Tensor.\n    Args:\n      name: A name for the generated node. Will also serve as the series name in\n        TensorBoard.\n      tensor: A real numeric Tensor containing a single value.\n      display_name: The title of the plot. If empty string is passed, `name` will be used.\n      summary_description: The comprehensive text that will showed by clicking the information icon on TensorBoard.\n    Returns:\n      A scalar `Tensor` of type `string`. Which contains a `Summary` protobuf.\n    Raises:\n      ValueError: If tensor has the wrong shape or type.\n    \"\"\"\n    name = _clean_tag(name)\n    scalar = make_np(scalar)\n    assert scalar.squeeze().ndim == 0, 'scalar should be 0D'\n    scalar = float(scalar.squeeze())\n    if display_name == \"\" and summary_description == \"\":\n        return Summary(value=[Summary.Value(tag=name, simple_value=scalar)])\n\n    metadata = SummaryMetadata(display_name=display_name, summary_description=summary_description)\n    return Summary(value=[Summary.Value(tag=name, simple_value=scalar, metadata=metadata)])\n\n\ndef histogram_raw(name, min, max, num, sum, sum_squares, bucket_limits, bucket_counts):\n    # pylint: disable=line-too-long\n    \"\"\"Outputs a `Summary` protocol buffer with a histogram.\n    The generated\n    [`Summary`](https://www.tensorflow.org/code/tensorflow/core/framework/summary.proto)\n    has one summary value containing a histogram for `values`.\n    Args:\n      name: A name for the generated node. Will also serve as a series name in\n        TensorBoard.\n      min: A float or int min value\n      max: A float or int max value\n      num: Int number of values\n      sum: Float or int sum of all values\n      sum_squares: Float or int sum of squares for all values\n      bucket_limits: A numeric `Tensor` with upper value per bucket\n      bucket_counts: A numeric `Tensor` with number of values per bucket\n    Returns:\n      A scalar `Tensor` of type `string`. The serialized `Summary` protocol\n      buffer.\n    \"\"\"\n    hist = HistogramProto(min=min,\n                          max=max,\n                          num=num,\n                          sum=sum,\n                          sum_squares=sum_squares,\n                          bucket_limit=bucket_limits,\n                          bucket=bucket_counts)\n    return Summary(value=[Summary.Value(tag=name, histo=hist)])\n\n\ndef histogram(name, values, bins, max_bins=None):\n    # pylint: disable=line-too-long\n    \"\"\"Outputs a `Summary` protocol buffer with a histogram.\n    The generated\n    [`Summary`](https://www.tensorflow.org/code/tensorflow/core/framework/summary.proto)\n    has one summary value containing a histogram for `values`.\n    This op reports an `InvalidArgument` error if any value is not finite.\n    Args:\n      name: A name for the generated node. Will also serve as a series name in\n        TensorBoard.\n      values: A real numeric `Tensor`. Any shape. Values to use to\n        build the histogram.\n    Returns:\n      A scalar `Tensor` of type `string`. The serialized `Summary` protocol\n      buffer.\n    \"\"\"\n    name = _clean_tag(name)\n    values = make_np(values)\n    hist = make_histogram(values.astype(float), bins, max_bins)\n    return Summary(value=[Summary.Value(tag=name, histo=hist)])\n\n\ndef make_histogram(values, bins, max_bins=None):\n    \"\"\"Convert values into a histogram proto using logic from histogram.cc.\"\"\"\n    if values.size == 0:\n        raise ValueError('The input has no element.')\n    values = values.reshape(-1)\n    counts, limits = np.histogram(values, bins=bins)\n    num_bins = len(counts)\n    if max_bins is not None and num_bins > max_bins:\n        subsampling = num_bins // max_bins\n        subsampling_remainder = num_bins % subsampling\n        if subsampling_remainder != 0:\n            counts = np.pad(counts, pad_width=[[0, subsampling - subsampling_remainder]],\n                            mode=\"constant\", constant_values=0)\n        counts = counts.reshape(-1, subsampling).sum(axis=-1)\n        new_limits = np.empty((counts.size + 1,), limits.dtype)\n        new_limits[:-1] = limits[:-1:subsampling]\n        new_limits[-1] = limits[-1]\n        limits = new_limits\n\n    # Find the first and the last bin defining the support of the histogram:\n    cum_counts = np.cumsum(np.greater(counts, 0))\n    start, end = np.searchsorted(cum_counts, [0, cum_counts[-1] - 1], side=\"right\")\n    start = int(start)\n    end = int(end) + 1\n    del cum_counts\n\n    # TensorBoard only includes the right bin limits. To still have the leftmost limit\n    # included, we include an empty bin left.\n    # If start == 0, we need to add an empty one left, otherwise we can just include the bin left to the\n    # first nonzero-count bin:\n    counts = counts[start - 1:end] if start > 0 else np.concatenate([[0], counts[:end]])\n    limits = limits[start:end + 1]\n\n    if counts.size == 0 or limits.size == 0:\n        raise ValueError('The histogram is empty, please file a bug report.')\n\n    sum_sq = values.dot(values)\n    return HistogramProto(min=values.min(),\n                          max=values.max(),\n                          num=len(values),\n                          sum=values.sum(),\n                          sum_squares=sum_sq,\n                          bucket_limit=limits.tolist(),\n                          bucket=counts.tolist())\n\n\ndef image(tag, tensor, rescale=1, dataformats='CHW'):\n    \"\"\"Outputs a `Summary` protocol buffer with images.\n    The summary has up to `max_images` summary values containing images. The\n    images are built from `tensor` which must be 3-D with shape `[height, width,\n    channels]` and where `channels` can be:\n    *  1: `tensor` is interpreted as Grayscale.\n    *  3: `tensor` is interpreted as RGB.\n    *  4: `tensor` is interpreted as RGBA.\n\n    Args:\n      tag: A name for the generated node. Will also serve as a series name in\n        TensorBoard.\n      tensor: A 3-D `uint8` or `float32` `Tensor` of shape `[height, width,\n        channels]` where `channels` is 1, 3, or 4.\n        'tensor' can either have values in [0, 1] (float32) or [0, 255] (uint8).\n        The image() function will scale the image values to [0, 255] by applying\n        a scale factor of either 1 (uint8) or 255 (float32).\n    Returns:\n      A scalar `Tensor` of type `string`. The serialized `Summary` protocol\n      buffer.\n    \"\"\"\n    tag = _clean_tag(tag)\n    tensor = make_np(tensor)\n    tensor = convert_to_HWC(tensor, dataformats)\n    # Do not assume that user passes in values in [0, 255], use data type to detect\n    if tensor.dtype != np.uint8:\n        tensor = (tensor * 255.0).astype(np.uint8)\n\n    image = make_image(tensor, rescale=rescale)\n    return Summary(value=[Summary.Value(tag=tag, image=image)])\n\n\ndef image_boxes(tag, tensor_image, tensor_boxes, rescale=1, dataformats='CHW', labels=None):\n    '''Outputs a `Summary` protocol buffer with images.'''\n    tensor_image = make_np(tensor_image)\n    tensor_image = convert_to_HWC(tensor_image, dataformats)\n    tensor_boxes = make_np(tensor_boxes)\n\n    if tensor_image.dtype != np.uint8:\n        tensor_image = (tensor_image * 255.0).astype(np.uint8)\n\n    image = make_image(tensor_image,\n                       rescale=rescale,\n                       rois=tensor_boxes, labels=labels)\n    return Summary(value=[Summary.Value(tag=tag, image=image)])\n\n\ndef draw_boxes(disp_image, boxes, labels=None):\n    # xyxy format\n    num_boxes = boxes.shape[0]\n    list_gt = range(num_boxes)\n    for i in list_gt:\n        disp_image = _draw_single_box(disp_image,\n                                      boxes[i, 0],\n                                      boxes[i, 1],\n                                      boxes[i, 2],\n                                      boxes[i, 3],\n                                      display_str=None if labels is None else labels[i],\n                                      color='Red')\n    return disp_image\n\n\ndef make_image(tensor, rescale=1, rois=None, labels=None):\n    \"\"\"Convert an numpy representation image to Image protobuf\"\"\"\n    import PIL\n    from packaging.version import parse\n    from PIL import Image\n    height, width, channel = tensor.shape\n    scaled_height = int(height * rescale)\n    scaled_width = int(width * rescale)\n    image = Image.fromarray(tensor)\n    if rois is not None:\n        image = draw_boxes(image, rois, labels=labels)\n    if parse(PIL.__version__) >= parse('9.1.0'):\n        image = image.resize((scaled_width, scaled_height), Image.Resampling.LANCZOS)\n    else:\n        image = image.resize((scaled_width, scaled_height), Image.LANCZOS)\n\n    import io\n    output = io.BytesIO()\n    image.save(output, format='PNG')\n    image_string = output.getvalue()\n    output.close()\n    return Summary.Image(height=height,\n                         width=width,\n                         colorspace=channel,\n                         encoded_image_string=image_string)\n\n\ndef video(tag, tensor, fps=4, dataformats=\"NTCHW\"):\n    tag = _clean_tag(tag)\n    tensor = make_np(tensor)\n    tensor = convert_to_NTCHW(tensor, input_format=dataformats)\n    tensor = _prepare_video(tensor)\n    # If user passes in uint8, then we don't need to rescale by 255\n    if tensor.dtype != np.uint8:\n        tensor = (tensor * 255.0).astype(np.uint8)\n\n    video = make_video(tensor, fps)\n    return Summary(value=[Summary.Value(tag=tag, image=video)])\n\n\ndef make_video(tensor, fps):\n    import tempfile\n    from importlib.metadata import PackageNotFoundError\n    from importlib.metadata import version as get_version\n\n    from packaging.version import Version\n    try:\n        moviepy_version = Version(get_version(\"moviepy\"))\n    except PackageNotFoundError:\n        logger.error(\"moviepy is not installed.\")\n        return\n\n    try:\n        # moviepy v2+\n        from moviepy import ImageSequenceClip\n    except ImportError:\n        try:\n            # Fallback for all moviepy versions\n            from moviepy.video.io.ImageSequenceClip import ImageSequenceClip\n        except ImportError as e:\n            logger.error(\n                \"Can't create video. moviepy is installed, but can't import moviepy.video.io.ImageSequenceClip due to %r\",\n                e,\n            )\n            return\n\n    # Warn about potential moviepy and imageio version incompatibility\n    imageio_version = Version(get_version(\"imageio\"))\n    if moviepy_version >= Version(\"2\") and imageio_version < Version(\"2.29\"):\n        logger.error(\n            \"You are using moviepy >= 2.0.0 and imageio < 2.29.0. \"\n            \"This combination is known to cause issues when writing videos. \"\n            \"Please upgrade imageio to 2.29 or later, or use moviepy < 2.0.0.\"\n        )\n    t, h, w, c = tensor.shape\n\n    # Convert to RGB if moviepy v2/imageio>2.27 is used; 1-channel input is not supported.\n    if c == 1 and (\n        moviepy_version >= Version(\"2\")\n        or imageio_version > Version(\"2.27\")\n    ):\n        tensor = np.repeat(tensor, 3, axis=-1)\n    # encode sequence of images into gif string\n    clip = ImageSequenceClip(list(tensor), fps=fps)\n    with tempfile.NamedTemporaryFile(suffix='.gif', delete=False) as fp:\n        filename = fp.name\n\n        if moviepy_version < Version(\"1.0.0\"):\n            logger.warning('Upgrade to moviepy >= 1.0.0 to supress the progress bar.')\n            clip.write_gif(filename, verbose=False)\n        elif moviepy_version < Version(\"2.0.0dev1\"):\n            # moviepy >= 1.0.0 use logger=None to suppress output.\n            clip.write_gif(filename, verbose=False, logger=None)\n        else:\n            # Moviepy >= 2.0.0.dev1 removed the verbose argument\n            clip.write_gif(filename, logger=None)\n\n        with open(filename, 'rb') as f:\n            tensor_string = f.read()\n\n        try:\n            os.remove(filename)\n        except OSError:\n            logger.warning('The temporary file used by moviepy cannot be deleted.')\n\n    return Summary.Image(height=h, width=w, colorspace=c, encoded_image_string=tensor_string)\n\n\ndef audio(tag, tensor, sample_rate=44100):\n    \"\"\"\n    Args:\n      tensor: A 2-D float Tensor of shape `[frames, channels]` where `channels` is 1 or 2.\n        The values should between [-1, 1]. We also accepts 1-D tensor.\n    \"\"\"\n    import io\n\n    import soundfile\n    tensor = make_np(tensor)\n    if abs(tensor).max() > 1:\n        print('warning: audio amplitude out of range, auto clipped.')\n        tensor = tensor.clip(-1, 1)\n    if tensor.ndim == 1:  # old API, which expects single channel audio\n        tensor = np.expand_dims(tensor, axis=1)\n\n    assert tensor.ndim == 2, 'Input tensor should be 2 dimensional.'\n    length_frames, num_channels = tensor.shape\n    assert num_channels == 1 or num_channels == 2, 'The second dimension should be 1 or 2.'\n\n    with io.BytesIO() as fio:\n        soundfile.write(fio, tensor, samplerate=sample_rate, format='wav')\n        audio_string = fio.getvalue()\n\n    audio = Summary.Audio(sample_rate=sample_rate,\n                          num_channels=num_channels,\n                          length_frames=length_frames,\n                          encoded_audio_string=audio_string,\n                          content_type='audio/wav')\n    return Summary(value=[Summary.Value(tag=tag, audio=audio)])\n\n\ndef custom_scalars(layout):\n    categories = []\n    for k, v in layout.items():\n        charts = []\n        for chart_name, chart_meatadata in v.items():\n            tags = chart_meatadata[1]\n            if chart_meatadata[0] == 'Margin':\n                assert len(tags) == 3\n                mgcc = layout_pb2.MarginChartContent(series=[layout_pb2.MarginChartContent.Series(value=tags[0],\n                                                                                                  lower=tags[1],\n                                                                                                  upper=tags[2])])\n                chart = layout_pb2.Chart(title=chart_name, margin=mgcc)\n            else:\n                mlcc = layout_pb2.MultilineChartContent(tag=tags)\n                chart = layout_pb2.Chart(title=chart_name, multiline=mlcc)\n            charts.append(chart)\n        categories.append(layout_pb2.Category(title=k, chart=charts))\n\n    layout = layout_pb2.Layout(category=categories)\n    PluginData = SummaryMetadata.PluginData(plugin_name='custom_scalars')\n    smd = SummaryMetadata(plugin_data=PluginData)\n    tensor = TensorProto(dtype='DT_STRING',\n                         string_val=[layout.SerializeToString()],\n                         tensor_shape=TensorShapeProto())\n    return Summary(value=[Summary.Value(tag='custom_scalars__config__', tensor=tensor, metadata=smd)])\n\n\ndef text(tag, text):\n    import json\n    PluginData = SummaryMetadata.PluginData(\n        plugin_name='text', content=TextPluginData(version=0).SerializeToString())\n    smd = SummaryMetadata(plugin_data=PluginData)\n    tensor = TensorProto(dtype='DT_STRING',\n                         string_val=[text.encode(encoding='utf_8')],\n                         tensor_shape=TensorShapeProto(dim=[TensorShapeProto.Dim(size=1)]))\n    return Summary(value=[Summary.Value(tag=tag + '/text_summary', metadata=smd, tensor=tensor)])\n\n\ndef pr_curve_raw(tag, tp, fp, tn, fn, precision, recall, num_thresholds=127, weights=None):\n    if num_thresholds > 127:  # weird, value > 127 breaks protobuf\n        num_thresholds = 127\n    data = np.stack((tp, fp, tn, fn, precision, recall))\n    pr_curve_plugin_data = PrCurvePluginData(\n        version=0, num_thresholds=num_thresholds).SerializeToString()\n    PluginData = SummaryMetadata.PluginData(\n        plugin_name='pr_curves', content=pr_curve_plugin_data)\n    smd = SummaryMetadata(plugin_data=PluginData)\n    tensor = TensorProto(dtype='DT_FLOAT',\n                         float_val=data.reshape(-1).tolist(),\n                         tensor_shape=TensorShapeProto(\n                             dim=[TensorShapeProto.Dim(size=data.shape[0]), TensorShapeProto.Dim(size=data.shape[1])]))\n    return Summary(value=[Summary.Value(tag=tag, metadata=smd, tensor=tensor)])\n\n\ndef pr_curve(tag, labels, predictions, num_thresholds=127, weights=None):\n    # weird, value > 127 breaks protobuf\n    num_thresholds = min(num_thresholds, 127)\n    data = compute_curve(labels, predictions,\n                         num_thresholds=num_thresholds, weights=weights)\n    pr_curve_plugin_data = PrCurvePluginData(\n        version=0, num_thresholds=num_thresholds).SerializeToString()\n    PluginData = SummaryMetadata.PluginData(\n        plugin_name='pr_curves', content=pr_curve_plugin_data)\n    smd = SummaryMetadata(plugin_data=PluginData)\n    tensor = TensorProto(dtype='DT_FLOAT',\n                         float_val=data.reshape(-1).tolist(),\n                         tensor_shape=TensorShapeProto(\n                             dim=[TensorShapeProto.Dim(size=data.shape[0]), TensorShapeProto.Dim(size=data.shape[1])]))\n    return Summary(value=[Summary.Value(tag=tag, metadata=smd, tensor=tensor)])\n\n\n# https://github.com/tensorflow/tensorboard/blob/master/tensorboard/plugins/pr_curve/summary.py\ndef compute_curve(labels, predictions, num_thresholds=None, weights=None):\n    _MINIMUM_COUNT = 1e-7\n\n    if weights is None:\n        weights = 1.0\n\n    # Compute bins of true positives and false positives.\n    bucket_indices = np.int32(np.floor(predictions * (num_thresholds - 1)))\n    float_labels = labels.astype(float)\n    histogram_range = (0, num_thresholds - 1)\n    tp_buckets, _ = np.histogram(\n        bucket_indices,\n        bins=num_thresholds,\n        range=histogram_range,\n        weights=float_labels * weights)\n    fp_buckets, _ = np.histogram(\n        bucket_indices,\n        bins=num_thresholds,\n        range=histogram_range,\n        weights=(1.0 - float_labels) * weights)\n\n    # Obtain the reverse cumulative sum.\n    tp = np.cumsum(tp_buckets[::-1])[::-1]\n    fp = np.cumsum(fp_buckets[::-1])[::-1]\n    tn = fp[0] - fp\n    fn = tp[0] - tp\n    precision = tp / np.maximum(_MINIMUM_COUNT, tp + fp)\n    recall = tp / np.maximum(_MINIMUM_COUNT, tp + fn)\n    return np.stack((tp, fp, tn, fn, precision, recall))\n\n\ndef _get_tensor_summary(tag, tensor, content_type, json_config):\n    mesh_plugin_data = MeshPluginData(\n        version=0,\n        name=tag,\n        content_type=content_type,\n        json_config=json_config,\n        shape=tensor.shape,\n    )\n    content = mesh_plugin_data.SerializeToString()\n    smd = SummaryMetadata(\n        plugin_data=SummaryMetadata.PluginData(\n            plugin_name='mesh',\n            content=content))\n\n    tensor = TensorProto(dtype='DT_FLOAT',\n                         float_val=tensor.reshape(-1).tolist(),\n                         tensor_shape=TensorShapeProto(dim=[\n                             TensorShapeProto.Dim(size=tensor.shape[0]),\n                             TensorShapeProto.Dim(size=tensor.shape[1]),\n                             TensorShapeProto.Dim(size=tensor.shape[2]),\n                         ]))\n    tensor_summary = Summary.Value(\n        tag=f'{tag}_{content_type}',\n        tensor=tensor,\n        metadata=smd,\n    )\n    return tensor_summary\n\n\ndef mesh(tag, vertices, colors, faces, config_dict=None):\n\n    import json\n    summaries = []\n    tensors = [\n        (vertices, 1),\n        (faces, 2),\n        (colors, 3)\n    ]\n\n    for tensor, content_type in tensors:\n        if tensor is None:\n            continue\n        summaries.append(\n            _get_tensor_summary(tag, make_np(tensor), content_type, json.dumps(config_dict, sort_keys=True)))\n\n    return Summary(value=summaries)\n"
  },
  {
    "path": "tensorboardX/torchvis.py",
    "content": "\nimport gc\nimport time\nfrom functools import wraps\n\nfrom .visdom_writer import VisdomWriter\nfrom .writer import SummaryWriter\n\n# Supports both TensorBoard and Visdom (no embedding or graph visualization with Visdom)\nvis_formats = {'tensorboard': SummaryWriter, 'visdom': VisdomWriter}\n\n\nclass TorchVis:\n    def __init__(self, *args, **init_kwargs):\n        \"\"\"\n        Args:\n            args (list of strings): The name of the visualization target(s).\n              Accepted targets are 'tensorboard' and 'visdom'.\n            init_kwargs: Additional keyword parameters for the visdom writer (For example, server IP).\n              See `visdom doc <https://github.com/facebookresearch/visdom/blob\n              /master/README.md#visdom-arguments-python-only>`_ for more.\n        \"\"\"\n        self.subscribers = {}\n        self.register(*args, **init_kwargs)\n\n    def register(self, *args, **init_kwargs):\n        # Sets tensorboard as the default visualization format if not specified\n        formats = args if args else ['tensorboard']\n        for format in formats:\n            if self.subscribers.get(format) is None and format in vis_formats:\n                self.subscribers[format] = vis_formats[format](**init_kwargs.get(format, {}))\n\n    def unregister(self, *args):\n        for format in args:\n            self.subscribers[format].close()\n            del self.subscribers[format]\n            gc.collect()\n\n    def __getattr__(self, attr):\n        for _, subscriber in self.subscribers.items():\n            def wrapper(*args, **kwargs):\n                for _, subscriber in self.subscribers.items():\n                    if hasattr(subscriber, attr):\n                        getattr(subscriber, attr)(*args, **kwargs)\n            return wrapper\n        raise AttributeError\n\n    # Handle writer management (open/close) for the user\n    def __del__(self):\n        for _, subscriber in self.subscribers.items():\n            subscriber.close()\n"
  },
  {
    "path": "tensorboardX/utils.py",
    "content": "# Functions for converting\ndef figure_to_image(figures, close=True):\n    \"\"\"Render matplotlib figure to numpy format.\n\n    Note that this requires the ``matplotlib`` package.\n\n    Args:\n        figure (matplotlib.pyplot.figure) or list of figures: figure or a list of figures\n        close (bool): Flag to automatically close the figure\n\n    Returns:\n        numpy.array: image in [CHW] order\n    \"\"\"\n    import numpy as np\n    try:\n        import matplotlib.backends.backend_agg as plt_backend_agg\n        import matplotlib.pyplot as plt\n    except ModuleNotFoundError:\n        print('please install matplotlib')\n\n    def render_to_rgb(figure):\n        canvas = plt_backend_agg.FigureCanvasAgg(figure)\n        canvas.draw()\n        data = np.frombuffer(canvas.buffer_rgba(), dtype=np.uint8)\n        w, h = figure.canvas.get_width_height()\n        image_hwc = data.reshape([h, w, 4])[:, :, 0:3]\n        image_chw = np.moveaxis(image_hwc, source=2, destination=0)\n        if close:\n            plt.close(figure)\n        return image_chw\n\n    if isinstance(figures, list):\n        images = [render_to_rgb(figure) for figure in figures]\n        return np.stack(images)\n    else:\n        image = render_to_rgb(figures)\n        return image\n\n\ndef graphviz_to_image():\n    pass\n\n\ndef _prepare_video(V):\n    import numpy as np\n    b, t, c, h, w = V.shape\n\n    if V.dtype == np.uint8:\n        V = np.float32(V) / 255.\n\n    def is_power2(num):\n        return num != 0 and ((num & (num - 1)) == 0)\n\n    # pad to nearest power of 2, all at once\n    if not is_power2(V.shape[0]):\n        len_addition = int(2**V.shape[0].bit_length() - V.shape[0])\n        V = np.concatenate(\n            (V, np.zeros(shape=(len_addition, t, c, h, w))), axis=0)\n\n    n_rows = 2**((b.bit_length() - 1) // 2)\n    n_cols = V.shape[0] // n_rows\n\n    V = np.reshape(V, newshape=(n_rows, n_cols, t, c, h, w))\n    V = np.transpose(V, axes=(2, 0, 4, 1, 5, 3))\n    V = np.reshape(V, newshape=(t, n_rows * h, n_cols * w, c))\n\n    return V\n\n\ndef make_grid(I, ncols=8):\n    # I: N1HW or N3HW\n    import numpy as np\n    assert isinstance(\n        I, np.ndarray), 'plugin error, should pass numpy array here'\n    if I.shape[1] == 1:\n        I = np.concatenate([I, I, I], 1)\n    assert I.ndim == 4 and I.shape[1] == 3 or I.shape[1] == 4\n    nimg = I.shape[0]\n    H = I.shape[2]\n    W = I.shape[3]\n    ncols = min(nimg, ncols)\n    nrows = int(np.ceil(float(nimg) / ncols))\n    canvas = np.zeros((I.shape[1], H * nrows, W * ncols), dtype=I.dtype)\n    i = 0\n    for y in range(nrows):\n        for x in range(ncols):\n            if i >= nimg:\n                break\n            canvas[:, y * H:(y + 1) * H, x * W:(x + 1) * W] = I[i]\n            i = i + 1\n    return canvas\n\n\ndef convert_to_NTCHW(tensor, input_format):\n    assert len(input_format) == 5, \"Only 5D tensor is supported.\"\n    assert len(set(input_format)) == len(input_format), f\"You can not use the same dimension shorthand twice. \\\n        input_format: {input_format}\"\n    assert len(tensor.shape) == len(input_format), f\"size of input tensor and input format are different. \\\n        tensor shape: {tensor.shape}, input_format: {input_format}\"\n    input_format = input_format.upper()\n    index = [input_format.find(c) for c in 'NTCHW']\n    tensor_NTCHW = tensor.transpose(index)\n    return tensor_NTCHW\n\n\ndef convert_to_HWC(tensor, input_format):  # tensor: numpy array\n    import numpy as np\n    assert len(set(input_format)) == len(input_format), f\"You can not use the same dimension shorthand twice. \\\n        input_format: {input_format}\"\n    assert len(tensor.shape) == len(input_format), f\"size of input tensor and input format are different. \\\n        tensor shape: {tensor.shape}, input_format: {input_format}\"\n    input_format = input_format.upper()\n\n    if len(input_format) == 4:\n        index = [input_format.find(c) for c in 'NCHW']\n        tensor_NCHW = tensor.transpose(index)\n        tensor_CHW = make_grid(tensor_NCHW)\n        return tensor_CHW.transpose(1, 2, 0)\n\n    if len(input_format) == 3:\n        index = [input_format.find(c) for c in 'HWC']\n        tensor_HWC = tensor.transpose(index)\n        if tensor_HWC.shape[2] == 1:\n            tensor_HWC = np.concatenate([tensor_HWC, tensor_HWC, tensor_HWC], 2)\n        return tensor_HWC\n\n    if len(input_format) == 2:\n        index = [input_format.find(c) for c in 'HW']\n        tensor = tensor.transpose(index)\n        tensor = np.stack([tensor, tensor, tensor], 2)\n        return tensor\n"
  },
  {
    "path": "tensorboardX/visdom_writer.py",
    "content": "import gc\nimport json\nimport math\nimport time\n\nimport numpy as np\n\nfrom .summary import compute_curve\nfrom .utils import figure_to_image\nfrom .x2num import make_np\n\n\n# Decorator that checks if there is a Visdom connection\ndef _check_connection(fn):\n    def wrapper(self, *args, **kwargs):\n        if not self.server_connected:\n            print('ERROR: No Visdom server currently connected')\n            self._try_connect()\n            return\n        fn(self, *args, **kwargs)\n    return wrapper\n\n\nclass VisdomWriter:\n    def __init__(self, *args, **kwargs):\n        try:\n            from visdom import Visdom\n        except ImportError:\n            raise ImportError(\n                \"Visdom visualization requires installation of Visdom\")\n\n        self.scalar_dict = {}\n        self.server_connected = False\n        self.vis = Visdom(*args, **kwargs)\n        self.windows = {}\n\n        self._try_connect()\n\n    def _try_connect(self):\n        startup_sec = 1\n        self.server_connected = self.vis.check_connection()\n        while not self.server_connected and startup_sec > 0:\n            time.sleep(0.1)\n            startup_sec -= 0.1\n            self.server_connected = self.vis.check_connection()\n        assert self.server_connected, 'No connection could be formed quickly'\n\n    @_check_connection\n    def add_scalar(self, tag, scalar_value, global_step=None, main_tag='default'):\n        \"\"\"Add scalar data to Visdom. Plots the values in a plot titled\n           {main_tag}-{tag}.\n\n        Args:\n            tag (string): Data identifier\n            scalar_value (float or string/blobname): Value to save\n            global_step (int): Global step value to record\n            main_tag (string): Data group identifier\n        \"\"\"\n        if self.scalar_dict.get(main_tag) is None:\n            self.scalar_dict[main_tag] = {}\n        exists = self.scalar_dict[main_tag].get(tag) is not None\n        self.scalar_dict[main_tag][tag] = self.scalar_dict[main_tag][tag] + \\\n            [scalar_value] if exists else [scalar_value]\n        plot_name = f'{main_tag}-{tag}'\n        # If there is no global_step provided, follow sequential order\n        x_val = global_step if global_step else len(self.scalar_dict[main_tag][tag])\n        if exists:\n            # Update our existing Visdom window\n            self.vis.line(\n                X=make_np(x_val),\n                Y=make_np(scalar_value),\n                name=plot_name,\n                update='append',\n                win=self.windows[plot_name],\n            )\n        else:\n            # Save the window if we are creating this graph for the first time\n            self.windows[plot_name] = self.vis.line(\n                X=make_np(x_val),\n                Y=make_np(scalar_value),\n                name=plot_name,\n                opts={\n                    'title': plot_name,\n                    'xlabel': 'timestep',\n                    'ylabel': tag,\n                },\n            )\n\n    @_check_connection\n    def add_scalars(self, main_tag, tag_scalar_dict, global_step=None):\n        \"\"\"Adds many scalar data to summary.\n\n        Note that this function also keeps logged scalars in memory. In extreme case it explodes your RAM.\n\n        Args:\n            tag (string): Data identifier\n            main_tag (string): Data group identifier\n            tag_scalar_dict (dict): Key-value pair storing the tag and corresponding values\n            global_step (int): Global step value to record\n\n        Examples::\n\n            writer.add_scalars('run_14h',{'xsinx':i*np.sin(i/r),\n                                          'xcosx':i*np.cos(i/r),\n                                          'arctanx': numsteps*np.arctan(i/r)}, i)\n            This function adds three plots:\n                'run_14h-xsinx',\n                'run_14h-xcosx',\n                'run_14h-arctanx'\n            with the corresponding values.\n        \"\"\"\n        for key in tag_scalar_dict:\n            self.add_scalar(key, tag_scalar_dict[key], global_step, main_tag)\n\n    @_check_connection\n    def export_scalars_to_json(self, path):\n        \"\"\"Exports to the given 'path' an ASCII file containing all the scalars written\n        so far by this instance, with the following format:\n        {writer_id : [[timestamp, step, value], ...], ...}\n\n        The scalars saved by ``add_scalars()`` will be flushed after export.\n        \"\"\"\n        with open(path, \"w\") as f:\n            json.dump(self.scalar_dict, f)\n        self.scalar_dict = {}\n\n    @_check_connection\n    def add_histogram(self, tag, values, global_step=None, bins='tensorflow'):\n        \"\"\"Add histogram to summary.\n\n        Args:\n            tag (string): Data identifier\n            values (torch.Tensor, numpy.array, or string/blobname): Values to build histogram\n            global_step (int): Global step value to record\n            bins (string): one of {'tensorflow', 'auto', 'fd', ...}, this determines how the bins are made. You can find\n              other options in: https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html\n        \"\"\"\n        values = make_np(values)\n        self.vis.histogram(make_np(values), opts={'title': tag})\n\n    @_check_connection\n    def add_image(self, tag, img_tensor, global_step=None, caption=None):\n        \"\"\"Add image data to summary.\n\n        Note that this requires the ``pillow`` package.\n\n        Args:\n            tag (string): Data identifier\n            img_tensor (torch.Tensor, numpy.array, or string/blobname): Image data\n            global_step (int): Global step value to record\n        Shape:\n            img_tensor: :math:`(C, H, W)`. Use ``torchvision.utils.make_grid()`` to prepare it is a good idea.\n            C = colors (can be 1 - grayscale, 3 - RGB, 4 - RGBA)\n        \"\"\"\n        img_tensor = make_np(img_tensor)\n        self.vis.image(img_tensor, opts={'title': tag, 'caption': caption})\n\n    @_check_connection\n    def add_figure(self, tag, figure, global_step=None, close=True):\n        \"\"\"Render matplotlib figure into an image and add it to summary.\n\n        Note that this requires the ``matplotlib`` package.\n\n        Args:\n            tag (string): Data identifier\n            figure (matplotlib.pyplot.figure) or list of figures: figure or a list of figures\n            global_step (int): Global step value to record\n            close (bool): Flag to automatically close the figure\n        \"\"\"\n        self.add_image(tag, figure_to_image(figure, close), global_step)\n\n    @_check_connection\n    def add_video(self, tag, vid_tensor, global_step=None, fps=4):\n        \"\"\"Add video data to summary.\n\n        Note that this requires the ``moviepy`` package.\n\n        Args:\n            tag (string): Data identifier\n            vid_tensor (torch.Tensor): Video data, the pixel value should in [0, 1]\n            global_step (int): Global step value to record\n            fps (float or int): Frames per second\n        Shape:\n            vid_tensor: :math:`(B, C, T, H, W)`. (if following tensorboardX format)\n            vid_tensor: :math:`(T, H, W, C)`. (if following visdom format)\n            B = batches, C = colors (1, 3, or 4), T = time frames, H = height, W = width\n        \"\"\"\n        shape = vid_tensor.shape\n        # A batch of videos (tensorboardX format) is a 5D tensor\n        if len(shape) > 4:\n            for i in range(shape[0]):\n                # Reshape each video to Visdom's (T x H x W x C) and write each video\n                # TODO: reverse the logic here, shoudl do the permutation in numpy\n                if isinstance(vid_tensor, np.ndarray):\n                    import torch\n                    ind_vid = torch.from_numpy(\n                        vid_tensor[i, :, :, :, :]).permute(1, 2, 3, 0)\n                else:\n                    ind_vid = vid_tensor[i, :, :, :, :].permute(1, 2, 3, 0)\n                scale_factor = 255\n                # Visdom looks for .ndim attr, this is something raw Tensors don't have\n                # Cast to Numpy array to get .ndim attr\n                ind_vid = ind_vid.numpy()\n                ind_vid = (ind_vid * scale_factor).astype(np.uint8)\n                assert ind_vid.shape[3] in [1, 3, 4], \\\n                    'Visdom requires the last dimension to be color, which can be 1 (grayscale), 3 (RGB) or 4 (RGBA)'\n                self.vis.video(tensor=ind_vid, opts={'fps': fps})\n        else:\n            self.vis.video(tensor=vid_tensor, opts={'fps': fps})\n\n    @_check_connection\n    def add_audio(self, tag, snd_tensor, global_step=None, sample_rate=44100):\n        \"\"\"Add audio data to summary.\n\n        Args:\n            tag (string): Data identifier\n            snd_tensor (torch.Tensor, numpy.array, or string/blobname): Sound data\n            global_step (int): Global step value to record\n            sample_rate (int): sample rate in Hz\n\n        Shape:\n            snd_tensor: :math:`(1, L)`. The values should lie between [-1, 1].\n        \"\"\"\n        snd_tensor = make_np(snd_tensor)\n        self.vis.audio(tensor=snd_tensor, opts={\n                       'sample_frequency': sample_rate})\n\n    @_check_connection\n    def add_text(self, tag, text_string, global_step=None):\n        \"\"\"Add text data to summary.\n\n        Args:\n            tag (string): Data identifier\n            text_string (string): String to save\n            global_step (int): Global step value to record\n        Examples::\n            writer.add_text('lstm', 'This is an lstm', 0)\n            writer.add_text('rnn', 'This is an rnn', 10)\n        \"\"\"\n        if text_string is None:\n            # Visdom doesn't support tags, write the tag as the text_string\n            text_string = tag\n        self.vis.text(text_string)\n\n    @_check_connection\n    def add_onnx_graph(self, prototxt):\n        # TODO: Visdom doesn't support graph visualization yet, so this is a no-op\n        return\n\n    @_check_connection\n    def add_graph(self, model, input_to_model=None, verbose=False, **kwargs):\n        # TODO: Visdom doesn't support graph visualization yet, so this is a no-op\n        return\n\n    @_check_connection\n    def add_embedding(self, mat, metadata=None, label_img=None, global_step=None, tag='default', metadata_header=None):\n        # TODO: Visdom doesn't support embeddings yet, so this is a no-op\n        return\n\n    @_check_connection\n    def add_pr_curve(self, tag, labels, predictions, global_step=None, num_thresholds=127, weights=None):\n        \"\"\"Adds precision recall curve.\n\n        Args:\n            tag (string): Data identifier\n            labels (torch.Tensor, numpy.array, or string/blobname): Ground truth data. Binary label for each element.\n            predictions (torch.Tensor, numpy.array, or string/blobname):\n            The probability that an element be classified as true. Value should in [0, 1]\n            global_step (int): Global step value to record\n            num_thresholds (int): Number of thresholds used to draw the curve.\n\n        \"\"\"\n        labels, predictions = make_np(labels), make_np(predictions)\n        raw_data = compute_curve(labels, predictions, num_thresholds, weights)\n\n        # compute_curve returns np.stack((tp, fp, tn, fn, precision, recall))\n        # We want to access 'precision' and 'recall'\n        precision, recall = raw_data[4, :], raw_data[5, :]\n\n        self.vis.line(\n            X=recall,\n            Y=precision,\n            name=tag,\n            opts={\n                'title': f'PR Curve for {tag}',\n                'xlabel': 'recall',\n                'ylabel': 'precision',\n            },\n        )\n\n    @_check_connection\n    def add_pr_curve_raw(self, tag, true_positive_counts,\n                         false_positive_counts,\n                         true_negative_counts,\n                         false_negative_counts,\n                         precision,\n                         recall, global_step=None, num_thresholds=127, weights=None):\n        \"\"\"Adds precision recall curve with raw data.\n\n        Args:\n            tag (string): Data identifier\n            true_positive_counts (torch.Tensor, numpy.array, or string/blobname): true positive counts\n            false_positive_counts (torch.Tensor, numpy.array, or string/blobname): false positive counts\n            true_negative_counts (torch.Tensor, numpy.array, or string/blobname): true negative counts\n            false_negative_counts (torch.Tensor, numpy.array, or string/blobname): false negative counts\n            precision (torch.Tensor, numpy.array, or string/blobname): precision\n            recall (torch.Tensor, numpy.array, or string/blobname): recall\n            global_step (int): Global step value to record\n            num_thresholds (int): Number of thresholds used to draw the curve.\n            see: https://github.com/tensorflow/tensorboard/blob/master/tensorboard/plugins/pr_curve/README.md\n        \"\"\"\n        precision, recall = make_np(precision), make_np(recall)\n        self.vis.line(\n            X=recall,\n            Y=precision,\n            name=tag,\n            opts={\n                'title': f'PR Curve for {tag}',\n                'xlabel': 'recall',\n                'ylabel': 'precision',\n            },\n        )\n\n    def close(self):\n        del self.vis\n        del self.scalar_dict\n        gc.collect()\n"
  },
  {
    "path": "tensorboardX/writer.py",
    "content": "\"\"\"Provides an API for writing protocol buffers to event files to be\nconsumed by TensorBoard for visualization.\"\"\"\n\n\nimport atexit\nimport contextlib\nimport json\nimport logging\nimport os\nimport time\nfrom typing import Optional, Union\n\nimport numpy\n\nfrom .comet_utils import CometLogger\nfrom .embedding import append_pbtxt, make_mat, make_sprite, make_tsv\nfrom .event_file_writer import EventFileWriter\nfrom .onnx_graph import load_onnx_graph\nfrom .openvino_graph import load_openvino_graph\nfrom .proto import event_pb2, summary_pb2\nfrom .proto.event_pb2 import Event, SessionLog\nfrom .summary import (\n    audio,\n    custom_scalars,\n    histogram,\n    histogram_raw,\n    hparams,\n    image,\n    image_boxes,\n    mesh,\n    pr_curve,\n    pr_curve_raw,\n    scalar,\n    text,\n    video,\n)\nfrom .utils import figure_to_image\n\nlogger = logging.getLogger(__name__)\n\nnumpy_compatible = numpy.ndarray\ntry:\n    import torch\n    numpy_compatible = torch.Tensor\nexcept ImportError:\n    pass\n\n\nclass DummyFileWriter:\n    \"\"\"A fake file writer that writes nothing to the disk.\n    \"\"\"\n\n    def __init__(self, logdir):\n        self._logdir = logdir\n\n    def get_logdir(self):\n        \"\"\"Returns the directory where event file will be written.\"\"\"\n        return self._logdir\n\n    def add_event(self, event, step=None, walltime=None):\n        return\n\n    def add_summary(self, summary, global_step=None, walltime=None):\n        return\n\n    def add_graph(self, graph_profile, walltime=None):\n        return\n\n    def add_onnx_graph(self, graph, walltime=None):\n        return\n\n    def flush(self):\n        return\n\n    def close(self):\n        return\n\n    def reopen(self):\n        return\n\n    @contextlib.contextmanager\n    def use_metadata(self, *, global_step=None, walltime=None):\n        yield self\n\n\nclass FileWriter:\n    \"\"\"Writes protocol buffers to event files to be consumed by TensorBoard.\n\n    The `FileWriter` class provides a mechanism to create an event file in a\n    given directory and add summaries and events to it. The class updates the\n    file contents asynchronously. This allows a training program to call methods\n    to add data to the file directly from the training loop, without slowing down\n    training.\n    \"\"\"\n\n    def __init__(self, logdir, max_queue=10, flush_secs=120, filename_suffix=''):\n        \"\"\"Creates a `FileWriter` and an event file.\n        On construction the writer creates a new event file in `logdir`.\n        The other arguments to the constructor control the asynchronous writes to\n        the event file.\n\n        Args:\n          logdir: A string. Directory where event file will be written.\n          max_queue: Integer. Size of the queue for pending events and\n            summaries before one of the 'add' calls forces a flush to disk.\n            Default is ten items.\n          flush_secs: Number. How often, in seconds, to flush the\n            pending events and summaries to disk. Default is every two minutes.\n          filename_suffix: A string. Suffix added to all event filenames\n            in the logdir directory. More details on filename construction in\n            tensorboard.summary.writer.event_file_writer.EventFileWriter.\n        \"\"\"\n        # Sometimes PosixPath is passed in and we need to coerce it to\n        # a string in all cases\n        # TODO: See if we can remove this in the future if we are\n        # actually the ones passing in a PosixPath\n        logdir = str(logdir)\n        self.event_writer = EventFileWriter(\n            logdir, max_queue, flush_secs, filename_suffix)\n\n        def cleanup():\n            self.event_writer.close()\n\n        atexit.register(cleanup)\n        self._default_metadata = {}\n\n    def get_logdir(self):\n        \"\"\"Returns the directory where event file will be written.\"\"\"\n        return self.event_writer.get_logdir()\n\n    def add_event(self, event, step=None, walltime=None):\n        \"\"\"Adds an event to the event file.\n        Args:\n          event: An `Event` protocol buffer.\n          step: Number. Optional global step value for training process\n            to record with the event.\n          walltime: float. Optional walltime to override the default (current)\n            walltime (from time.time())\n        \"\"\"\n        walltime = (\n            self._default_metadata.get(\"walltime\", time.time())\n            if walltime is None\n            else walltime\n        )\n        if walltime is not None:\n            event.wall_time = walltime\n        step = self._default_metadata.get(\"global_step\") if step is None else step\n        if step is not None:\n            # Make sure step is converted from numpy or other formats\n            # since protobuf might not convert depending on version\n            event.step = int(step)\n        self.event_writer.add_event(event)\n\n    def add_summary(self, summary, global_step=None, walltime=None):\n        \"\"\"Adds a `Summary` protocol buffer to the event file.\n        This method wraps the provided summary in an `Event` protocol buffer\n        and adds it to the event file.\n\n        Args:\n          summary: A `Summary` protocol buffer.\n          global_step: Number. Optional global step value for training process\n            to record with the summary.\n          walltime: float. Optional walltime to override the default (current)\n            walltime (from time.time())\n        \"\"\"\n        event = event_pb2.Event(summary=summary)\n        self.add_event(event, global_step, walltime)\n\n    def add_graph(self, graph_profile, walltime=None):\n        \"\"\"Adds a `Graph` and step stats protocol buffer to the event file.\n\n        Args:\n          graph_profile: A `Graph` and step stats protocol buffer.\n          walltime: float. Optional walltime to override the default (current)\n            walltime (from time.time()) seconds after epoch\n        \"\"\"\n        graph = graph_profile[0]\n        stepstats = graph_profile[1]\n        event = event_pb2.Event(graph_def=graph.SerializeToString())\n        self.add_event(event, None, walltime)\n\n        trm = event_pb2.TaggedRunMetadata(\n            tag='profiler', run_metadata=stepstats.SerializeToString())\n        event = event_pb2.Event(tagged_run_metadata=trm)\n        self.add_event(event, None, walltime)\n\n    def add_onnx_graph(self, graph, walltime=None):\n        \"\"\"Adds a `Graph` protocol buffer to the event file.\n\n        Args:\n          graph: A `Graph` protocol buffer.\n          walltime: float. Optional walltime to override the default (current)\n            _get_file_writerfrom time.time())\n        \"\"\"\n        event = event_pb2.Event(graph_def=graph.SerializeToString())\n        self.add_event(event, None, walltime)\n\n    def add_openvino_graph(self, graph, walltime=None):\n        \"\"\"Adds a `Graph` protocol buffer to the event file.\n\n        Args:\n          graph: A `Graph` protocol buffer.\n          walltime: float. Optional walltime to override the default (current)\n            _get_file_writerfrom time.time())\n        \"\"\"\n        event = event_pb2.Event(graph_def=graph.SerializeToString())\n        self.add_event(event, None, walltime)\n\n    def flush(self):\n        \"\"\"Flushes the event file to disk.\n        Call this method to make sure that all pending events have been written to\n        disk.\n        \"\"\"\n        self.event_writer.flush()\n\n    def close(self):\n        \"\"\"Flushes the event file to disk and close the file.\n        Call this method when you do not need the summary writer anymore.\n        \"\"\"\n        self.event_writer.close()\n\n    def reopen(self):\n        \"\"\"Reopens the EventFileWriter.\n        Can be called after `close()` to add more events in the same directory.\n        The events will go into a new events file.\n        Does nothing if the EventFileWriter was not closed.\n        \"\"\"\n        self.event_writer.reopen()\n\n    @contextlib.contextmanager\n    def use_metadata(self, *, global_step=None, walltime=None):\n        \"\"\"Context manager to temporarily set default metadata for all enclosed :meth:`add_event`\n        calls.\n\n        Args:\n            global_step: Global step value to record\n            walltime: Walltime to record (defaults to time.time())\n\n        Examples::\n\n            with writer.use_metadata(global_step=10):\n                writer.add_event(event)\n        \"\"\"\n        assert not self._default_metadata, \"Default metadata is already set.\"\n        assert (\n            global_step is not None or walltime is not None\n        ), \"At least one of `global_step` or `walltime` must be provided.\"\n        self._default_metadata = {\"global_step\": global_step, \"walltime\": walltime}\n        yield self\n        self._default_metadata = {}\n\n\nclass SummaryWriter:\n    \"\"\"Writes entries directly to event files in the logdir to be\n    consumed by TensorBoard.\n\n    The `SummaryWriter` class provides a high-level API to create an event file\n    in a given directory and add summaries and events to it. The class updates the\n    file contents asynchronously. This allows a training program to call methods\n    to add data to the file directly from the training loop, without slowing down\n    training.\n    \"\"\"\n\n    def __init__(\n            self,\n            logdir: Optional[str] = None,\n            comment: Optional[str] = \"\",\n            purge_step: Optional[int] = None,\n            max_queue: Optional[int] = 10,\n            flush_secs: Optional[int] = 120,\n            filename_suffix: Optional[str] = '',\n            write_to_disk: Optional[bool] = True,\n            log_dir: Optional[str] = None,\n            comet_config: Optional[dict] = {\"disabled\": True},\n            **kwargs):\n        \"\"\"Creates a `SummaryWriter` that will write out events and summaries\n        to the event file.\n\n        Args:\n            logdir: Save directory location. Default is\n              runs/**CURRENT_DATETIME_HOSTNAME**, which changes after each run.\n              Use hierarchical folder structure to compare\n              between runs easily. e.g. pass in 'runs/exp1', 'runs/exp2', etc.\n              for each new experiment to compare across them.\n            comment: Comment logdir suffix appended to the default\n              ``logdir``. If ``logdir`` is assigned, this argument has no effect.\n            purge_step:\n              When logging crashes at step :math:`T+X` and restarts at step :math:`T`,\n              any events whose global_step larger or equal to :math:`T` will be\n              purged and hidden from TensorBoard.\n              Note that crashed and resumed experiments should have the same ``logdir``.\n            max_queue: Size of the queue for pending events and\n              summaries before one of the 'add' calls forces a flush to disk.\n              Default is ten items.\n            flush_secs: How often, in seconds, to flush the\n              pending events and summaries to disk. Default is every two minutes.\n            filename_suffix: Suffix added to all event filenames in\n              the logdir directory. More details on filename construction in\n              tensorboard.summary.writer.event_file_writer.EventFileWriter.\n            write_to_disk:\n              If pass `False`, SummaryWriter will not write to disk.\n            comet_config:\n              A comet config dictionary. Contains parameters that need to be\n              passed to comet like workspace, project_name, api_key, disabled etc\n\n        Examples::\n\n            from tensorboardX import SummaryWriter\n\n            # create a summary writer with automatically generated folder name.\n            writer = SummaryWriter()\n            # folder location: runs/May04_22-14-54_s-MacBook-Pro.local/\n\n            # create a summary writer using the specified folder name.\n            writer = SummaryWriter(\"my_experiment\")\n            # folder location: my_experiment\n\n            # create a summary writer with comment appended.\n            writer = SummaryWriter(comment=\"LR_0.1_BATCH_16\")\n            # folder location: runs/May04_22-14-54_s-MacBook-Pro.localLR_0.1_BATCH_16/\n\n        \"\"\"\n        if log_dir is not None and logdir is None:\n            logdir = log_dir\n        if not logdir:\n            import socket\n            from datetime import datetime\n            current_time = datetime.now().strftime('%b%d_%H-%M-%S')\n            logdir = os.path.join(\n                'runs', current_time + '_' + socket.gethostname() + comment)\n        self.logdir = logdir\n        self.purge_step = purge_step\n        self._max_queue = max_queue\n        self._flush_secs = flush_secs\n        self._filename_suffix = filename_suffix\n        self._write_to_disk = write_to_disk\n        self._comet_config = comet_config\n        self._comet_logger = None\n        self.kwargs = kwargs\n\n        # Initialize the file writers, but they can be cleared out on close\n        # and recreated later as needed.\n        self.file_writer = self.all_writers = None\n        self._get_file_writer()\n\n        # Create default bins for histograms, see generate_testdata.py in tensorflow/tensorboard\n        v = 1E-12\n        buckets = []\n        neg_buckets = []\n        while v < 1E20:\n            buckets.append(v)\n            neg_buckets.append(-v)\n            v *= 1.1\n        self.default_bins = neg_buckets[::-1] + [0] + buckets\n\n        self.scalar_dict = {}\n        self._default_metadata = {}\n\n    def __append_to_scalar_dict(self, tag, scalar_value, global_step,\n                                timestamp):\n        \"\"\"This adds an entry to the self.scalar_dict datastructure with format\n        {writer_id : [[timestamp, step, value], ...], ...}.\n        \"\"\"\n        from .x2num import make_np\n        if tag not in self.scalar_dict:\n            self.scalar_dict[tag] = []\n        self.scalar_dict[tag].append(\n            [timestamp, global_step, float(make_np(scalar_value).squeeze())])\n\n    def _get_file_writer(self):\n        \"\"\"Returns the default FileWriter instance. Recreates it if closed.\"\"\"\n        if not self._write_to_disk:\n            self.file_writer = DummyFileWriter(logdir=self.logdir)\n            self.all_writers = {self.file_writer.get_logdir(): self.file_writer}\n            return self.file_writer\n\n        if self.all_writers is None or self.file_writer is None:\n            self.file_writer = FileWriter(logdir=self.logdir,\n                                          max_queue=self._max_queue,\n                                          flush_secs=self._flush_secs,\n                                          filename_suffix=self._filename_suffix,\n                                          **self.kwargs)\n            if self.purge_step is not None:\n                self.file_writer.add_event(\n                    Event(step=self.purge_step, file_version='brain.Event:2'))\n                self.file_writer.add_event(\n                    Event(step=self.purge_step, session_log=SessionLog(status=SessionLog.START)))\n            self.all_writers = {self.file_writer.get_logdir(): self.file_writer}\n        return self.file_writer\n\n    def _get_comet_logger(self):\n        \"\"\"Returns a comet logger instance. Recreates it if closed.\"\"\"\n        if self._comet_logger is None:\n            self._comet_logger = CometLogger(self._comet_config)\n        return self._comet_logger\n\n    def add_hparams(\n            self,\n            hparam_dict: dict[str, Union[bool, str, float, int]],\n            metric_dict: dict[str, float],\n            name: Optional[str] = None,\n            global_step: Optional[int] = None):\n        \"\"\"Add a set of hyperparameters to be compared in tensorboard.\n\n        Args:\n            hparam_dict: Each key-value pair in the dictionary is the\n              name of the hyper parameter and it's corresponding value.\n            metric_dict: Each key-value pair in the dictionary is the\n              name of the metric and it's corresponding value.\n              Note that the key used here should be unique in the\n              tensorboard record. Otherwise the value you added by `add_scalar`\n              will be displayed in hparam plugin. In most\n              cases, this is unwanted.\n            name: Personnalised name of the hparam session\n            global_step: Current time step\n\n        Examples::\n\n            from tensorboardX import SummaryWriter\n            with SummaryWriter() as w:\n                for i in range(5):\n                    w.add_hparams({'lr': 0.1*i, 'bsize': i},\n                                  {'hparam/accuracy': 10*i, 'hparam/loss': 10*i})\n\n        Expected result:\n\n        .. image:: _static/img/tensorboard/add_hparam.png\n           :scale: 50 %\n        \"\"\"\n        if type(hparam_dict) is not dict or type(metric_dict) is not dict:\n            raise TypeError('hparam_dict and metric_dict should be dictionary.')\n        exp, ssi, sei = hparams(hparam_dict, metric_dict)\n\n        if not name:\n            name = str(time.time())\n\n        with SummaryWriter(logdir=os.path.join(self.file_writer.get_logdir(), name)) as w_hp:\n            w_hp.file_writer.add_summary(exp)\n            w_hp.file_writer.add_summary(ssi)\n            w_hp.file_writer.add_summary(sei)\n            for k, v in metric_dict.items():\n                w_hp.add_scalar(k, v, global_step)\n        self._get_comet_logger().log_parameters(hparam_dict, step=global_step)\n\n    def add_scalar(\n            self,\n            tag: str,\n            scalar_value: Union[float, numpy_compatible],\n            global_step: Optional[int] = None,\n            walltime: Optional[float] = None,\n            display_name: Optional[str] = \"\",\n            summary_description: Optional[str] = \"\"):\n        \"\"\"Add scalar data to summary.\n\n        Args:\n            tag: Data identifier\n            scalar_value: Value to be logged in tensorboard\n            global_step: Global step value to record\n            walltime: Optional override default walltime (time.time()) of event\n            display_name: The title of the plot. If empty string is passed,\n              `tag` will be used.\n            summary_description: The comprehensive text that will showed\n              by clicking the information icon on TensorBoard.\n        Examples::\n\n            from tensorboardX import SummaryWriter\n            writer = SummaryWriter()\n            x = range(100)\n            for i in x:\n                writer.add_scalar('y=2x', i * 2, i)\n            writer.close()\n\n        Expected result:\n\n        .. image:: _static/img/tensorboard/add_scalar.png\n           :scale: 50 %\n\n        \"\"\"\n        self._get_file_writer().add_summary(\n            scalar(tag, scalar_value, display_name, summary_description), global_step, walltime)\n        self._get_comet_logger().log_metric(tag, display_name, scalar_value, global_step)\n\n    def add_scalars(\n            self,\n            main_tag: str,\n            tag_scalar_dict: dict[str, float],\n            global_step: Optional[int] = None,\n            walltime: Optional[float] = None):\n        \"\"\"Adds many scalar data to summary.\n\n        Note that this function also keeps logged scalars in memory. In extreme case it explodes your RAM.\n\n        Args:\n            main_tag: The parent name for the tags\n            tag_scalar_dict: Key-value pair storing the tag and corresponding values\n            global_step: Global step value to record\n            walltime: Optional override default walltime (time.time()) of event\n\n        Examples::\n\n            from tensorboardX import SummaryWriter\n            writer = SummaryWriter()\n            r = 5\n            for i in range(100):\n                writer.add_scalars('run_14h', {'xsinx':i*np.sin(i/r),\n                                                'xcosx':i*np.cos(i/r),\n                                                'tanx': np.tan(i/r)}, i)\n            writer.close()\n            # This call adds three values to the same scalar plot with the tag\n            # 'run_14h' in TensorBoard's scalar section.\n\n        Expected result:\n\n        .. image:: _static/img/tensorboard/add_scalars.png\n           :scale: 50 %\n\n        \"\"\"\n        walltime = time.time() if walltime is None else walltime\n        fw_logdir = self._get_file_writer().get_logdir()\n        for tag, scalar_value in tag_scalar_dict.items():\n            fw_tag = os.path.join(str(fw_logdir), main_tag, tag)\n            if fw_tag in self.all_writers:\n                fw = self.all_writers[fw_tag]\n            else:\n                fw = FileWriter(logdir=fw_tag)\n                self.all_writers[fw_tag] = fw\n            fw.add_summary(scalar(main_tag, scalar_value),\n                           global_step, walltime)\n            self.__append_to_scalar_dict(\n                fw_tag, scalar_value, global_step, walltime)\n        self._get_comet_logger().log_metrics(tag_scalar_dict, main_tag, step=global_step)\n\n    def export_scalars_to_json(self, path):\n        \"\"\"Exports to the given path an ASCII file containing all the scalars written\n        so far by this instance, with the following format:\n        {writer_id : [[timestamp, step, value], ...], ...}\n\n        The scalars saved by ``add_scalars()`` will be flushed after export.\n        \"\"\"\n        with open(path, \"w\") as f:\n            json.dump(self.scalar_dict, f)\n        self.scalar_dict = {}\n\n    def add_histogram(\n            self,\n            tag: str,\n            values: numpy_compatible,\n            global_step: Optional[int] = None,\n            bins: Optional[str] = 'tensorflow',\n            walltime: Optional[float] = None,\n            max_bins=None):\n        \"\"\"Add histogram to summary.\n\n        Args:\n            tag: Data identifier\n            values: Values to build histogram\n            global_step: Global step value to record\n            bins: One of {'tensorflow','auto', 'fd', ...}. This determines how the\n              bins are made. You can find other options in the `numpy reference\n              <https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html>`_.\n            walltime: Optional override default walltime (time.time()) of event\n\n        Examples::\n\n            from tensorboardX import SummaryWriter\n            import numpy as np\n            writer = SummaryWriter()\n            for i in range(10):\n                x = np.random.random(1000)\n                writer.add_histogram('distribution centers', x + i, i)\n            writer.close()\n\n        Expected result:\n\n        .. image:: _static/img/tensorboard/add_histogram.png\n           :scale: 50 %\n\n        \"\"\"\n        if isinstance(bins, str) and bins == 'tensorflow':\n            bins = self.default_bins\n        self._get_file_writer().add_summary(\n            histogram(tag, values, bins, max_bins=max_bins), global_step, walltime)\n        self._get_comet_logger().log_histogram(values, tag, global_step)\n\n    def add_histogram_raw(\n            self,\n            tag: str,\n            min,\n            max,\n            num,\n            sum,\n            sum_squares,\n            bucket_limits,\n            bucket_counts,\n            global_step: Optional[int] = None,\n            walltime: Optional[float] = None):\n        \"\"\"Adds histogram with raw data.\n\n        Args:\n            tag: Data identifier\n            min (float or int): Min value\n            max (float or int): Max value\n            num (int): Number of values\n            sum (float or int): Sum of all values\n            sum_squares (float or int): Sum of squares for all values\n            bucket_limits (torch.Tensor, numpy.array): Upper value per\n              bucket, note that the bucket_limits returned from `np.histogram`\n              has one more element. See the comment in the following example.\n            bucket_counts (torch.Tensor, numpy.array): Number of values per bucket\n            global_step: Global step value to record\n            walltime: Optional override default walltime (time.time()) of event\n\n        Examples::\n\n            import numpy as np\n            dummy_data = []\n            for idx, value in enumerate(range(30)):\n                dummy_data += [idx + 0.001] * value\n            values = np.array(dummy_data).astype(float).reshape(-1)\n            counts, limits = np.histogram(values)\n            sum_sq = values.dot(values)\n            with SummaryWriter() as summary_writer:\n                summary_writer.add_histogram_raw(\n                        tag='hist_dummy_data',\n                        min=values.min(),\n                        max=values.max(),\n                        num=len(values),\n                        sum=values.sum(),\n                        sum_squares=sum_sq,\n                        bucket_limits=limits[1:].tolist(),  # <- note here.\n                        bucket_counts=counts.tolist(),\n                        global_step=0)\n\n        \"\"\"\n        if len(bucket_limits) != len(bucket_counts):\n            raise ValueError('len(bucket_limits) != len(bucket_counts), see the document.')\n        summary = histogram_raw(tag,\n                                min,\n                                max,\n                                num,\n                                sum,\n                                sum_squares,\n                                bucket_limits,\n                                bucket_counts)\n        self._get_file_writer().add_summary(\n            summary,\n            global_step,\n            walltime)\n        self._get_comet_logger().log_histogram_raw(tag, summary, step=global_step)\n\n    def add_image(\n            self,\n            tag: str,\n            img_tensor: numpy_compatible,\n            global_step: Optional[int] = None,\n            walltime: Optional[float] = None,\n            dataformats: Optional[str] = 'CHW'):\n        \"\"\"Add image data to summary.\n\n        Note that this requires the ``pillow`` package.\n\n        Args:\n            tag: Data identifier\n            img_tensor: An `uint8` or `float` Tensor of shape `\n                [channel, height, width]` where `channel` is 1, 3, or 4.\n                The elements in img_tensor can either have values\n                in [0, 1] (float32) or [0, 255] (uint8).\n                Users are responsible to scale the data in the correct range/type.\n            global_step: Global step value to record\n            walltime: Optional override default walltime (time.time()) of event.\n            dataformats: This parameter specifies the meaning of each dimension of the input tensor.\n        Shape:\n            img_tensor: Default is :math:`(3, H, W)`. You can use ``torchvision.utils.make_grid()`` to\n            convert a batch of tensor into 3xHxW format or use ``add_images()`` and let us do the job.\n            Tensor with :math:`(1, H, W)`, :math:`(H, W)`, :math:`(H, W, 3)` is also suitible as long as\n            corresponding ``dataformats`` argument is passed. e.g. CHW, HWC, HW.\n\n        Examples::\n\n            from tensorboardX import SummaryWriter\n            import numpy as np\n            img = np.zeros((3, 100, 100))\n            img[0] = np.arange(0, 10000).reshape(100, 100) / 10000\n            img[1] = 1 - np.arange(0, 10000).reshape(100, 100) / 10000\n\n            img_HWC = np.zeros((100, 100, 3))\n            img_HWC[:, :, 0] = np.arange(0, 10000).reshape(100, 100) / 10000\n            img_HWC[:, :, 1] = 1 - np.arange(0, 10000).reshape(100, 100) / 10000\n\n            writer = SummaryWriter()\n            writer.add_image('my_image', img, 0)\n\n            # If you have non-default dimension setting, set the dataformats argument.\n            writer.add_image('my_image_HWC', img_HWC, 0, dataformats='HWC')\n            writer.close()\n\n        Expected result:\n\n        .. image:: _static/img/tensorboard/add_image.png\n           :scale: 50 %\n\n        \"\"\"\n        summary = image(tag, img_tensor, dataformats=dataformats)\n        encoded_image_string = summary.value[0].image.encoded_image_string\n        self._get_file_writer().add_summary(\n            summary, global_step, walltime)\n        self._get_comet_logger().log_image_encoded(encoded_image_string, tag, step=global_step)\n\n    def add_images(\n            self,\n            tag: str,\n            img_tensor: numpy_compatible,\n            global_step: Optional[int] = None,\n            walltime: Optional[float] = None,\n            dataformats: Optional[str] = 'NCHW'):\n        \"\"\"Add batched (4D) image data to summary.\n        Besides passing 4D (NCHW) tensor, you can also pass a list of tensors of the same size.\n        In this case, the ``dataformats`` should be `CHW` or `HWC`.\n        Note that this requires the ``pillow`` package.\n\n        Args:\n            tag: Data identifier\n            img_tensor: Image data\n                The elements in img_tensor can either have values in [0, 1] (float32) or [0, 255] (uint8).\n                Users are responsible to scale the data in the correct range/type.\n            global_step: Global step value to record\n            walltime: Optional override default walltime (time.time()) of event\n        Shape:\n            img_tensor: Default is :math:`(N, 3, H, W)`. If ``dataformats`` is specified, other shape will be\n            accepted. e.g. NCHW or NHWC.\n\n        Examples::\n\n            from tensorboardX import SummaryWriter\n            import numpy as np\n\n            img_batch = np.zeros((16, 3, 100, 100))\n            for i in range(16):\n                img_batch[i, 0] = np.arange(0, 10000).reshape(100, 100) / 10000 / 16 * i\n                img_batch[i, 1] = (1 - np.arange(0, 10000).reshape(100, 100) / 10000) / 16 * i\n\n            writer = SummaryWriter()\n            writer.add_images('my_image_batch', img_batch, 0)\n            writer.close()\n\n        Expected result:\n\n        .. image:: _static/img/tensorboard/add_images.png\n           :scale: 30 %\n\n        \"\"\"\n        if isinstance(img_tensor, list):  # a list of tensors in CHW or HWC\n            if dataformats.upper() != 'CHW' and dataformats.upper() != 'HWC':\n                print('A list of image is passed, but the dataformat is neither CHW nor HWC.')\n                print('Nothing is written.')\n                return\n            import torch\n            try:\n                img_tensor = torch.stack(img_tensor, 0)\n            except TypeError:\n                import numpy as np\n                img_tensor = np.stack(img_tensor, 0)\n\n            dataformats = 'N' + dataformats\n\n        summary = image(tag, img_tensor, dataformats=dataformats)\n        encoded_image_string = summary.value[0].image.encoded_image_string\n        self._get_file_writer().add_summary(\n            summary, global_step, walltime)\n        self._get_comet_logger().log_image_encoded(encoded_image_string, tag, step=global_step)\n\n    def add_image_with_boxes(\n            self,\n            tag: str,\n            img_tensor: numpy_compatible,\n            box_tensor: numpy_compatible,\n            global_step: Optional[int] = None,\n            walltime: Optional[float] = None,\n            dataformats: Optional[str] = 'CHW',\n            labels: Optional[list[str]] = None,\n            **kwargs):\n        \"\"\"Add image and draw bounding boxes on the image.\n\n        Args:\n            tag: Data identifier\n            img_tensor: Image data\n            box_tensor: Box data (for detected objects)\n              box should be represented as [x1, y1, x2, y2].\n            global_step: Global step value to record\n            walltime: override default walltime (time.time()) of event\n            labels: The strings to be show on each bounding box.\n        Shape:\n            img_tensor: Default is :math:`(3, H, W)`. It can be specified with ``dataformats`` argument.\n            e.g. CHW or HWC\n\n            box_tensor: (torch.Tensor, numpy.array, or string/blobname): NX4,  where N is the number of\n            boxes and each 4 elements in a row represents (xmin, ymin, xmax, ymax).\n        \"\"\"\n        if labels is not None:\n            if isinstance(labels, str):\n                labels = [labels]\n            if len(labels) != box_tensor.shape[0]:\n                logger.warning('Number of labels do not equal to number of box, skip the labels.')\n                labels = None\n        summary = image_boxes(\n            tag, img_tensor, box_tensor, dataformats=dataformats, labels=labels, **kwargs)\n        encoded_image_string = summary.value[0].image.encoded_image_string\n        self._get_file_writer().add_summary(\n            summary, global_step, walltime)\n        self._get_comet_logger().log_image_encoded(encoded_image_string, tag, step=global_step)\n\n    def add_figure(\n            self,\n            tag: str,\n            figure,\n            global_step: Optional[int] = None,\n            close: Optional[bool] = True,\n            walltime: Optional[float] = None):\n        \"\"\"Render matplotlib figure into an image and add it to summary.\n\n        Note that this requires the ``matplotlib`` package.\n\n        Args:\n            tag: Data identifier\n            figure (matplotlib.pyplot.figure) or list of figures: Figure or a list of figures\n            global_step: Global step value to record\n            close: Flag to automatically close the figure\n            walltime: Override default walltime (time.time()) of event\n        \"\"\"\n        if isinstance(figure, list):\n            self.add_image(tag, figure_to_image(figure, close), global_step, walltime, dataformats='NCHW')\n        else:\n            self.add_image(tag, figure_to_image(figure, close), global_step, walltime, dataformats='CHW')\n\n    def add_video(\n            self,\n            tag: str,\n            vid_tensor: numpy_compatible,\n            global_step: Optional[int] = None,\n            fps: Optional[Union[int, float]] = 4,\n            walltime: Optional[float] = None,\n            dataformats: Optional[str] = 'NTCHW'):\n        \"\"\"Add video data to summary.\n\n        Note that this requires the ``moviepy`` package.\n\n        Args:\n            tag: Data identifier\n            vid_tensor: Video data\n            global_step: Global step value to record\n            fps: Frames per second\n            walltime: Optional override default walltime (time.time()) of event\n            dataformats: Specify different permutation of the video tensor\n        Shape:\n            vid_tensor: :math:`(N, T, C, H, W)`. The values should lie in [0, 255]\n            for type `uint8` or [0, 1] for type `float`.\n        \"\"\"\n        summary = video(tag, vid_tensor, fps, dataformats=dataformats)\n        encoded_image_string = summary.value[0].image.encoded_image_string\n        self._get_file_writer().add_summary(\n            summary, global_step, walltime)\n        self._get_comet_logger().log_image_encoded(encoded_image_string, tag, step=global_step)\n\n    def add_audio(\n            self,\n            tag: str,\n            snd_tensor: numpy_compatible,\n            global_step: Optional[int] = None,\n            sample_rate: Optional[int] = 44100,\n            walltime: Optional[float] = None):\n        \"\"\"Add audio data to summary.\n\n        Args:\n            tag: Data identifier\n            snd_tensor: Sound data\n            global_step: Global step value to record\n            sample_rate: sample rate in Hz\n            walltime: Optional override default walltime (time.time()) of event\n        Shape:\n            snd_tensor: :math:`(L, C)`. The values should lie between [-1, 1].\n            Where `L` is the number of audio frames and `C` is the channel. Set\n            channel equals to 2 for stereo.\n        \"\"\"\n        self._get_file_writer().add_summary(\n            audio(tag, snd_tensor, sample_rate=sample_rate), global_step, walltime)\n        self._get_comet_logger().log_audio(snd_tensor, sample_rate, tag, step=global_step)\n\n    def add_text(\n            self,\n            tag: str,\n            text_string: str,\n            global_step: Optional[int] = None,\n            walltime: Optional[float] = None):\n        \"\"\"Add text data to summary.\n\n        Args:\n            tag: Data identifier\n            text_string: String to save\n            global_step: Global step value to record\n            walltime: Optional override default walltime (time.time()) of event\n        Examples::\n\n            writer.add_text('lstm', 'This is an lstm', 0)\n            writer.add_text('rnn', 'This is an rnn', 10)\n        \"\"\"\n        self._get_file_writer().add_summary(\n            text(tag, text_string), global_step, walltime)\n        self._get_comet_logger().log_text(text_string, global_step)\n\n    def add_onnx_graph(\n            self,\n            onnx_model_file):\n        \"\"\"Add onnx graph to TensorBoard.\n\n        Args:\n            onnx_model_file (string): The path to the onnx model.\n        \"\"\"\n        self._get_file_writer().add_onnx_graph(load_onnx_graph(onnx_model_file))\n        self._get_comet_logger().log_asset(onnx_model_file)\n\n    def add_openvino_graph(\n            self,\n            xmlname):\n        \"\"\"Add openvino graph to TensorBoard.\n\n        Args:\n            xmlname (string): The path to the openvino model. (the xml file)\n        \"\"\"\n        self._get_file_writer().add_openvino_graph(load_openvino_graph(xmlname))\n        self._get_comet_logger().log_asset(xmlname)\n\n    def add_graph(\n            self,\n            model,\n            input_to_model=None,\n            verbose=False,\n            use_strict_trace=True):\n        \"\"\"Add graph data to summary. The graph is actually processed by `torch.utils.tensorboard.add_graph()`\n\n        Args:\n            model (torch.nn.Module): Model to draw.\n            input_to_model (torch.Tensor or list of torch.Tensor): A variable or a tuple of\n                variables to be fed.\n            verbose (bool): Whether to print graph structure in console.\n            use_strict_trace (bool): Whether to pass keyword argument `strict` to\n                `torch.jit.trace`. Pass False when you want the tracer to\n                record your mutable container types (list, dict)\n        \"\"\"\n        from torch.utils.tensorboard._pytorch_graph import graph\n        self._get_file_writer().add_graph(graph(model, input_to_model, verbose, use_strict_trace=use_strict_trace))\n\n    @staticmethod\n    def _encode(rawstr):\n        # I'd use urllib but, I'm unsure about the differences from python3 to python2, etc.\n        retval = rawstr\n        retval = retval.replace(\"%\", \"%{:02x}\".format(ord(\"%\")))\n        retval = retval.replace(\"/\", \"%{:02x}\".format(ord(\"/\")))\n        retval = retval.replace(\"\\\\\", \"%{:02x}\".format(ord(\"\\\\\")))\n        return retval\n\n    def add_embedding(\n            self,\n            mat: numpy_compatible,\n            metadata=None,\n            label_img: numpy_compatible = None,\n            global_step: Optional[int] = None,\n            tag='default',\n            metadata_header=None):\n        r\"\"\"Add embedding projector data to summary.\n\n        Args:\n            mat: A matrix which each row is the feature vector of the data point\n            metadata (list): A list of labels, each element will be converted to\n                string.\n            label_img: Images correspond to each\n                data point. Each image should be square sized. The amount and\n                the size of the images are limited by the Tensorboard frontend,\n                see limits below.\n            global_step: Global step value to record\n            tag: Name for the embedding\n        Shape:\n            mat: :math:`(N, D)`, where N is number of data and D is feature dimension\n\n            label_img: :math:`(N, C, H, W)`, where `Height` should be equal to `Width`.\n            Also, :math:`\\sqrt{N}*W` must be less than or equal to 8192, so that the generated sprite\n            image can be loaded by the Tensorboard frontend\n            (see `tensorboardX#516 <https://github.com/lanpa/tensorboardX/issues/516>`_ for more).\n\n        Examples::\n\n            import keyword\n            import torch\n            meta = []\n            while len(meta)<100:\n                meta = meta+keyword.kwlist # get some strings\n            meta = meta[:100]\n\n            for i, v in enumerate(meta):\n                meta[i] = v+str(i)\n\n            label_img = torch.rand(100, 3, 32, 32)\n            for i in range(100):\n                label_img[i]*=i/100.0\n\n            writer.add_embedding(torch.randn(100, 5), metadata=meta, label_img=label_img)\n            writer.add_embedding(torch.randn(100, 5), label_img=label_img)\n            writer.add_embedding(torch.randn(100, 5), metadata=meta)\n        \"\"\"\n\n        # programmer's note: This function has nothing to do with event files.\n        # The hard-coded projector_config.pbtxt is the only source for TensorBoard's\n        # current implementation. (as of Dec. 2019)\n        from .x2num import make_np\n        mat = make_np(mat)\n        if global_step is None:\n            global_step = 0\n            # clear pbtxt?\n        # Maybe we should encode the tag so slashes don't trip us up?\n        # I don't think this will mess us up, but better safe than sorry.\n        subdir = f\"{str(global_step).zfill(5)}/{self._encode(tag)}\"\n        save_path = os.path.join(self._get_file_writer().get_logdir(), subdir)\n        try:\n            os.makedirs(save_path)\n        except OSError:\n            print(\n                'warning: Embedding dir exists, did you set global_step for add_embedding()?')\n        if metadata is not None:\n            assert mat.shape[0] == len(\n                metadata), '#labels should equal with #data points'\n            make_tsv(metadata, save_path, metadata_header=metadata_header)\n        if label_img is not None:\n            assert mat.shape[0] == label_img.shape[0], '#images should equal with #data points'\n            assert label_img.shape[2] == label_img.shape[3], 'Image should be square, see tensorflow/tensorboard#670'\n            make_sprite(label_img, save_path)\n        assert mat.ndim == 2, 'mat should be 2D, where mat.size(0) is the number of data points'\n        make_mat(mat, save_path)\n        # new funcion to append to the config file a new embedding\n        append_pbtxt(metadata, label_img,\n                     self._get_file_writer().get_logdir(), subdir, global_step, tag)\n        template_filename = f'{tag}.json' if tag is not None else None\n\n        self._get_comet_logger().log_embedding(mat, metadata, label_img, template_filename=template_filename)\n\n    def add_pr_curve(\n            self,\n            tag: str,\n            labels: numpy_compatible,\n            predictions: numpy_compatible,\n            global_step: Optional[int] = None,\n            num_thresholds: Optional[int] = 127,\n            weights=None,\n            walltime: Optional[float] = None):\n        \"\"\"Adds precision recall curve.\n        Plotting a precision-recall curve lets you understand your model's\n        performance under different threshold settings. With this function,\n        you provide the ground truth labeling (T/F) and prediction confidence\n        (usually the output of your model) for each target. The TensorBoard UI\n        will let you choose the threshold interactively.\n\n        Args:\n            tag: Data identifier\n            labels: Ground truth data. Binary label for each element.\n            predictions:\n              The probability that an element be classified as true.\n              Value should in [0, 1]\n            global_step: Global step value to record\n            num_thresholds: Number of thresholds used to draw the curve.\n            walltime: Override default walltime (time.time()) of event\n\n        Examples::\n\n            from tensorboardX import SummaryWriter\n            import numpy as np\n            labels = np.random.randint(2, size=100)  # binary label\n            predictions = np.random.rand(100)\n            writer = SummaryWriter()\n            writer.add_pr_curve('pr_curve', labels, predictions, 0)\n            writer.close()\n\n        \"\"\"\n        from .x2num import make_np\n        labels, predictions = make_np(labels), make_np(predictions)\n\n        summary = pr_curve(tag, labels, predictions, num_thresholds, weights)\n        self._get_file_writer().add_summary(\n            summary,\n            global_step, walltime)\n\n        self._get_comet_logger().log_pr_data(tag, summary, num_thresholds, step=global_step)\n\n    def add_pr_curve_raw(\n            self,\n            tag: str,\n            true_positive_counts: numpy_compatible,\n            false_positive_counts: numpy_compatible,\n            true_negative_counts: numpy_compatible,\n            false_negative_counts: numpy_compatible,\n            precision: numpy_compatible,\n            recall: numpy_compatible,\n            global_step: Optional[int] = None,\n            num_thresholds: Optional[int] = 127,\n            weights=None,\n            walltime: Optional[float] = None):\n        \"\"\"Adds precision recall curve with raw data.\n\n        Args:\n            tag: Data identifier\n            global_step: Global step value to record\n            num_thresholds (int): Number of thresholds used to draw the curve.\n            walltime: Optional override default walltime (time.time()) of event\n              see: `Tensorboard refenence\n              <https://github.com/tensorflow/tensorboard/blob/master/tensorboard/plugins/pr_curve/README.md>`_\n        \"\"\"\n        self._get_file_writer().add_summary(\n            pr_curve_raw(tag,\n                         true_positive_counts,\n                         false_positive_counts,\n                         true_negative_counts,\n                         false_negative_counts,\n                         precision,\n                         recall,\n                         num_thresholds,\n                         weights),\n            global_step,\n            walltime)\n        self._get_comet_logger().log_pr_raw_data(tag, step=global_step,\n                                                 true_positive_counts=true_positive_counts,\n                                                 false_positive_counts=false_positive_counts,\n                                                 true_negative_counts=true_negative_counts,\n                                                 false_negative_counts=false_negative_counts,\n                                                 precision=precision,\n                                                 recall=recall,\n                                                 num_thresholds=num_thresholds,\n                                                 weights=weights)\n\n    def add_custom_scalars_multilinechart(\n            self,\n            tags: list[str],\n            category: str = 'default',\n            title: str = 'untitled'):\n        \"\"\"Shorthand for creating multilinechart. Similar to ``add_custom_scalars()``, but the only necessary argument\n        is *tags*.\n\n        Args:\n            tags: list of tags that have been used in ``add_scalar()``\n\n        Examples::\n\n            writer.add_custom_scalars_multilinechart(['twse/0050', 'twse/2330'])\n        \"\"\"\n        layout = {category: {title: ['Multiline', tags]}}\n        self._get_file_writer().add_summary(custom_scalars(layout))\n\n    def add_custom_scalars_marginchart(\n            self,\n            tags: list[str],\n            category: str = 'default',\n            title: str = 'untitled'):\n        \"\"\"Shorthand for creating marginchart. Similar to ``add_custom_scalars()``, but the only necessary argument\n        is *tags*, which should have exactly 3 elements.\n\n        Args:\n            tags: list of tags that have been used in ``add_scalar()``\n\n        Examples::\n\n            writer.add_custom_scalars_marginchart(['twse/0050', 'twse/2330', 'twse/2006'])\n        \"\"\"\n        assert len(tags) == 3\n        layout = {category: {title: ['Margin', tags]}}\n        self._get_file_writer().add_summary(custom_scalars(layout))\n\n    def add_custom_scalars(\n            self,\n            layout: dict[str, dict[str, list]]):\n        \"\"\"Create special chart by collecting charts tags in 'scalars'. Note that this function can only be called once\n        for each SummaryWriter() object. Because it only provides metadata to tensorboard, the function can be called\n        before or after the training loop. See ``examples/demo_custom_scalars.py`` for more.\n\n        Args:\n            layout: {categoryName: *charts*}, where *charts* is also a dictionary\n              {chartName: *ListOfProperties*}. The first element in *ListOfProperties* is the chart's type\n              (one of **Multiline** or **Margin**) and the second element should be a list containing the tags\n              you have used in add_scalar function, which will be collected into the new chart.\n\n        Examples::\n\n            layout = {'Taiwan':{'twse':['Multiline',['twse/0050', 'twse/2330']]},\n                         'USA':{ 'dow':['Margin',   ['dow/aaa', 'dow/bbb', 'dow/ccc']],\n                              'nasdaq':['Margin',   ['nasdaq/aaa', 'nasdaq/bbb', 'nasdaq/ccc']]}}\n\n            writer.add_custom_scalars(layout)\n        \"\"\"\n        self._get_file_writer().add_summary(custom_scalars(layout))\n\n    def add_mesh(\n            self,\n            tag: str,\n            vertices: numpy_compatible,\n            colors: numpy_compatible = None,\n            faces: numpy_compatible = None,\n            config_dict=None,\n            global_step: Optional[int] = None,\n            walltime: Optional[float] = None):\n        \"\"\"Add meshes or 3D point clouds to TensorBoard. The visualization is based on Three.js,\n        so it allows users to interact with the rendered object. Besides the basic definitions\n        such as vertices, faces, users can further provide camera parameter, lighting condition, etc.\n        Please check https://threejs.org/docs/index.html#manual/en/introduction/Creating-a-scene for\n        advanced usage.\n\n        Args:\n            tag: Data identifier\n            vertices: List of the 3D coordinates of vertices.\n            colors: Colors for each vertex\n            faces: Indices of vertices within each triangle. (Optional)\n            config_dict: Dictionary with ThreeJS classes names and configuration.\n            global_step: Global step value to record\n            walltime: Optional override default walltime (time.time())\n              seconds after epoch of event\n\n        Shape:\n            vertices: :math:`(B, N, 3)`. (batch, number_of_vertices, channels). If\n              Nothing show on tensorboard, try normalizing the values to [-1, 1].\n\n            colors: :math:`(B, N, 3)`. The values should lie in [0, 255].\n\n            faces: :math:`(B, N, 3)`. The values should lie in [0, number_of_vertices] for type `uint8`.\n\n        Expected result after running ``examples/demo_mesh.py``:\n\n        .. image:: _static/img/tensorboard/add_mesh.png\n           :scale: 30 %\n\n        \"\"\"\n        self._get_file_writer().add_summary(mesh(tag, vertices, colors, faces, config_dict), global_step, walltime)\n        self._get_comet_logger().log_mesh(tag, vertices, colors, faces,\n                                          config_dict, global_step, walltime)\n\n    def close(self):\n        \"\"\"Close the current SummaryWriter. This call flushes the unfinished write operation.\n        Use context manager (with statement) whenever it's possible.\n        \"\"\"\n        if self.all_writers is None:\n            return  # ignore double close\n        for writer in self.all_writers.values():\n            writer.flush()\n            writer.close()\n        self.file_writer = self.all_writers = None\n        self._get_comet_logger().end()\n        self._comet_logger = None\n\n    def flush(self):\n        \"\"\"Force the data in memory to be flushed to disk. Use this call if tensorboard does not update reqularly.\n        Another way is to set the `flush_secs` when creating the SummaryWriter.\n        \"\"\"\n        if self.all_writers is None:\n            return  # ignore double close\n        for writer in self.all_writers.values():\n            writer.flush()\n\n    def __enter__(self):\n        return self\n\n    def __exit__(self, exc_type, exc_val, exc_tb):\n        self.close()\n\n    @contextlib.contextmanager\n    def use_metadata(self, *, global_step=None, walltime=None):\n        \"\"\"Context manager to temporarily set default metadata for all enclosed :meth:`add_*` calls.\n\n        Args:\n            global_step: Global step value to record\n            walltime: Walltime to record (defaults to time.time())\n\n        Examples::\n\n            with writer.use_metadata(global_step=10):\n                writer.add_scalar(\"loss\", 3.0)\n        \"\"\"\n        with self._get_file_writer().use_metadata(global_step=global_step, walltime=walltime):\n            yield self\n"
  },
  {
    "path": "tensorboardX/x2num.py",
    "content": "# DO NOT alter/distruct/free input object !\n\nimport logging\n\nimport numpy as np\n\nlogger = logging.getLogger(__name__)\n\n\ndef check_nan(array):\n    tmp = np.sum(array)\n    if np.isnan(tmp) or np.isinf(tmp):\n        logger.warning('NaN or Inf found in input tensor.')\n    return array\n\n\ndef make_np(x):\n    if isinstance(x, list):\n        return check_nan(np.array(x))\n    if isinstance(x, np.ndarray):\n        return check_nan(x)\n    if np.isscalar(x):\n        return check_nan(np.array([x]))\n    if 'torch' in str(type(x)):\n        return check_nan(prepare_pytorch(x))\n    if 'chainer' in str(type(x)):\n        return check_nan(prepare_chainer(x))\n    if 'mxnet' in str(type(x)):\n        return check_nan(prepare_mxnet(x))\n    if 'jax' in str(type(x)):\n        return check_nan(np.array(x))\n    if 'paddle' in str(type(x)):\n        return check_nan(np.array(x))\n    raise NotImplementedError(\n        f'Got {type(x)}, but expected numpy array or torch tensor.')\n\n\ndef prepare_pytorch(x):\n    import torch\n    if isinstance(x, torch.autograd.Variable):\n        x = x.data\n    x = x.cpu().numpy()\n    return x\n\n\ndef prepare_theano(x):\n    import theano\n    pass\n\n\ndef prepare_mxnet(x):\n    x = x.asnumpy()\n    return x\n\n\ndef prepare_chainer(x):\n    import chainer\n    x = chainer.cuda.to_cpu(x.data)\n    return x\n"
  },
  {
    "path": "test-requirements.txt",
    "content": "flake8\npytest\ntorch\ntorchvision\nprotobuf==4.22.3\nnumpy\ntensorboard\nboto3\nmatplotlib\nmoto<5\nsoundfile\nvisdom\nonnx\npytest-cov\nimageio==2.27  # moviepy bug\n\n"
  },
  {
    "path": "tests/__init__.py",
    "content": "import torch\nimport tensorboardX.proto\n"
  },
  {
    "path": "tests/event_file_writer_test.py",
    "content": "# Copyright 2019 The TensorFlow Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ==============================================================================\n\n# \"\"\"Tests for EventFileWriter and _AsyncWriter\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\n\nimport glob\nimport os\nfrom tensorboardX.event_file_writer import EventFileWriter\nfrom tensorboardX.event_file_writer import EventFileWriter as _AsyncWriter\n\n\nfrom tensorboardX.proto import event_pb2\nfrom tensorboardX.proto.summary_pb2 import Summary\n\nfrom tensorboard.compat.tensorflow_stub.pywrap_tensorflow import PyRecordReader_New\nimport unittest\n\n\nclass EventFileWriterTest(unittest.TestCase):\n  def get_temp_dir(self):\n    import tempfile\n    return tempfile.mkdtemp()\n\n  def test_event_file_writer_roundtrip(self):\n    _TAGNAME = 'dummy'\n    _DUMMY_VALUE = 42\n    logdir = self.get_temp_dir()\n    w = EventFileWriter(logdir)\n    summary = Summary(value=[Summary.Value(tag=_TAGNAME, simple_value=_DUMMY_VALUE)])\n    fakeevent = event_pb2.Event(summary=summary)\n    w.add_event(fakeevent)\n    w.close()\n    event_files = sorted(glob.glob(os.path.join(logdir, '*')))\n    self.assertEqual(len(event_files), 1)\n    r = PyRecordReader_New(event_files[0])\n    r.GetNext()  # meta data, so skip\n    r.GetNext()\n    self.assertEqual(fakeevent.SerializeToString(), r.record())\n\n  def test_setting_filename_suffix_works(self):\n    logdir = self.get_temp_dir()\n\n    w = EventFileWriter(logdir, filename_suffix='.event_horizon')\n    w.close()\n    event_files = sorted(glob.glob(os.path.join(logdir, '*')))\n    self.assertEqual(event_files[0].split('.')[-1], 'event_horizon')\n\n  def test_async_writer_without_write(self):\n    logdir = self.get_temp_dir()\n    w = EventFileWriter(logdir)\n    w.close()\n    event_files = sorted(glob.glob(os.path.join(logdir, '*')))\n    r = PyRecordReader_New(event_files[0])\n    r.GetNext()\n    s = event_pb2.Event.FromString(r.record())\n    self.assertEqual(s.file_version, \"brain.Event:2\")\n\n\n# skip the test, because tensorboard's implementaion of filewriter\n# writes raw data while that in tensorboardX writes event protobuf.\nclass AsyncWriterTest(): #unittest.TestCase):\n  def get_temp_dir(self):\n    import tempfile\n    return tempfile.mkdtemp()\n\n  def test_async_writer_write_once(self):\n    foldername = os.path.join(self.get_temp_dir(), \"async_writer_write_once\")\n    w = _AsyncWriter(foldername)\n    filename = w._ev_writer._file_name\n    bytes_to_write = b\"hello world\"\n    w.add_event(bytes_to_write)\n    w.close()\n    with open(filename, 'rb') as f:\n      self.assertEqual(f.read(), bytes_to_write)\n\n  def test_async_writer_write_queue_full(self):\n    filename = os.path.join(self.get_temp_dir(), \"async_writer_write_queue_full\")\n    w = _AsyncWriter(filename)\n    bytes_to_write = b\"hello world\"\n    repeat = 100\n    for i in range(repeat):\n      w.write(bytes_to_write)\n    w.close()\n    with open(filename, 'rb') as f:\n      self.assertEqual(f.read(), bytes_to_write * repeat)\n\n  def test_async_writer_write_one_slot_queue(self):\n    filename = os.path.join(self.get_temp_dir(), \"async_writer_write_one_slot_queue\")\n    w = _AsyncWriter(filename, max_queue_size=1)\n    bytes_to_write = b\"hello world\"\n    repeat = 10  # faster\n    for i in range(repeat):\n      w.write(bytes_to_write)\n    w.close()\n    with open(filename, 'rb') as f:\n      self.assertEqual(f.read(), bytes_to_write * repeat)\n\n  def test_async_writer_close_triggers_flush(self):\n    filename = os.path.join(self.get_temp_dir(), \"async_writer_close_triggers_flush\")\n    w = _AsyncWriter(filename)\n    bytes_to_write = b\"x\" * 64\n    w.write(bytes_to_write)\n    w.close()\n    with open(filename, 'rb') as f:\n      self.assertEqual(f.read(), bytes_to_write)\n\n  def test_write_after_async_writer_closed(self):\n    filename = os.path.join(self.get_temp_dir(), \"write_after_async_writer_closed\")\n    w = _AsyncWriter(filename)\n    bytes_to_write = b\"x\" * 64\n    w.write(bytes_to_write)\n    w.close()\n\n    with self.assertRaises(IOError):\n      w.write(bytes_to_write)\n    # nothing is written to the file after close\n    with open(filename, 'rb') as f:\n      self.assertEqual(f.read(), bytes_to_write)\n\n\nif __name__ == '__main__':\n  unittest.main()\n"
  },
  {
    "path": "tests/expect/caffe_mnist.expect",
    "content": "node {\n  name: \"conv1/XavierFill\"\n  op: \"XavierFill\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 20\n          }\n          dim {\n            size: 1\n          }\n          dim {\n            size: 5\n          }\n          dim {\n            size: 5\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"conv1/ConstantFill\"\n  op: \"ConstantFill\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 20\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"conv1/XavierFill_1\"\n  op: \"XavierFill\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 100\n          }\n          dim {\n            size: 20\n          }\n          dim {\n            size: 5\n          }\n          dim {\n            size: 5\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"conv1/ConstantFill_1\"\n  op: \"ConstantFill\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 100\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"classifier/XavierFill\"\n  op: \"XavierFill\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 500\n          }\n          dim {\n            size: 1600\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"classifier/ConstantFill\"\n  op: \"ConstantFill\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 500\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"classifier/XavierFill_1\"\n  op: \"XavierFill\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 10\n          }\n          dim {\n            size: 500\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"classifier/ConstantFill_1\"\n  op: \"ConstantFill\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 10\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"ImageInput\"\n  op: \"ImageInput\"\n  input: \"db\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"is_test\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"use_cudnn\"\n    value {\n      i: 1\n    }\n  }\n}\nnode {\n  name: \"NHWC2NCHW\"\n  op: \"NHWC2NCHW\"\n  input: \"data_nhwc\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"conv1/Conv\"\n  op: \"Conv\"\n  input: \"data\"\n  input: \"conv1/conv1_w\"\n  input: \"conv1/conv1_b\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 5\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"conv1/MaxPool\"\n  op: \"MaxPool\"\n  input: \"conv1/conv1\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 2\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"stride\"\n    value {\n      i: 2\n    }\n  }\n}\nnode {\n  name: \"conv1/Conv_1\"\n  op: \"Conv\"\n  input: \"conv1/pool1\"\n  input: \"conv1/conv2_w\"\n  input: \"conv1/conv2_b\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 5\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"conv1/MaxPool_1\"\n  op: \"MaxPool\"\n  input: \"conv1/conv2\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 2\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"stride\"\n    value {\n      i: 2\n    }\n  }\n}\nnode {\n  name: \"classifier/FC\"\n  op: \"FC\"\n  input: \"conv1/pool2\"\n  input: \"classifier/fc3_w\"\n  input: \"classifier/fc3_b\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"use_cudnn\"\n    value {\n      i: 1\n    }\n  }\n}\nnode {\n  name: \"classifier/Relu\"\n  op: \"Relu\"\n  input: \"classifier/fc3\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"classifier/FC_1\"\n  op: \"FC\"\n  input: \"classifier/fc3_1\"\n  input: \"classifier/pred_w\"\n  input: \"classifier/pred_b\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"use_cudnn\"\n    value {\n      i: 1\n    }\n  }\n}\nnode {\n  name: \"classifier/Softmax\"\n  op: \"Softmax\"\n  input: \"classifier/pred\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"classifier/LabelCrossEntropy\"\n  op: \"LabelCrossEntropy\"\n  input: \"classifier/softmax\"\n  input: \"label\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"classifier/AveragedLoss\"\n  op: \"AveragedLoss\"\n  input: \"classifier/xent\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/ConstantFill\"\n  op: \"ConstantFill\"\n  input: \"classifier/loss\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"value\"\n    value {\n      f: 1.0\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/classifier/AveragedLossGradient\"\n  op: \"AveragedLossGradient\"\n  input: \"classifier/xent\"\n  input: \"GRADIENTS/classifier/loss_autogen_grad\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/LabelCrossEntropyGradient\"\n  op: \"LabelCrossEntropyGradient\"\n  input: \"classifier/softmax\"\n  input: \"label\"\n  input: \"GRADIENTS/classifier/xent_grad\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/SoftmaxGradient\"\n  op: \"SoftmaxGradient\"\n  input: \"classifier/softmax\"\n  input: \"GRADIENTS/classifier/softmax_grad\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/classifier/FCGradient\"\n  op: \"FCGradient\"\n  input: \"classifier/fc3_1\"\n  input: \"classifier/pred_w\"\n  input: \"GRADIENTS/classifier/pred_grad\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"use_cudnn\"\n    value {\n      i: 1\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/classifier/ReluGradient\"\n  op: \"ReluGradient\"\n  input: \"classifier/fc3_1\"\n  input: \"GRADIENTS/classifier/fc3_grad\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/c/FCGradient\"\n  op: \"FCGradient\"\n  input: \"conv1/pool2\"\n  input: \"classifier/fc3_w\"\n  input: \"GRADIENTS/classifier/fc3_grad_1\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"use_cudnn\"\n    value {\n      i: 1\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/conv1/MaxPoolGradient\"\n  op: \"MaxPoolGradient\"\n  input: \"conv1/conv2\"\n  input: \"conv1/pool2\"\n  input: \"GRADIENTS/conv1/pool2_grad\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 2\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"stride\"\n    value {\n      i: 2\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/conv1/ConvGradient\"\n  op: \"ConvGradient\"\n  input: \"conv1/pool1\"\n  input: \"conv1/conv2_w\"\n  input: \"GRADIENTS/conv1/conv2_grad\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 5\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/conv1/MaxPoolGradient_1\"\n  op: \"MaxPoolGradient\"\n  input: \"conv1/conv1\"\n  input: \"conv1/pool1\"\n  input: \"GRADIENTS/conv1/pool1_grad\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 2\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"stride\"\n    value {\n      i: 2\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/ConvGradient\"\n  op: \"ConvGradient\"\n  input: \"data\"\n  input: \"conv1/conv1_w\"\n  input: \"GRADIENTS/conv1/conv1_grad\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 5\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/NCHW2NHWC\"\n  op: \"NCHW2NHWC\"\n  input: \"GRADIENTS/data_grad\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/fc3_grad_1\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/ReluGradient:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/xent_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/AveragedLossGradient:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/pred_w_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/FCGradient:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/data_nhwc_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/NCHW2NHWC:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/fc3_w_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/c/FCGradient:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/conv1/conv1_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/conv1/MaxPoolGradient_1:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/conv1/conv1_b_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/ConvGradient:1\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/conv1/conv2_w_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/conv1/ConvGradient:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"classifier/pred\"\n  op: \"Blob\"\n  input: \"classifier/FC_1:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/conv1/pool2_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/c/FCGradient:2\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/conv1/conv1_w_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/ConvGradient:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"data\"\n  op: \"Blob\"\n  input: \"NHWC2NCHW:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"classifier/xent\"\n  op: \"Blob\"\n  input: \"classifier/LabelCrossEntropy:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/conv1/pool1_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/conv1/ConvGradient:2\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"db\"\n  op: \"Placeholder\"\n}\nnode {\n  name: \"classifier/fc3_b\"\n  op: \"Blob\"\n  input: \"classifier/ConstantFill:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"classifier/pred_b\"\n  op: \"Blob\"\n  input: \"classifier/ConstantFill_1:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"classifier/softmax\"\n  op: \"Blob\"\n  input: \"classifier/Softmax:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/data_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/ConvGradient:2\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/pred_b_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/FCGradient:1\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"label\"\n  op: \"Blob\"\n  input: \"ImageInput:1\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"conv1/pool1\"\n  op: \"Blob\"\n  input: \"conv1/MaxPool:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"data_nhwc\"\n  op: \"Blob\"\n  input: \"ImageInput:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"conv1/conv2\"\n  op: \"Blob\"\n  input: \"conv1/Conv_1:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/conv1/conv2_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/conv1/MaxPoolGradient:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"conv1/conv2_b\"\n  op: \"Blob\"\n  input: \"conv1/ConstantFill_1:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"conv1/conv1_b\"\n  op: \"Blob\"\n  input: \"conv1/ConstantFill:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"classifier/fc3_w\"\n  op: \"Blob\"\n  input: \"classifier/XavierFill:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/fc3_b_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/c/FCGradient:1\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"classifier/pred_w\"\n  op: \"Blob\"\n  input: \"classifier/XavierFill_1:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"conv1/pool2\"\n  op: \"Blob\"\n  input: \"conv1/MaxPool_1:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/conv1/conv2_b_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/conv1/ConvGradient:1\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"classifier/fc3_1\"\n  op: \"Blob\"\n  input: \"classifier/Relu:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"classifier/loss\"\n  op: \"Blob\"\n  input: \"classifier/AveragedLoss:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/fc3_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/FCGradient:2\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"conv1/conv1_w\"\n  op: \"Blob\"\n  input: \"conv1/XavierFill:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"conv1/conv1\"\n  op: \"Blob\"\n  input: \"conv1/Conv:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/loss_autogen_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/ConstantFill:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"classifier/fc3\"\n  op: \"Blob\"\n  input: \"classifier/FC:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/pred_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/SoftmaxGradient:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/softmax_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/LabelCrossEntropyGradient:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"conv1/conv2_w\"\n  op: \"Blob\"\n  input: \"conv1/XavierFill_1:0\"\n  device: \"/gpu:0\"\n}"
  },
  {
    "path": "tests/expect/caffe_overfeat.expect",
    "content": "node {\n  name: \"conv1/XavierFill\"\n  op: \"XavierFill\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 96\n          }\n          dim {\n            size: 3\n          }\n          dim {\n            size: 11\n          }\n          dim {\n            size: 11\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"conv1/ConstantFill\"\n  op: \"ConstantFill\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 96\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"classifier/XavierFill\"\n  op: \"XavierFill\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 1000\n          }\n          dim {\n            size: 4096\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"classifier/ConstantFill\"\n  op: \"ConstantFill\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 1000\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"ImageInput\"\n  op: \"ImageInput\"\n  input: \"db\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"is_test\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"use_cudnn\"\n    value {\n      i: 1\n    }\n  }\n}\nnode {\n  name: \"NHWC2NCHW\"\n  op: \"NHWC2NCHW\"\n  input: \"data_nhwc\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"conv1/Conv\"\n  op: \"Conv\"\n  input: \"data\"\n  input: \"conv1/conv1_w\"\n  input: \"conv1/conv1_b\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 11\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"stride\"\n    value {\n      i: 4\n    }\n  }\n}\nnode {\n  name: \"conv1/Relu\"\n  op: \"Relu\"\n  input: \"conv1/conv1\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"conv1/MaxPool\"\n  op: \"MaxPool\"\n  input: \"conv1/conv1_1\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 2\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"stride\"\n    value {\n      i: 2\n    }\n  }\n}\nnode {\n  name: \"classifier/FC\"\n  op: \"FC\"\n  input: \"conv1/pool1\"\n  input: \"classifier/fc_w\"\n  input: \"classifier/fc_b\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"use_cudnn\"\n    value {\n      i: 1\n    }\n  }\n}\nnode {\n  name: \"classifier/Softmax\"\n  op: \"Softmax\"\n  input: \"classifier/fc\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"classifier/LabelCrossEntropy\"\n  op: \"LabelCrossEntropy\"\n  input: \"classifier/pred\"\n  input: \"label\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"classifier/AveragedLoss\"\n  op: \"AveragedLoss\"\n  input: \"classifier/xent\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/ConstantFill\"\n  op: \"ConstantFill\"\n  input: \"classifier/loss\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"value\"\n    value {\n      f: 1.0\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/classifier/AveragedLossGradient\"\n  op: \"AveragedLossGradient\"\n  input: \"classifier/xent\"\n  input: \"GRADIENTS/classifier/loss_autogen_grad\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/LabelCrossEntropyGradient\"\n  op: \"LabelCrossEntropyGradient\"\n  input: \"classifier/pred\"\n  input: \"label\"\n  input: \"GRADIENTS/classifier/xent_grad\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/SoftmaxGradient\"\n  op: \"SoftmaxGradient\"\n  input: \"classifier/pred\"\n  input: \"GRADIENTS/classifier/pred_grad\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/c/FCGradient\"\n  op: \"FCGradient\"\n  input: \"conv1/pool1\"\n  input: \"classifier/fc_w\"\n  input: \"GRADIENTS/classifier/fc_grad\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"use_cudnn\"\n    value {\n      i: 1\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/conv1/MaxPoolGradient\"\n  op: \"MaxPoolGradient\"\n  input: \"conv1/conv1_1\"\n  input: \"conv1/pool1\"\n  input: \"GRADIENTS/conv1/pool1_grad\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 2\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"stride\"\n    value {\n      i: 2\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/conv1/ReluGradient\"\n  op: \"ReluGradient\"\n  input: \"conv1/conv1_1\"\n  input: \"GRADIENTS/conv1/conv1_grad\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/ConvGradient\"\n  op: \"ConvGradient\"\n  input: \"data\"\n  input: \"conv1/conv1_w\"\n  input: \"GRADIENTS/conv1/conv1_grad_1\"\n  device: \"/gpu:0\"\n  attr {\n    key: \"exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 11\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"stride\"\n    value {\n      i: 4\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/NCHW2NHWC\"\n  op: \"NCHW2NHWC\"\n  input: \"GRADIENTS/data_grad\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"conv1/conv1_w\"\n  op: \"Blob\"\n  input: \"conv1/XavierFill:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"classifier/fc\"\n  op: \"Blob\"\n  input: \"classifier/FC:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"data_nhwc\"\n  op: \"Blob\"\n  input: \"ImageInput:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/conv1/conv1_b_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/ConvGradient:1\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/pred_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/LabelCrossEntropyGradient:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/fc_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/SoftmaxGradient:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"conv1/conv1_b\"\n  op: \"Blob\"\n  input: \"conv1/ConstantFill:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/fc_b_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/c/FCGradient:1\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/fc_w_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/c/FCGradient:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"label\"\n  op: \"Blob\"\n  input: \"ImageInput:1\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/data_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/ConvGradient:2\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"classifier/loss\"\n  op: \"Blob\"\n  input: \"classifier/AveragedLoss:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"conv1/conv1\"\n  op: \"Blob\"\n  input: \"conv1/Conv:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/conv1/conv1_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/conv1/MaxPoolGradient:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"classifier/xent\"\n  op: \"Blob\"\n  input: \"classifier/LabelCrossEntropy:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/loss_autogen_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/ConstantFill:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"classifier/fc_w\"\n  op: \"Blob\"\n  input: \"classifier/XavierFill:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"conv1/conv1_1\"\n  op: \"Blob\"\n  input: \"conv1/Relu:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"db\"\n  op: \"Placeholder\"\n}\nnode {\n  name: \"classifier/pred\"\n  op: \"Blob\"\n  input: \"classifier/Softmax:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"classifier/fc_b\"\n  op: \"Blob\"\n  input: \"classifier/ConstantFill:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/classifier/xent_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/AveragedLossGradient:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"data\"\n  op: \"Blob\"\n  input: \"NHWC2NCHW:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/conv1/conv1_w_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/ConvGradient:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/conv1/conv1_grad_1\"\n  op: \"Blob\"\n  input: \"GRADIENTS/conv1/ReluGradient:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/data_nhwc_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/NCHW2NHWC:0\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"GRADIENTS/conv1/pool1_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/c/FCGradient:2\"\n  device: \"/gpu:0\"\n}\nnode {\n  name: \"conv1/pool1\"\n  op: \"Blob\"\n  input: \"conv1/MaxPool:0\"\n  device: \"/gpu:0\"\n}\n\"\"\"\n\n"
  },
  {
    "path": "tests/expect/test_caffe2.test_simple_cnnmodel.expect",
    "content": "node {\n  name: \"conv1/XavierFill\"\n  op: \"XavierFill\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 96\n          }\n          dim {\n            size: 3\n          }\n          dim {\n            size: 11\n          }\n          dim {\n            size: 11\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"conv1/ConstantFill\"\n  op: \"ConstantFill\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 96\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"classifier/XavierFill\"\n  op: \"XavierFill\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 1000\n          }\n          dim {\n            size: 4096\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"classifier/ConstantFill\"\n  op: \"ConstantFill\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 1000\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"conv1/Conv\"\n  op: \"Conv\"\n  input: \"conv1/data\"\n  input: \"conv1/conv1_w\"\n  input: \"conv1/conv1_b\"\n  attr {\n    key: \"exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 11\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"stride\"\n    value {\n      i: 4\n    }\n  }\n}\nnode {\n  name: \"conv1/Relu\"\n  op: \"Relu\"\n  input: \"conv1/conv1\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"conv1/MaxPool\"\n  op: \"MaxPool\"\n  input: \"conv1/conv1_1\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 2\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"stride\"\n    value {\n      i: 2\n    }\n  }\n}\nnode {\n  name: \"classifier/FC\"\n  op: \"FC\"\n  input: \"conv1/pool1\"\n  input: \"classifier/fc_w\"\n  input: \"classifier/fc_b\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"use_cudnn\"\n    value {\n      i: 1\n    }\n  }\n}\nnode {\n  name: \"classifier/Softmax\"\n  op: \"Softmax\"\n  input: \"classifier/fc\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"classifier/LabelCrossEntropy\"\n  op: \"LabelCrossEntropy\"\n  input: \"classifier/pred\"\n  input: \"classifier/label\"\n}\nnode {\n  name: \"classifier/AveragedLoss\"\n  op: \"AveragedLoss\"\n  input: \"classifier/xent\"\n}\nnode {\n  name: \"conv1/conv1_w\"\n  op: \"Blob\"\n  input: \"conv1/XavierFill:0\"\n}\nnode {\n  name: \"conv1/conv1_b\"\n  op: \"Blob\"\n  input: \"conv1/ConstantFill:0\"\n}\nnode {\n  name: \"classifier/fc_w\"\n  op: \"Blob\"\n  input: \"classifier/XavierFill:0\"\n}\nnode {\n  name: \"classifier/fc_b\"\n  op: \"Blob\"\n  input: \"classifier/ConstantFill:0\"\n}\nnode {\n  name: \"conv1/data\"\n  op: \"Placeholder\"\n}\nnode {\n  name: \"conv1/conv1_w\"\n  op: \"Blob\"\n  input: \"conv1/XavierFill:0\"\n}\nnode {\n  name: \"conv1/conv1_b\"\n  op: \"Blob\"\n  input: \"conv1/ConstantFill:0\"\n}\nnode {\n  name: \"conv1/conv1\"\n  op: \"Blob\"\n  input: \"conv1/Conv:0\"\n}\nnode {\n  name: \"conv1/conv1\"\n  op: \"Blob\"\n  input: \"conv1/Conv:0\"\n}\nnode {\n  name: \"conv1/conv1_1\"\n  op: \"Blob\"\n  input: \"conv1/Relu:0\"\n}\nnode {\n  name: \"conv1/conv1_1\"\n  op: \"Blob\"\n  input: \"conv1/Relu:0\"\n}\nnode {\n  name: \"conv1/pool1\"\n  op: \"Blob\"\n  input: \"conv1/MaxPool:0\"\n}\nnode {\n  name: \"conv1/pool1\"\n  op: \"Blob\"\n  input: \"conv1/MaxPool:0\"\n}\nnode {\n  name: \"classifier/fc_w\"\n  op: \"Blob\"\n  input: \"classifier/XavierFill:0\"\n}\nnode {\n  name: \"classifier/fc_b\"\n  op: \"Blob\"\n  input: \"classifier/ConstantFill:0\"\n}\nnode {\n  name: \"classifier/fc\"\n  op: \"Blob\"\n  input: \"classifier/FC:0\"\n}\nnode {\n  name: \"classifier/fc\"\n  op: \"Blob\"\n  input: \"classifier/FC:0\"\n}\nnode {\n  name: \"classifier/pred\"\n  op: \"Blob\"\n  input: \"classifier/Softmax:0\"\n}\nnode {\n  name: \"classifier/pred\"\n  op: \"Blob\"\n  input: \"classifier/Softmax:0\"\n}\nnode {\n  name: \"classifier/label\"\n  op: \"Placeholder\"\n}\nnode {\n  name: \"classifier/xent\"\n  op: \"Blob\"\n  input: \"classifier/LabelCrossEntropy:0\"\n}\nnode {\n  name: \"classifier/xent\"\n  op: \"Blob\"\n  input: \"classifier/LabelCrossEntropy:0\"\n}\nnode {\n  name: \"classifier/loss\"\n  op: \"Blob\"\n  input: \"classifier/AveragedLoss:0\"\n}\n"
  },
  {
    "path": "tests/expect/test_caffe2.test_simple_model.expect",
    "content": "node {\n  name: \"conv1/XavierFill\"\n  op: \"XavierFill\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 20\n          }\n          dim {\n            size: 1\n          }\n          dim {\n            size: 5\n          }\n          dim {\n            size: 5\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"conv1/ConstantFill\"\n  op: \"ConstantFill\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 20\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"conv1/XavierFill_1\"\n  op: \"XavierFill\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 100\n          }\n          dim {\n            size: 20\n          }\n          dim {\n            size: 5\n          }\n          dim {\n            size: 5\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"conv1/ConstantFill_1\"\n  op: \"ConstantFill\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 100\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"classifier/XavierFill\"\n  op: \"XavierFill\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 500\n          }\n          dim {\n            size: 1600\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"classifier/ConstantFill\"\n  op: \"ConstantFill\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 500\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"classifier/XavierFill_1\"\n  op: \"XavierFill\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 10\n          }\n          dim {\n            size: 500\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"classifier/ConstantFill_1\"\n  op: \"ConstantFill\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"_output_shapes\"\n    value {\n      list {\n        shape {\n          dim {\n            size: 10\n          }\n        }\n      }\n    }\n  }\n}\nnode {\n  name: \"conv1/Conv\"\n  op: \"Conv\"\n  input: \"conv1/data\"\n  input: \"conv1/conv1_w\"\n  input: \"conv1/conv1_b\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 5\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"conv1/MaxPool\"\n  op: \"MaxPool\"\n  input: \"conv1/conv1\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 2\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"stride\"\n    value {\n      i: 2\n    }\n  }\n}\nnode {\n  name: \"conv1/Conv_1\"\n  op: \"Conv\"\n  input: \"conv1/pool1\"\n  input: \"conv1/conv2_w\"\n  input: \"conv1/conv2_b\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 5\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"conv1/MaxPool_1\"\n  op: \"MaxPool\"\n  input: \"conv1/conv2\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 2\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"stride\"\n    value {\n      i: 2\n    }\n  }\n}\nnode {\n  name: \"classifier/FC\"\n  op: \"FC\"\n  input: \"conv1/pool2\"\n  input: \"classifier/fc3_w\"\n  input: \"classifier/fc3_b\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"use_cudnn\"\n    value {\n      i: 1\n    }\n  }\n}\nnode {\n  name: \"classifier/Relu\"\n  op: \"Relu\"\n  input: \"classifier/fc3\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"classifier/FC_1\"\n  op: \"FC\"\n  input: \"classifier/fc3_1\"\n  input: \"classifier/pred_w\"\n  input: \"classifier/pred_b\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"use_cudnn\"\n    value {\n      i: 1\n    }\n  }\n}\nnode {\n  name: \"classifier/Softmax\"\n  op: \"Softmax\"\n  input: \"classifier/pred\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"classifier/LabelCrossEntropy\"\n  op: \"LabelCrossEntropy\"\n  input: \"classifier/softmax\"\n  input: \"classifier/label\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/AveragedLoss\"\n  op: \"AveragedLoss\"\n  input: \"classifier/xent\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/classifier/ConstantFill\"\n  op: \"ConstantFill\"\n  input: \"classifier/loss\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"value\"\n    value {\n      f: 1.0\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/classifier/AveragedLossGradient\"\n  op: \"AveragedLossGradient\"\n  input: \"classifier/xent\"\n  input: \"GRADIENTS/classifier/loss_autogen_grad\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/classifier/LabelCrossEntropyGradient\"\n  op: \"LabelCrossEntropyGradient\"\n  input: \"classifier/softmax\"\n  input: \"classifier/label\"\n  input: \"GRADIENTS/classifier/xent_grad\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/classifier/SoftmaxGradient\"\n  op: \"SoftmaxGradient\"\n  input: \"classifier/softmax\"\n  input: \"GRADIENTS/classifier/softmax_grad\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/classifier/FCGradient\"\n  op: \"FCGradient\"\n  input: \"classifier/fc3_1\"\n  input: \"classifier/pred_w\"\n  input: \"GRADIENTS/classifier/pred_grad\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"use_cudnn\"\n    value {\n      i: 1\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/classifier/ReluGradient\"\n  op: \"ReluGradient\"\n  input: \"classifier/fc3_1\"\n  input: \"GRADIENTS/classifier/fc3_grad\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/c/FCGradient\"\n  op: \"FCGradient\"\n  input: \"conv1/pool2\"\n  input: \"classifier/fc3_w\"\n  input: \"GRADIENTS/classifier/fc3_grad_1\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"use_cudnn\"\n    value {\n      i: 1\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/conv1/MaxPoolGradient\"\n  op: \"MaxPoolGradient\"\n  input: \"conv1/conv2\"\n  input: \"conv1/pool2\"\n  input: \"GRADIENTS/conv1/pool2_grad\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 2\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"stride\"\n    value {\n      i: 2\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/conv1/ConvGradient\"\n  op: \"ConvGradient\"\n  input: \"conv1/pool1\"\n  input: \"conv1/conv2_w\"\n  input: \"GRADIENTS/conv1/conv2_grad\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 5\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n}\nnode {\n  name: \"GRADIENTS/conv1/MaxPoolGradient_1\"\n  op: \"MaxPoolGradient\"\n  input: \"conv1/conv1\"\n  input: \"conv1/pool1\"\n  input: \"GRADIENTS/conv1/pool1_grad\"\n  device: \"/cpu:*\"\n  attr {\n    key: \"cudnn_exhaustive_search\"\n    value {\n      i: 0\n    }\n  }\n  attr {\n    key: \"kernel\"\n    value {\n      i: 2\n    }\n  }\n  attr {\n    key: \"order\"\n    value {\n      s: \"NCHW\"\n    }\n  }\n  attr {\n    key: \"stride\"\n    value {\n      i: 2\n    }\n  }\n}\nnode {\n  name: \"conv1/conv1_w\"\n  op: \"Blob\"\n  input: \"conv1/XavierFill:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/conv1_b\"\n  op: \"Blob\"\n  input: \"conv1/ConstantFill:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/conv2_w\"\n  op: \"Blob\"\n  input: \"conv1/XavierFill_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/conv2_b\"\n  op: \"Blob\"\n  input: \"conv1/ConstantFill_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/fc3_w\"\n  op: \"Blob\"\n  input: \"classifier/XavierFill:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/fc3_b\"\n  op: \"Blob\"\n  input: \"classifier/ConstantFill:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/pred_w\"\n  op: \"Blob\"\n  input: \"classifier/XavierFill_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/pred_b\"\n  op: \"Blob\"\n  input: \"classifier/ConstantFill_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/data\"\n  op: \"Placeholder\"\n}\nnode {\n  name: \"conv1/conv1_w\"\n  op: \"Blob\"\n  input: \"conv1/XavierFill:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/conv1_b\"\n  op: \"Blob\"\n  input: \"conv1/ConstantFill:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/conv1\"\n  op: \"Blob\"\n  input: \"conv1/Conv:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/conv1\"\n  op: \"Blob\"\n  input: \"conv1/Conv:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/pool1\"\n  op: \"Blob\"\n  input: \"conv1/MaxPool:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/pool1\"\n  op: \"Blob\"\n  input: \"conv1/MaxPool:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/conv2_w\"\n  op: \"Blob\"\n  input: \"conv1/XavierFill_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/conv2_b\"\n  op: \"Blob\"\n  input: \"conv1/ConstantFill_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/conv2\"\n  op: \"Blob\"\n  input: \"conv1/Conv_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/conv2\"\n  op: \"Blob\"\n  input: \"conv1/Conv_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/pool2\"\n  op: \"Blob\"\n  input: \"conv1/MaxPool_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/pool2\"\n  op: \"Blob\"\n  input: \"conv1/MaxPool_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/fc3_w\"\n  op: \"Blob\"\n  input: \"classifier/XavierFill:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/fc3_b\"\n  op: \"Blob\"\n  input: \"classifier/ConstantFill:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/fc3\"\n  op: \"Blob\"\n  input: \"classifier/FC:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/fc3\"\n  op: \"Blob\"\n  input: \"classifier/FC:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/fc3_1\"\n  op: \"Blob\"\n  input: \"classifier/Relu:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/fc3_1\"\n  op: \"Blob\"\n  input: \"classifier/Relu:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/pred_w\"\n  op: \"Blob\"\n  input: \"classifier/XavierFill_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/pred_b\"\n  op: \"Blob\"\n  input: \"classifier/ConstantFill_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/pred\"\n  op: \"Blob\"\n  input: \"classifier/FC_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/pred\"\n  op: \"Blob\"\n  input: \"classifier/FC_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/softmax\"\n  op: \"Blob\"\n  input: \"classifier/Softmax:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/softmax\"\n  op: \"Blob\"\n  input: \"classifier/Softmax:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/label\"\n  op: \"Placeholder\"\n}\nnode {\n  name: \"classifier/xent\"\n  op: \"Blob\"\n  input: \"classifier/LabelCrossEntropy:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/xent\"\n  op: \"Blob\"\n  input: \"classifier/LabelCrossEntropy:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/loss\"\n  op: \"Blob\"\n  input: \"classifier/AveragedLoss:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/loss\"\n  op: \"Blob\"\n  input: \"classifier/AveragedLoss:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/classifier/loss_autogen_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/ConstantFill:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/xent\"\n  op: \"Blob\"\n  input: \"classifier/LabelCrossEntropy:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/classifier/loss_autogen_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/ConstantFill:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/classifier/xent_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/AveragedLossGradient:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/softmax\"\n  op: \"Blob\"\n  input: \"classifier/Softmax:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/label\"\n  op: \"Placeholder\"\n}\nnode {\n  name: \"GRADIENTS/classifier/xent_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/AveragedLossGradient:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/classifier/softmax_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/LabelCrossEntropyGradient:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/softmax\"\n  op: \"Blob\"\n  input: \"classifier/Softmax:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/classifier/softmax_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/LabelCrossEntropyGradient:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/classifier/pred_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/SoftmaxGradient:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/fc3_1\"\n  op: \"Blob\"\n  input: \"classifier/Relu:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/pred_w\"\n  op: \"Blob\"\n  input: \"classifier/XavierFill_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/classifier/pred_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/SoftmaxGradient:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/classifier/pred_w_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/FCGradient:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/classifier/pred_b_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/FCGradient:1\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/classifier/fc3_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/FCGradient:2\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/fc3_1\"\n  op: \"Blob\"\n  input: \"classifier/Relu:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/classifier/fc3_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/FCGradient:2\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/classifier/fc3_grad_1\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/ReluGradient:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/pool2\"\n  op: \"Blob\"\n  input: \"conv1/MaxPool_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"classifier/fc3_w\"\n  op: \"Blob\"\n  input: \"classifier/XavierFill:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/classifier/fc3_grad_1\"\n  op: \"Blob\"\n  input: \"GRADIENTS/classifier/ReluGradient:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/classifier/fc3_w_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/c/FCGradient:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/classifier/fc3_b_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/c/FCGradient:1\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/conv1/pool2_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/c/FCGradient:2\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/conv2\"\n  op: \"Blob\"\n  input: \"conv1/Conv_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/pool2\"\n  op: \"Blob\"\n  input: \"conv1/MaxPool_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/conv1/pool2_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/c/FCGradient:2\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/conv1/conv2_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/conv1/MaxPoolGradient:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/pool1\"\n  op: \"Blob\"\n  input: \"conv1/MaxPool:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/conv2_w\"\n  op: \"Blob\"\n  input: \"conv1/XavierFill_1:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/conv1/conv2_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/conv1/MaxPoolGradient:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/conv1/conv2_w_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/conv1/ConvGradient:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/conv1/conv2_b_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/conv1/ConvGradient:1\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/conv1/pool1_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/conv1/ConvGradient:2\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/conv1\"\n  op: \"Blob\"\n  input: \"conv1/Conv:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"conv1/pool1\"\n  op: \"Blob\"\n  input: \"conv1/MaxPool:0\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/conv1/pool1_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/conv1/ConvGradient:2\"\n  device: \"/cpu:*\"\n}\nnode {\n  name: \"GRADIENTS/conv1/conv1_grad\"\n  op: \"Blob\"\n  input: \"GRADIENTS/conv1/MaxPoolGradient_1:0\"\n  device: \"/cpu:*\"\n}\n"
  },
  {
    "path": "tests/expect/test_pr_curve.test_pr_purve.expect",
    "content": "value {\n  tag: \"tag\"\n  tensor {\n    dtype: DT_FLOAT\n    tensor_shape {\n      dim {\n        size: 6\n      }\n      dim {\n        size: 1\n      }\n    }\n    float_val: 57.0\n    float_val: 43.0\n    float_val: 0.0\n    float_val: 0.0\n    float_val: 0.57\n    float_val: 1.0\n  }\n  metadata {\n    plugin_data {\n      plugin_name: \"pr_curves\"\n      content: \"\\020\\001\"\n    }\n  }\n}\n"
  },
  {
    "path": "tests/expect/test_pr_curve.test_pr_purve_raw.expect",
    "content": "value {\n  tag: \"prcurve with raw data\"\n  tensor {\n    dtype: DT_FLOAT\n    tensor_shape {\n      dim {\n        size: 6\n      }\n      dim {\n        size: 5\n      }\n    }\n    float_val: 75.0\n    float_val: 64.0\n    float_val: 21.0\n    float_val: 5.0\n    float_val: 0.0\n    float_val: 150.0\n    float_val: 105.0\n    float_val: 18.0\n    float_val: 0.0\n    float_val: 0.0\n    float_val: 0.0\n    float_val: 45.0\n    float_val: 132.0\n    float_val: 150.0\n    float_val: 150.0\n    float_val: 0.0\n    float_val: 11.0\n    float_val: 54.0\n    float_val: 70.0\n    float_val: 75.0\n    float_val: 0.3333333\n    float_val: 0.3786982\n    float_val: 0.5384616\n    float_val: 1.0\n    float_val: 0.0\n    float_val: 1.0\n    float_val: 0.8533334\n    float_val: 0.28\n    float_val: 0.0666667\n    float_val: 0.0\n  }\n  metadata {\n    plugin_data {\n      plugin_name: \"pr_curves\"\n      content: \"\\020\\001\"\n    }\n  }\n}\n"
  },
  {
    "path": "tests/expect/test_summary.test_audio.expect",
    "content": "value {\n  tag: \"dummy\"\n  audio {\n    sample_rate: 44100.0\n    num_channels: 1\n    length_frames: 42\n    encoded_audio_string: \"RIFFx\\000\\000\\000WAVEfmt \\020\\000\\000\\000\\001\\000\\001\\000D\\254\\000\\000\\210X\\001\\000\\002\\000\\020\\000dataT\\000\\000\\000\\000\\000\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\\377\\177\"\n    content_type: \"audio/wav\"\n  }\n}\n"
  },
  {
    "path": "tests/expect/test_summary.test_custom_scalars.expect",
    "content": "value {\n  tag: \"custom_scalars__config__\"\n  tensor {\n    dtype: DT_STRING\n    tensor_shape {\n    }\n    string_val: \"\\022(\\n\\006Taiwan\\022\\036\\n\\004twse\\022\\026\\n\\ttwse/0050\\n\\ttwse/2330\\022]\\n\\003USA\\022$\\n\\003dow\\032\\035\\n\\033\\n\\007dow/aaa\\022\\007dow/bbb\\032\\007dow/ccc\\0220\\n\\006nasdaq\\032&\\n$\\n\\nnasdaq/aaa\\022\\nnasdaq/bbb\\032\\nnasdaq/ccc\"\n  }\n  metadata {\n    plugin_data {\n      plugin_name: \"custom_scalars\"\n    }\n  }\n}\n"
  },
  {
    "path": "tests/expect/test_summary.test_float32_image.expect",
    "content": "value {\n  tag: \"dummy\"\n  image {\n    height: 32\n    width: 32\n    colorspace: 3\n    encoded_image_string: \"\\211PNG\\r\\n\\032\\n\\000\\000\\000\\rIHDR\\000\\000\\000 \\000\\000\\000 \\010\\002\\000\\000\\000\\374\\030\\355\\243\\000\\000\\000DIDATx\\234cd``\\370OK\\300\\370\\340\\301\\003\\232Z\\3002j\\301\\360\\267\\200QAA\\201\\266\\026\\214\\346\\203Q\\013\\006\\277\\005\\243\\371\\200 \\030\\372\\221<j\\001A0\\232\\017\\010\\202\\241\\037\\311\\243\\026\\020\\0044\\317\\007\\000]7\\325\\342\\027k\\025c\\000\\000\\000\\000IEND\\256B`\\202\"\n  }\n}\n"
  },
  {
    "path": "tests/expect/test_summary.test_histogram_auto.expect",
    "content": "value {\n  tag: \"dummy\"\n  histo {\n    max: 1023.0\n    num: 1024.0\n    sum: 523776.0\n    sum_squares: 357389824.0\n    bucket_limit: 0.0\n    bucket_limit: 186.0\n    bucket_limit: 372.0\n    bucket_limit: 558.0\n    bucket_limit: 744.0\n    bucket_limit: 930.0\n    bucket_limit: 1023.0\n    bucket: 0.0\n    bucket: 186.0\n    bucket: 186.0\n    bucket: 186.0\n    bucket: 186.0\n    bucket: 186.0\n    bucket: 94.0\n  }\n}\n"
  },
  {
    "path": "tests/expect/test_summary.test_histogram_doane.expect",
    "content": "value {\n  tag: \"dummy\"\n  histo {\n    max: 1023.0\n    num: 1024.0\n    sum: 523776.0\n    sum_squares: 357389824.0\n    bucket_limit: 0.0\n    bucket_limit: 186.0\n    bucket_limit: 372.0\n    bucket_limit: 558.0\n    bucket_limit: 744.0\n    bucket_limit: 930.0\n    bucket_limit: 1023.0\n    bucket: 0.0\n    bucket: 186.0\n    bucket: 186.0\n    bucket: 186.0\n    bucket: 186.0\n    bucket: 186.0\n    bucket: 94.0\n  }\n}\n"
  },
  {
    "path": "tests/expect/test_summary.test_histogram_fd.expect",
    "content": "value {\n  tag: \"dummy\"\n  histo {\n    max: 1023.0\n    num: 1024.0\n    sum: 523776.0\n    sum_squares: 357389824.0\n    bucket_limit: 0.0\n    bucket_limit: 186.0\n    bucket_limit: 372.0\n    bucket_limit: 558.0\n    bucket_limit: 744.0\n    bucket_limit: 930.0\n    bucket_limit: 1023.0\n    bucket: 0.0\n    bucket: 186.0\n    bucket: 186.0\n    bucket: 186.0\n    bucket: 186.0\n    bucket: 186.0\n    bucket: 94.0\n  }\n}\n"
  },
  {
    "path": "tests/expect/test_summary.test_hparams.expect",
    "content": "(value {\n  tag: \"_hparams_/experiment\"\n  metadata {\n    plugin_data {\n      plugin_name: \"hparams\"\n      content: \"\\022\\026\\\"\\006\\n\\002lr \\003*\\014\\n\\n\\022\\010accuracy\"\n    }\n  }\n}\n, value {\n  tag: \"_hparams_/session_start_info\"\n  metadata {\n    plugin_data {\n      plugin_name: \"hparams\"\n      content: \"\\032\\021\\n\\017\\n\\002lr\\022\\t\\021\\232\\231\\231\\231\\231\\231\\271?\"\n    }\n  }\n}\n, value {\n  tag: \"_hparams_/session_end_info\"\n  metadata {\n    plugin_data {\n      plugin_name: \"hparams\"\n      content: \"\\\"\\002\\010\\001\"\n    }\n  }\n}\n)"
  },
  {
    "path": "tests/expect/test_summary.test_hparams_bool.expect",
    "content": "(value {\n  tag: \"_hparams_/experiment\"\n  metadata {\n    plugin_data {\n      plugin_name: \"hparams\"\n      content: \"\\022\\034\\\"\\014\\n\\010bool_var \\002*\\014\\n\\n\\022\\010accuracy\"\n    }\n  }\n}\n, value {\n  tag: \"_hparams_/session_start_info\"\n  metadata {\n    plugin_data {\n      plugin_name: \"hparams\"\n      content: \"\\032\\020\\n\\016\\n\\010bool_var\\022\\002 \\001\"\n    }\n  }\n}\n, value {\n  tag: \"_hparams_/session_end_info\"\n  metadata {\n    plugin_data {\n      plugin_name: \"hparams\"\n      content: \"\\\"\\002\\010\\001\"\n    }\n  }\n}\n)"
  },
  {
    "path": "tests/expect/test_summary.test_hparams_string.expect",
    "content": "(value {\n  tag: \"_hparams_/experiment\"\n  metadata {\n    plugin_data {\n      plugin_name: \"hparams\"\n      content: \"\\022\\036\\\"\\016\\n\\nstring_var \\001*\\014\\n\\n\\022\\010accuracy\"\n    }\n  }\n}\n, value {\n  tag: \"_hparams_/session_start_info\"\n  metadata {\n    plugin_data {\n      plugin_name: \"hparams\"\n      content: \"\\032\\024\\n\\022\\n\\nstring_var\\022\\004\\032\\002hi\"\n    }\n  }\n}\n, value {\n  tag: \"_hparams_/session_end_info\"\n  metadata {\n    plugin_data {\n      plugin_name: \"hparams\"\n      content: \"\\\"\\002\\010\\001\"\n    }\n  }\n}\n)"
  },
  {
    "path": "tests/expect/test_summary.test_image_with_3_channel_batched.expect",
    "content": "value {\n  tag: \"dummy\"\n  image {\n    height: 8\n    width: 16\n    colorspace: 3\n    encoded_image_string: \"\\211PNG\\r\\n\\032\\n\\000\\000\\000\\rIHDR\\000\\000\\000\\020\\000\\000\\000\\010\\010\\002\\000\\000\\000\\177\\024\\350\\300\\000\\000\\000+IDATx\\234cd8\\320\\360\\037\\033pww\\307*\\316\\362\\343\\307\\217\\037\\330$~\\374\\370\\361\\037\\233\\004\\013\\016\\365\\377q\\211\\217H\\r\\000d\\305y\\224,\\220Z\\033\\000\\000\\000\\000IEND\\256B`\\202\"\n  }\n}\n"
  },
  {
    "path": "tests/expect/test_summary.test_image_with_boxes.expect",
    "content": "value {\n  tag: \"dummy\"\n  image {\n    height: 32\n    width: 32\n    colorspace: 3\n    encoded_image_string: \"\\211PNG\\r\\n\\032\\n\\000\\000\\000\\rIHDR\\000\\000\\000 \\000\\000\\000 \\010\\002\\000\\000\\000\\374\\030\\355\\243\\000\\000\\000sIDATx\\234\\355\\323=\\n\\300 \\014\\005\\340\\027p\\250\\267p\\324\\373\\332\\373\\345\\020vn\\007\\367>0\\204b\\311\\233\\305/\\344G\\000\\334\\236\\021Uu\\005R\\000\\377\\007\\244\\224\\342\\013||\\007\\2655\\330BfP\\215\\337S`>:{_l\\020\\335\\242\\tX6-\\000\\032r\\007G\\316\\000\\2561\\226\\201\\244\\252/\\005V\\357\\026\\271\\003\\033\\0149\\000\\232\\270\\003+\\260\\301\\220\\003\\240y\\000T\\221\\324V\\250_v\\320\\000\\000\\000\\000IEND\\256B`\\202\"\n  }\n}\n"
  },
  {
    "path": "tests/expect/test_summary.test_image_with_four_channel.expect",
    "content": "value {\n  tag: \"dummy\"\n  image {\n    height: 8\n    width: 8\n    colorspace: 4\n    encoded_image_string: \"\\211PNG\\r\\n\\032\\n\\000\\000\\000\\rIHDR\\000\\000\\000\\010\\000\\000\\000\\010\\010\\006\\000\\000\\000\\304\\017\\276\\213\\000\\000\\000\\036IDATx\\234cd8\\320\\340\\360\\037\\017`\\371\\361\\343\\307\\217\\037\\204\\024\\0204a\\260+\\000\\000\\240\\302\\373\\327\\246\\231O\\'\\000\\000\\000\\000IEND\\256B`\\202\"\n  }\n}\n"
  },
  {
    "path": "tests/expect/test_summary.test_image_with_four_channel_batched.expect",
    "content": "value {\n  tag: \"dummy\"\n  image {\n    height: 8\n    width: 16\n    colorspace: 4\n    encoded_image_string: \"\\211PNG\\r\\n\\032\\n\\000\\000\\000\\rIHDR\\000\\000\\000\\020\\000\\000\\000\\010\\010\\006\\000\\000\\000\\360v\\177\\227\\000\\000\\000-IDATx\\234cd8\\320\\340\\360\\037\\017`ggg\\307\\'\\317\\362\\343\\307\\217\\037?\\360(\\370\\001\\305x\\r\\300g\\003!0j\\000\\025\\014\\000\\000\\356b\\366\\370\\366\\336\\316\\301\\000\\000\\000\\000IEND\\256B`\\202\"\n  }\n}\n"
  },
  {
    "path": "tests/expect/test_summary.test_image_with_one_channel.expect",
    "content": "value {\n  tag: \"dummy\"\n  image {\n    height: 8\n    width: 8\n    colorspace: 3\n    encoded_image_string: \"\\211PNG\\r\\n\\032\\n\\000\\000\\000\\rIHDR\\000\\000\\000\\010\\000\\000\\000\\010\\010\\002\\000\\000\\000Km)\\334\\000\\000\\000\\031IDATx\\234cd``\\370\\217\\r0\\376\\370\\361\\003\\253\\004\\313\\240\\224\\000\\000;\\267\\273\\313%\\020=\\255\\000\\000\\000\\000IEND\\256B`\\202\"\n  }\n}\n"
  },
  {
    "path": "tests/expect/test_summary.test_image_with_one_channel_batched.expect",
    "content": "value {\n  tag: \"dummy\"\n  image {\n    height: 8\n    width: 16\n    colorspace: 3\n    encoded_image_string: \"\\211PNG\\r\\n\\032\\n\\000\\000\\000\\rIHDR\\000\\000\\000\\020\\000\\000\\000\\010\\010\\002\\000\\000\\000\\177\\024\\350\\300\\000\\000\\000(IDATx\\234cd``\\370\\217\\r\\034?~\\034\\2538\\313\\217\\037?~\\374\\370\\201)\\201U\\020\\252\\001\\253\\304\\250\\006$\\000\\000\\230\\346y\\315\\204l;t\\000\\000\\000\\000IEND\\256B`\\202\"\n  }\n}\n"
  },
  {
    "path": "tests/expect/test_summary.test_image_without_channel.expect",
    "content": "value {\n  tag: \"dummy\"\n  image {\n    height: 8\n    width: 8\n    colorspace: 3\n    encoded_image_string: \"\\211PNG\\r\\n\\032\\n\\000\\000\\000\\rIHDR\\000\\000\\000\\010\\000\\000\\000\\010\\010\\002\\000\\000\\000Km)\\334\\000\\000\\000\\031IDATx\\234cd``\\370\\217\\r0\\376\\370\\361\\003\\253\\004\\313\\240\\224\\000\\000;\\267\\273\\313%\\020=\\255\\000\\000\\000\\000IEND\\256B`\\202\"\n  }\n}\n"
  },
  {
    "path": "tests/expect/test_summary.test_mesh.expect",
    "content": "value {\n  tag: \"my_mesh_1\"\n  tensor {\n    dtype: DT_FLOAT\n    tensor_shape {\n      dim {\n        size: 1\n      }\n      dim {\n        size: 4\n      }\n      dim {\n        size: 3\n      }\n    }\n    float_val: 1.0\n    float_val: 1.0\n    float_val: 1.0\n    float_val: -1.0\n    float_val: -1.0\n    float_val: 1.0\n    float_val: 1.0\n    float_val: -1.0\n    float_val: -1.0\n    float_val: -1.0\n    float_val: 1.0\n    float_val: -1.0\n  }\n  metadata {\n    plugin_data {\n      plugin_name: \"mesh\"\n      content: \"\\022\\007my_mesh\\030\\001*\\004null2\\003\\001\\004\\003\"\n    }\n  }\n}\nvalue {\n  tag: \"my_mesh_2\"\n  tensor {\n    dtype: DT_FLOAT\n    tensor_shape {\n      dim {\n        size: 1\n      }\n      dim {\n        size: 4\n      }\n      dim {\n        size: 3\n      }\n    }\n    float_val: 0.0\n    float_val: 2.0\n    float_val: 3.0\n    float_val: 0.0\n    float_val: 3.0\n    float_val: 1.0\n    float_val: 0.0\n    float_val: 1.0\n    float_val: 2.0\n    float_val: 1.0\n    float_val: 3.0\n    float_val: 2.0\n  }\n  metadata {\n    plugin_data {\n      plugin_name: \"mesh\"\n      content: \"\\022\\007my_mesh\\030\\002*\\004null2\\003\\001\\004\\003\"\n    }\n  }\n}\nvalue {\n  tag: \"my_mesh_3\"\n  tensor {\n    dtype: DT_FLOAT\n    tensor_shape {\n      dim {\n        size: 1\n      }\n      dim {\n        size: 4\n      }\n      dim {\n        size: 3\n      }\n    }\n    float_val: 255.0\n    float_val: 0.0\n    float_val: 0.0\n    float_val: 0.0\n    float_val: 255.0\n    float_val: 0.0\n    float_val: 0.0\n    float_val: 0.0\n    float_val: 255.0\n    float_val: 255.0\n    float_val: 0.0\n    float_val: 255.0\n  }\n  metadata {\n    plugin_data {\n      plugin_name: \"mesh\"\n      content: \"\\022\\007my_mesh\\030\\003*\\004null2\\003\\001\\004\\003\"\n    }\n  }\n}\n"
  },
  {
    "path": "tests/expect/test_summary.test_text.expect",
    "content": "value {\n  tag: \"dummy/text_summary\"\n  tensor {\n    dtype: DT_STRING\n    tensor_shape {\n      dim {\n        size: 1\n      }\n    }\n    string_val: \"text 123\"\n  }\n  metadata {\n    plugin_data {\n      plugin_name: \"text\"\n    }\n  }\n}\n"
  },
  {
    "path": "tests/expect/test_summary.test_uint8_image.expect",
    "content": "value {\n  tag: \"dummy\"\n  image {\n    height: 32\n    width: 32\n    colorspace: 3\n    encoded_image_string: \"\\211PNG\\r\\n\\032\\n\\000\\000\\000\\rIHDR\\000\\000\\000 \\000\\000\\000 \\010\\002\\000\\000\\000\\374\\030\\355\\243\\000\\000\\000CIDATx\\234cd```\\244)PPP\\240\\251\\371,\\243\\026\\014\\177\\013\\030\\037<x@[\\013F\\363\\301\\250\\005\\203\\337\\202\\321|@\\020\\014\\375H\\036\\265\\2000\\030\\315\\007\\204\\300\\320\\217\\344Q\\013\\010\\003Z\\347\\003\\000\\211\\014\\037}z\\035\\001}\\000\\000\\000\\000IEND\\256B`\\202\"\n  }\n}\n"
  },
  {
    "path": "tests/expect/test_summary.test_video.expect",
    "content": "value {\n  tag: \"dummy\"\n  image {\n    height: 16\n    width: 16\n    colorspace: 1\n    encoded_image_string: \"GIF89a\\020\\000\\020\\000\\207\\000\\000\\377\\377\\377\\376\\376\\376\\375\\375\\375\\374\\374\\374\\373\\373\\373\\372\\372\\372\\371\\371\\371\\370\\370\\370\\367\\367\\367\\366\\366\\366\\365\\365\\365\\364\\364\\364\\363\\363\\363\\362\\362\\362\\361\\361\\361\\360\\360\\360\\357\\357\\357\\356\\356\\356\\355\\355\\355\\354\\354\\354\\353\\353\\353\\352\\352\\352\\351\\351\\351\\350\\350\\350\\347\\347\\347\\346\\346\\346\\345\\345\\345\\344\\344\\344\\343\\343\\343\\342\\342\\342\\341\\341\\341\\340\\340\\340\\337\\337\\337\\336\\336\\336\\335\\335\\335\\334\\334\\334\\333\\333\\333\\332\\332\\332\\331\\331\\331\\330\\330\\330\\327\\327\\327\\326\\326\\326\\325\\325\\325\\324\\324\\324\\323\\323\\323\\322\\322\\322\\321\\321\\321\\320\\320\\320\\317\\317\\317\\316\\316\\316\\315\\315\\315\\314\\314\\314\\313\\313\\313\\312\\312\\312\\311\\311\\311\\310\\310\\310\\307\\307\\307\\306\\306\\306\\305\\305\\305\\304\\304\\304\\303\\303\\303\\302\\302\\302\\301\\301\\301\\300\\300\\300\\277\\277\\277\\276\\276\\276\\275\\275\\275\\274\\274\\274\\273\\273\\273\\272\\272\\272\\271\\271\\271\\270\\270\\270\\267\\267\\267\\266\\266\\266\\265\\265\\265\\264\\264\\264\\263\\263\\263\\262\\262\\262\\261\\261\\261\\260\\260\\260\\257\\257\\257\\256\\256\\256\\255\\255\\255\\254\\254\\254\\253\\253\\253\\252\\252\\252\\251\\251\\251\\250\\250\\250\\247\\247\\247\\246\\246\\246\\245\\245\\245\\244\\244\\244\\243\\243\\243\\242\\242\\242\\241\\241\\241\\240\\240\\240\\237\\237\\237\\236\\236\\236\\235\\235\\235\\234\\234\\234\\233\\233\\233\\232\\232\\232\\231\\231\\231\\230\\230\\230\\227\\227\\227\\226\\226\\226\\225\\225\\225\\224\\224\\224\\223\\223\\223\\222\\222\\222\\221\\221\\221\\220\\220\\220\\217\\217\\217\\216\\216\\216\\215\\215\\215\\214\\214\\214\\213\\213\\213\\212\\212\\212\\211\\211\\211\\210\\210\\210\\207\\207\\207\\206\\206\\206\\205\\205\\205\\204\\204\\204\\203\\203\\203\\202\\202\\202\\201\\201\\201\\200\\200\\200\\177\\177\\177~~~}}}|||{{{zzzyyyxxxwwwvvvuuutttsssrrrqqqpppooonnnmmmlllkkkjjjiiihhhgggfffeeedddcccbbbaaa```___^^^]]]\\\\\\\\\\\\[[[ZZZYYYXXXWWWVVVUUUTTTSSSRRRQQQPPPOOONNNMMMLLLKKKJJJIIIHHHGGGFFFEEEDDDCCCBBBAAA@@@???>>>===<<<;;;:::999888777666555444333222111000///...---,,,+++***)))(((\\'\\'\\'&&&%%%$$$###\\\"\\\"\\\"!!!   \\037\\037\\037\\036\\036\\036\\035\\035\\035\\034\\034\\034\\033\\033\\033\\032\\032\\032\\031\\031\\031\\030\\030\\030\\027\\027\\027\\026\\026\\026\\025\\025\\025\\024\\024\\024\\023\\023\\023\\022\\022\\022\\021\\021\\021\\020\\020\\020\\017\\017\\017\\016\\016\\016\\r\\r\\r\\014\\014\\014\\013\\013\\013\\n\\n\\n\\t\\t\\t\\010\\010\\010\\007\\007\\007\\006\\006\\006\\005\\005\\005\\004\\004\\004\\003\\003\\003\\002\\002\\002\\001\\001\\001\\000\\000\\000!\\377\\013NETSCAPE2.0\\003\\001\\377\\377\\000!\\371\\004\\010\\031\\000\\000\\000,\\000\\000\\000\\000\\020\\000\\020\\000\\000\\010\\377\\000\\377\\001\\010 `\\000\\201\\002\\006~\\001\\013&l\\030\\261b\\306\\016 H\\240`\\001\\203\\006\\016\\216!K\\246l\\031\\263f\\316\\036@\\210 a\\002\\205\\n\\026\\236A\\213&m\\032\\265j\\326.`\\310\\240a\\003\\207\\016\\036\\256a\\313\\246m\\033\\267n\\336>\\200\\010!b\\004\\211\\022&\\276\\201\\013\\'n\\034\\271r\\346N\\240H\\241b\\005\\213\\026.\\316\\241K\\247n\\035\\273v\\356^\\300\\210!c\\006\\215\\0326\\336\\301\\213\\'o\\036\\275z\\366n\\340\\310\\241c\\007\\217\\036>\\356\\341\\313\\247o\\037\\277~\\376\\376\\000\\n$h\\020\\241B\\206~\\000\\t\\\"d\\010\\221\\\"F\\016!J\\244h\\021\\243F\\216\\216 I\\242d\\t\\223&N\\036A\\212$i\\022\\245J\\226\\236@\\211\\\"e\\n\\225*V.a\\312\\244i\\023\\247N\\236\\256`\\311\\242e\\013\\227.^>\\201\\n%j\\024\\251R\\246\\276\\200\\t#f\\014\\2312fN\\241J\\245j\\025\\253V\\256\\316\\240I\\243f\\r\\2336n^\\301%\\212%k\\026\\255Z\\266\\336\\300\\211#g\\016\\235:vn\\341\\312\\245k\\027\\257^\\276\\356\\340\\311\\243g\\017\\037\\200}\\374\\004\\004\\000!\\371\\004\\010\\031\\000\\000\\000,\\000\\000\\000\\000\\020\\000\\020\\000\\000\\010\\377\\000\\177\\000\\t\\\"d\\010\\221\\\"F\\376\\001\\010 `\\000\\201\\002\\006\\216 I\\242d\\t\\223&N\\016 H\\240`\\001\\203\\006\\016\\236@\\211\\\"e\\n\\225*V\\036@\\210 a\\002\\205\\n\\026\\256`\\311\\242e\\013\\227.^.`\\310\\240a\\003\\207\\016\\036\\276\\200\\t#f\\014\\2312f>\\200\\010!b\\004\\211\\022&\\316\\240I\\243f\\r\\2336nN\\240H\\241b\\005\\213\\026.\\336\\300\\211#g\\016\\235:v^\\300\\210!c\\006\\215\\0326\\356\\340\\311\\243g\\017\\237>~n\\340\\310\\241c\\007\\217\\036>~\\001\\013&l\\030\\261b\\306\\376\\000\\n$h\\020\\241B\\206\\216!K\\246l\\031\\263f\\316\\016!J\\244h\\021\\243F\\216\\236A\\213&m\\032\\265j\\326\\036A\\212$i\\022\\245J\\226\\256a\\313\\246m\\033\\267n\\336.a\\312\\244i\\023\\247N\\236\\276\\201\\013\\'n\\034\\271r\\346>\\201\\n%j\\024\\251R\\246\\316\\241K\\247n\\035\\273v\\356N\\241J\\245j\\025\\253V\\256\\336\\301%\\213\\'o\\036\\275z\\366^\\301\\212%k\\026\\255Z\\266\\356\\341\\313\\247o\\037\\277~\\376n\\341\\312\\245k\\027/\\200\\275|\\005\\004\\000!\\371\\004\\010\\031\\000\\000\\000,\\000\\000\\000\\000\\020\\000\\020\\000\\000\\010\\377\\000\\377\\000\\n$h\\020\\241B\\206~\\000\\t\\\"d\\010\\221\\\"F\\016!J\\244h\\021\\243F\\216\\216 I\\242d\\t\\223&N\\036A\\212$i\\022\\245J\\226\\236@\\211\\\"e\\n\\225*V.a\\312\\244i\\023\\247N\\236\\256`\\311\\242e\\013\\227.^>\\201\\n%j\\024\\251R\\246\\276\\200\\t#f\\014\\2312fN\\241J\\245j\\025\\253V\\256\\316\\240I\\243f\\r\\2336n^\\301\\212%k\\026\\255Z\\266\\336\\300\\211#g\\016\\235:vn\\341\\312\\245k\\027\\257^\\276\\356\\340\\311\\243g\\017\\237>~\\376\\001\\010 `\\000\\201\\002\\006~\\001\\013&l\\030\\261b\\306\\016 H\\240`\\001\\203\\006\\016\\216!K\\246l\\031\\263f\\316\\036@\\210 a\\002\\205\\n\\026\\236A\\213&m\\032\\265j\\326.`\\310\\240a\\003\\207\\016\\036\\256a\\313\\246m\\033\\267n\\336>\\200\\010!b\\004\\211\\022&\\276\\201\\013\\'n\\034\\271r\\346N\\240H\\241b\\005\\213\\026.\\316\\241K\\247n\\035\\273v\\356^\\300%\\210!c\\006\\215\\0326\\336\\301\\213\\'o\\036\\275z\\366n\\340\\310\\241c\\007\\217\\036>\\356\\341\\313\\247o\\037?\\200\\375\\374\\005\\004\\000;\"\n  }\n}\n"
  },
  {
    "path": "tests/expect_reader.py",
    "content": "from __future__ import absolute_import, division, print_function, unicode_literals\nimport importlib\nimport os\nimport sys\n\nimport google.protobuf.text_format as text_format\nfrom google.protobuf.message import Message\n\n\ndef removeWhiteChar(string):\n    return string.replace(' ', '').replace('\\t', '').replace('\\n', '')\n\n\ndef compare_proto(str_to_compare, function_ptr):\n    module_id = function_ptr.__class__.__module__\n    functionName = function_ptr.id().split('.')[-1]\n    test_file = os.path.realpath(sys.modules[module_id].__file__)\n    expected_file = os.path.join(os.path.dirname(test_file),\n                        \"expect\",\n                        module_id.split('.')[-1] + '.' + functionName + \".expect\")\n    print(\"expected_file: %s\" % expected_file)\n    assert os.path.exists(expected_file)\n    with open(expected_file) as f:\n        expected = f.read()\n\n    if isinstance(str_to_compare, Message):\n\n        proto_msg_module_name = str_to_compare.__class__.__module__\n        proto_msg_class_name = str_to_compare.__class__.__name__\n\n        proto_msg_module = importlib.import_module(proto_msg_module_name)\n        ProtoMessage = getattr(proto_msg_module, proto_msg_class_name)\n\n        expected_proto = ProtoMessage()\n        text_format.Parse(expected, expected_proto)\n\n        assert expected_proto == str_to_compare\n\n    else:\n        # TODO refactor tests to not compare tuple of protobuf messages in string\n        # representation but protobuf messages themselves\n        str_to_compare = str(str_to_compare)\n        print(\"str_to_compare:\", removeWhiteChar(str_to_compare))\n        print(\"expected:\", removeWhiteChar(expected))\n        assert removeWhiteChar(str_to_compare) == removeWhiteChar(expected)\n\n\ndef write_proto(str_to_compare, function_ptr):\n    module_id = function_ptr.__class__.__module__\n    functionName = function_ptr.id().split('.')[-1]\n    test_file = os.path.realpath(sys.modules[module_id].__file__)\n    expected_file = os.path.join(os.path.dirname(test_file),\n                    \"expect\",\n                    module_id.split('.')[-1] + '.' + functionName + \".expect\")\n    print(expected_file)\n    with open(expected_file, 'w') as f:\n        f.write(str(str_to_compare))\n"
  },
  {
    "path": "tests/record_writer_test.py",
    "content": "# Copyright 2019 The TensorFlow Authors. All Rights Reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ==============================================================================\n\n# \"\"\"Tests for RecordWriter\"\"\"\n\nfrom __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\n\nimport os\nfrom tensorboardX.record_writer import RecordWriter\nfrom tensorboard.compat.tensorflow_stub.pywrap_tensorflow import PyRecordReader_New\nimport unittest\n\n\nclass RecordWriterTest(unittest.TestCase):\n  def get_temp_dir(self):\n    import tempfile\n    return tempfile.mkdtemp()\n\n  def test_expect_bytes_written(self):\n    filename = os.path.join(self.get_temp_dir(), \"expect_bytes_written\")\n    byte_len = 64\n    w = RecordWriter(filename)\n    bytes_to_write = b\"x\" * byte_len\n    w.write(bytes_to_write)\n    w.close()\n    with open(filename, 'rb') as f:\n      self.assertEqual(len(f.read()), (8 + 4 + byte_len + 4))  # uint64+uint32+data+uint32\n\n  def test_empty_record(self):\n    filename = os.path.join(self.get_temp_dir(), \"empty_record\")\n    w = RecordWriter(filename)\n    bytes_to_write = b\"\"\n    w.write(bytes_to_write)\n    w.close()\n    r = PyRecordReader_New(filename)\n    r.GetNext()\n    self.assertEqual(r.record(), bytes_to_write)\n\n  def test_record_writer_roundtrip(self):\n    filename = os.path.join(self.get_temp_dir(), \"record_writer_roundtrip\")\n    w = RecordWriter(filename)\n    bytes_to_write = b\"hello world\"\n    times_to_test = 50\n    for _ in range(times_to_test):\n      w.write(bytes_to_write)\n    w.close()\n\n    r = PyRecordReader_New(filename)\n    for i in range(times_to_test):\n      r.GetNext()\n      self.assertEqual(r.record(), bytes_to_write)\n\n  # def test_expect_bytes_written_bytes_IO(self):\n  #   byte_len = 64\n  #   Bytes_io = six.BytesIO()\n  #   w = RecordWriter(Bytes_io)\n  #   bytes_to_write = b\"x\" * byte_len\n  #   w.write(bytes_to_write)\n  #   self.assertEqual(len(Bytes_io.getvalue()), (8 + 4 + byte_len + 4))  # uint64+uint32+data+uint32\n\n\nif __name__ == '__main__':\n  unittest.main()\n"
  },
  {
    "path": "tests/test_chainer_np.py",
    "content": "from __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\nfrom __future__ import unicode_literals\n\nfrom tensorboardX import x2num, SummaryWriter\ntry:\n    import chainer\n    chainer_installed = True\nexcept ImportError:\n    print('Chainer is not installed, skipping test')\n    chainer_installed = False\nimport numpy as np\nimport unittest\n\n\nif chainer_installed:\n    chainer.Variable\n    tensors = [chainer.Variable(np.random.rand(3, 10, 10)),\n               chainer.Variable(np.random.rand(1)),\n               chainer.Variable(np.random.rand(1, 2, 3, 4, 5))]\n\n    class ChainerTest(unittest.TestCase):\n        def test_chainer_np(self):\n            for tensor in tensors:\n                # regular variable\n                assert isinstance(x2num.make_np(tensor), np.ndarray)\n\n            # python primitive type\n            assert(isinstance(x2num.make_np(0), np.ndarray))\n            assert(isinstance(x2num.make_np(0.1), np.ndarray))\n\n        def test_chainer_img(self):\n            shapes = [(77, 3, 13, 7), (77, 1, 13, 7), (3, 13, 7), (1, 13, 7), (13, 7)]\n            for s in shapes:\n                x = chainer.Variable(np.random.random_sample(s))\n                # assert x2num.make_np(x, 'IMG').shape[2] == 3\n\n        def test_chainer_write(self):\n            with SummaryWriter() as w:\n                w.add_scalar('scalar', chainer.Variable(np.random.rand(1)), 0)\n"
  },
  {
    "path": "tests/test_crc32c.py",
    "content": "import unittest\nfrom tensorboardX.crc32c import _crc32c, _crc32c_native, crc32c\n\n\nclass CRC32CTest(unittest.TestCase):\n    def test_crc32c(self):\n        data = b'abcd'\n        assert crc32c(data) == 0x92c80a31\n\n    def test_crc32c_python(self):\n        data = b'abcd'\n        assert _crc32c(data) == 0x92c80a31\n\n    def test_crc32c_native(self):\n        if _crc32c_native is None:\n            return\n        data = b'abcd'\n        assert _crc32c_native(data) == 0x92c80a31\n"
  },
  {
    "path": "tests/test_embedding.py",
    "content": "import unittest\nimport torch\nimport boto3\nfrom tensorboardX import SummaryWriter\nfrom moto import mock_s3\n\n\n\nclass EmbeddingTest(unittest.TestCase):\n    def test_embedding(self):\n        w = SummaryWriter()\n        all_features = torch.Tensor([[1, 2, 3], [5, 4, 1], [3, 7, 7]])\n        all_labels = torch.Tensor([33, 44, 55])\n        all_images = torch.zeros(3, 3, 5, 5)\n\n        w.add_embedding(all_features,\n                        metadata=all_labels,\n                        label_img=all_images,\n                        global_step=2)\n\n        dataset_label = ['test'] * 2 + ['train'] * 2\n        all_labels = list(zip(all_labels, dataset_label))\n        w.add_embedding(all_features,\n                        metadata=all_labels,\n                        label_img=all_images,\n                        metadata_header=['digit', 'dataset'],\n                        global_step=2)\n\n    def test_embedding_64(self):\n        w = SummaryWriter()\n        all_features = torch.Tensor([[1, 2, 3], [5, 4, 1], [3, 7, 7]])\n        all_labels = torch.Tensor([33, 44, 55])\n        all_images = torch.zeros((3, 3, 5, 5), dtype=torch.float64)\n\n        w.add_embedding(all_features,\n                        metadata=all_labels,\n                        label_img=all_images,\n                        global_step=2)\n\n        dataset_label = ['test'] * 2 + ['train'] * 2\n        all_labels = list(zip(all_labels, dataset_label))\n        w.add_embedding(all_features,\n                        metadata=all_labels,\n                        label_img=all_images,\n                        metadata_header=['digit', 'dataset'],\n                        global_step=2)\n\n    def test_embedding_square(self):\n        w = SummaryWriter(comment='sq')\n        all_features = torch.rand(228,256)\n        all_images = torch.rand(228, 3, 32, 32)\n        for i in range(all_images.shape[0]):\n            all_images[i] *= (float(i)+60)/(all_images.shape[0]+60)\n        w.add_embedding(all_features,\n                        label_img=all_images,\n                        global_step=2)\n\n    def test_embedding_fail(self):\n        with self.assertRaises(AssertionError):\n            w = SummaryWriter(comment='shouldfail')\n            all_features = torch.rand(228,256)\n            all_images = torch.rand(228, 3, 16, 32)\n            for i in range(all_images.shape[0]):\n                all_images[i] *= (float(i)+60)/(all_images.shape[0]+60)\n            w.add_embedding(all_features,\n                            label_img=all_images,\n                            global_step=2)\n    @mock_s3\n    def test_embedding_s3_mock(self):\n        client = boto3.client('s3', region_name='us-east-1')\n        client.create_bucket(Bucket='this')\n        w = SummaryWriter(\"s3://this/is/apen\")\n        all_features = torch.Tensor([[1, 2, 3], [5, 4, 1], [3, 7, 7]])\n        all_labels = torch.Tensor([33, 44, 55])\n        all_images = torch.zeros(3, 3, 5, 5)\n\n        w.add_embedding(all_features,\n                        metadata=all_labels,\n                        label_img=all_images,\n                        global_step=2)\n\n        dataset_label = ['test'] * 2 + ['train'] * 2\n        all_labels = list(zip(all_labels, dataset_label))\n        w.add_embedding(all_features,\n                        metadata=all_labels,\n                        label_img=all_images,\n                        metadata_header=['digit', 'dataset'],\n                        global_step=2)\n        w.close()\n"
  },
  {
    "path": "tests/test_figure.py",
    "content": "from __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\nfrom __future__ import unicode_literals\n\nimport matplotlib\nmatplotlib.use('agg')\n\nimport matplotlib.pyplot as plt\nimport unittest\n\nfrom tensorboardX import SummaryWriter\n\n\nclass FigureTest(unittest.TestCase):\n    def test_figure(self):\n        writer = SummaryWriter()\n\n        figure, axes = plt.figure(), plt.gca()\n        circle1 = plt.Circle((0.2, 0.5), 0.2, color='r')\n        circle2 = plt.Circle((0.8, 0.5), 0.2, color='g')\n        axes.add_patch(circle1)\n        axes.add_patch(circle2)\n        plt.axis('scaled')\n        plt.tight_layout()\n\n        writer.add_figure(\"add_figure/figure\", figure, 0, close=False)\n        assert plt.fignum_exists(figure.number) is True\n\n        writer.add_figure(\"add_figure/figure\", figure, 1)\n        assert plt.fignum_exists(figure.number) is False\n\n        writer.close()\n\n    def test_figure_list(self):\n        writer = SummaryWriter()\n\n        figures = []\n        for i in range(5):\n            figure = plt.figure()\n            plt.plot([i * 1, i * 2, i * 3], label=\"Plot \" + str(i))\n            plt.xlabel(\"X\")\n            plt.xlabel(\"Y\")\n            plt.legend()\n            plt.tight_layout()\n            figures.append(figure)\n\n        writer.add_figure(\"add_figure/figure_list\", figures, 0, close=False)\n        assert all([plt.fignum_exists(figure.number) is True for figure in figures])\n\n        writer.add_figure(\"add_figure/figure_list\", figures, 1)\n        assert all([plt.fignum_exists(figure.number) is False for figure in figures])\n\n        writer.close()\n"
  },
  {
    "path": "tests/test_hparams.py",
    "content": "import unittest\nimport numpy as np\nfrom tensorboardX import SummaryWriter\n\nhparam = {'lr': [0.1, 0.01, 0.001],\n          'bsize': [1, 2, 4],\n          'n_hidden': [100, 200],\n          'bn': [True, False]}\n\nmetrics = {'accuracy', 'loss'}\n\ndef train(lr, bsize, n_hidden):\n    x = lr + bsize + n_hidden\n    return x, x*5\n\n\nclass HparamsTest(unittest.TestCase):\n    def test_smoke(self):\n        i = 0\n        with SummaryWriter() as w:\n            for lr in hparam['lr']:\n                for bsize in hparam['bsize']:\n                    for n_hidden in hparam['n_hidden']:\n                        for bn in hparam['bn']:\n                            accu, loss = train(lr, bsize, n_hidden)\n                            i = i + 1\n                            w.add_hparams({'lr': lr, 'bsize': bsize, 'n_hidden': n_hidden, 'bn': bn},\n                                            {'accuracy': accu, 'loss': loss}, name=\"trial\"+str(i))\n\n"
  },
  {
    "path": "tests/test_lint.py",
    "content": "def test_linting():\n    import subprocess\n    subprocess.check_output(['ruff', 'check', 'tensorboardX'])\n"
  },
  {
    "path": "tests/test_multiprocess_write.py",
    "content": "# the file name is intended. pytest don't play well with multiprocessing\n\nfrom tensorboardX import GlobalSummaryWriter as SummaryWriter\nfrom tensorboard.compat.tensorflow_stub.pywrap_tensorflow import PyRecordReader_New\nfrom tensorboardX.proto import event_pb2\nimport multiprocessing as mp\nimport numpy as np\nimport pytest\nimport unittest\nimport time\n\nmp.set_start_method('fork')\n\nclass GlobalWriterTest(unittest.TestCase):\n    def test_flush(self):\n        N_TEST = 5\n        w = SummaryWriter(flush_secs=1)\n        f = w.file_writer.event_writer._ev_writer._file_name\n        for i in range(N_TEST):\n            w.add_scalar('a', i)\n            time.sleep(2)\n        r = PyRecordReader_New(f)\n        r.GetNext()  # meta data, so skip\n        for _ in range(N_TEST):  # all of the data should be flushed\n            r.GetNext()\n\n    def test_flush_timer_is_long_so_data_is_not_there(self):\n        with self.assertRaises(BaseException):\n            N_TEST = 5\n            w = SummaryWriter(flush_secs=20)\n            f = w.file_writer.event_writer._ev_writer._file_name\n            for i in range(N_TEST):\n                w.add_scalar('a', i)\n                time.sleep(2)\n            r = PyRecordReader_New(f)\n            r.GetNext()  # meta data, so skip\n            for _ in range(N_TEST):  # missing data\n                r.GetNext()\n\n    def test_flush_after_close(self):\n        N_TEST = 5\n        w = SummaryWriter(flush_secs=20)\n        f = w.file_writer.event_writer._ev_writer._file_name\n        for i in range(N_TEST):\n            w.add_scalar('a', i)\n            time.sleep(2)\n        w.close()\n        r = PyRecordReader_New(f)\n        r.GetNext()  # meta data, so skip\n        for _ in range(N_TEST):  # all of the data should be flushed\n            r.GetNext()\n\n\n    def test_auto_close(self):\n        pass\n\n    def test_writer(self):\n        TEST_LEN = 100\n        N_PROC = 4\n        writer = SummaryWriter()\n        event_filename = writer.file_writer.event_writer._ev_writer._file_name\n\n        predifined_values = list(range(TEST_LEN))\n        def train3():\n            for i in range(TEST_LEN):\n                writer.add_scalar('many_write_in_func', predifined_values[i])\n                time.sleep(0.01*np.random.randint(0, 10))\n\n        processes = []\n        for i in range(N_PROC):\n            p1 = mp.Process(target=train3)\n            processes.append(p1)\n            p1.start()\n\n        for p in processes:\n            p.join()\n        writer.close()\n\n\n        collected_values = []\n        r = PyRecordReader_New(event_filename)\n        r.GetNext()  # meta data, so skip\n        for _ in range(TEST_LEN*N_PROC):  # all of the data should be flushed\n            r.GetNext()\n            ev = event_pb2.Event()\n            value = ev.FromString(r.record()).summary.value\n            collected_values.append(value[0].simple_value)\n\n        collected_values = sorted(collected_values)\n        for i in range(TEST_LEN):\n            for j in range(N_PROC):\n                assert collected_values[i*N_PROC+j] == i\n\n"
  },
  {
    "path": "tests/test_numpy.py",
    "content": "from __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\nfrom __future__ import unicode_literals\n\nimport numpy as np\nimport unittest\n\nfrom tensorboardX import x2num\n\n\nclass NumpyTest(unittest.TestCase):\n    def test_scalar(self):\n        res = x2num.make_np(1.1)\n        assert isinstance(res, np.ndarray) and res.shape == (1,)\n        res = x2num.make_np(1 << 64 - 1)  # uint64_max\n        assert isinstance(res, np.ndarray) and res.shape == (1,)\n        res = x2num.make_np(np.float16(1.00000087))\n        assert isinstance(res, np.ndarray) and res.shape == (1,)\n        if hasattr(np, 'float128'):\n            res = x2num.make_np(np.float128(1.00008 + 9))\n            assert isinstance(res, np.ndarray) and res.shape == (1,)\n        res = x2num.make_np(np.int64(100000000000))\n        assert isinstance(res, np.ndarray) and res.shape == (1,)\n\n    def test_make_grid(self):\n        pass\n\n    def test_numpy_vid(self):\n        shapes = [(16, 3, 30, 28, 28), (19, 3, 30, 28, 28), (19, 3, 29, 23, 19)]\n        for s in shapes:\n            x = np.random.random_sample(s)\n            # assert x2num.make_np(x, 'VID').shape[3] == 3\n\n    def test_numpy_vid_uint8(self):\n        x = np.random.randint(0, 256, (16, 3, 30, 28, 28)).astype(np.uint8)\n        # x2num.make_np(x, 'VID').shape[3] == 3\n"
  },
  {
    "path": "tests/test_onnx_graph.py",
    "content": "import unittest\nimport torch\nfrom tensorboardX import SummaryWriter\n\n# https://github.com/onnx/models/blob/master/vision/classification/mnist/model/mnist-8.onnx\nclass ONNXGraphTest(unittest.TestCase):\n    def test_onnx_graph(self):\n        with SummaryWriter() as w:\n            w.add_onnx_graph('tests/mnist-8.onnx')\n"
  },
  {
    "path": "tests/test_openvino_graph.py",
    "content": "import unittest\nfrom tensorboardX import SummaryWriter\n\nclass OPENVINOGraphTest(unittest.TestCase):\n    def test_openvino_graph(self):\n        with SummaryWriter() as w:\n            w.add_openvino_graph('examples/mobilenetv2.xml')\n"
  },
  {
    "path": "tests/test_pr_curve.py",
    "content": "import unittest\nimport torch\nimport numpy as np\nfrom tensorboardX import SummaryWriter\nfrom tensorboardX import summary\nfrom .expect_reader import compare_proto\n\nnp.random.seed(0)\ntrue_positive_counts = [75, 64, 21, 5, 0]\nfalse_positive_counts = [150, 105, 18, 0, 0]\ntrue_negative_counts = [0, 45, 132, 150, 150]\nfalse_negative_counts = [0, 11, 54, 70, 75]\nprecision = [0.3333333, 0.3786982, 0.5384616, 1.0, 0.0]\nrecall = [1.0, 0.8533334, 0.28, 0.0666667, 0.0]\n\n\nclass PRCurveTest(unittest.TestCase):\n    def test_smoke(self):\n        with SummaryWriter() as writer:\n            writer.add_pr_curve('xoxo', np.random.randint(2, size=100), np.random.rand(\n                100), 1)\n            writer.add_pr_curve_raw('prcurve with raw data',\n                                    true_positive_counts,\n                                    false_positive_counts,\n                                    true_negative_counts,\n                                    false_negative_counts,\n                                    precision,\n                                    recall,\n                                    1)\n\n    def test_pr_purve(self):\n        random_labels = np.array([0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1,\n            1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0,\n            0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1,\n            1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0,\n            1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0])\n        random_probs = np.array([0.33327776, 0.30032885, 0.79012837, 0.04306813, 0.65221544,\n            0.58481968, 0.28305522, 0.53795795, 0.00729739, 0.52266951,\n            0.22464247, 0.11262435, 0.41573075, 0.92493992, 0.73066758,\n            0.43867735, 0.27955449, 0.56975382, 0.53933028, 0.34392824,\n            0.30312509, 0.81732807, 0.55408544, 0.3969487 , 0.31768033,\n            0.24353266, 0.47198005, 0.19999122, 0.05788022, 0.24046305,\n            0.04651082, 0.30061738, 0.78321545, 0.82670207, 0.49200517,\n            0.80904619, 0.96711993, 0.3160946 , 0.01049424, 0.60108337,\n            0.56508792, 0.83729429, 0.9717386 , 0.46306053, 0.80232138,\n            0.24166823, 0.7393237 , 0.50820418, 0.04944932, 0.53854157,\n            0.10765172, 0.84723855, 0.20518299, 0.3143431 , 0.51299074,\n            0.47065695, 0.54267833, 0.1812676 , 0.06265177, 0.34110327,\n            0.30915171, 0.91870169, 0.91309447, 0.31395817, 0.36780571,\n            0.98297986, 0.00594547, 0.52839042, 0.70229202, 0.37779588,\n            0.15207045, 0.59759632, 0.72397032, 0.71502195, 0.90135725,\n            0.43970107, 0.17123532, 0.08785938, 0.04986818, 0.62702444,\n            0.69171023, 0.30537792, 0.30285433, 0.27124347, 0.27693729,\n            0.7136039 , 0.48022489, 0.20916285, 0.2018599 , 0.92401008,\n            0.30189681, 0.46862626, 0.96353024, 0.30468533, 0.68281294,\n            0.30623562, 0.40795975, 0.76824531, 0.89824215, 0.69845035], dtype=np.float16)\n        compare_proto(summary.pr_curve('tag', random_labels, random_probs, 1), self)\n\n    def test_pr_purve_raw(self):\n        compare_proto(summary.pr_curve_raw('prcurve with raw data',\n                                           true_positive_counts,\n                                           false_positive_counts,\n                                           true_negative_counts,\n                                           false_negative_counts,\n                                           precision,\n                                           recall,\n                                           1),\n                      self)\n"
  },
  {
    "path": "tests/test_pytorch_graph.py",
    "content": "from __future__ import absolute_import, division, print_function, unicode_literals\nimport unittest\nimport torch\nfrom tensorboardX import SummaryWriter\n\n\nclass PytorchGraphTest(unittest.TestCase):\n    def test_pytorch_graph(self):\n        dummy_input = (torch.zeros(1, 3),)\n\n        class myLinear(torch.nn.Module):\n            def __init__(self):\n                super(myLinear, self).__init__()\n                self.linear = torch.nn.Linear(3, 5)\n\n            def forward(self, x):\n                return self.linear(x)\n\n        with SummaryWriter(comment='LinearModel') as w:\n            w.add_graph(myLinear(), dummy_input, True)\n\n    def test_wrong_input_size(self):\n        print('expect error here:')\n        with self.assertRaises(RuntimeError):\n            dummy_input = torch.rand(1, 9)\n            model = torch.nn.Linear(3, 5)\n            with SummaryWriter(comment='expect_error') as w:\n                w.add_graph(model, dummy_input)  # error\n"
  },
  {
    "path": "tests/test_pytorch_np.py",
    "content": "from __future__ import absolute_import\nfrom __future__ import division\nfrom __future__ import print_function\nfrom __future__ import unicode_literals\n\nfrom tensorboardX import x2num, SummaryWriter\nimport torch\nimport numpy as np\nimport unittest\n\n\nclass PyTorchNumpyTest(unittest.TestCase):\n    def test_pytorch_np(self):\n        tensors = [torch.rand(3, 10, 10), torch.rand(1), torch.rand(1, 2, 3, 4, 5)]\n        for tensor in tensors:\n            # regular tensor\n            assert isinstance(x2num.make_np(tensor), np.ndarray)\n\n            # CUDA tensor\n            if torch.cuda.device_count() > 0:\n                assert isinstance(x2num.make_np(tensor.cuda()), np.ndarray)\n\n            # regular variable\n            assert isinstance(x2num.make_np(torch.autograd.Variable(tensor)), np.ndarray)\n\n            # CUDA variable\n            if torch.cuda.device_count() > 0:\n                assert isinstance(x2num.make_np(torch.autograd.Variable(tensor).cuda()), np.ndarray)\n\n        # python primitive type\n        assert(isinstance(x2num.make_np(0), np.ndarray))\n        assert(isinstance(x2num.make_np(0.1), np.ndarray))\n\n    def test_pytorch_write(self):\n        with SummaryWriter() as w:\n            w.add_scalar('scalar', torch.autograd.Variable(torch.rand(1)), 0)\n\n    def test_pytorch_histogram(self):\n        with SummaryWriter() as w:\n            w.add_histogram('float histogram', torch.rand((50,)))\n            w.add_histogram('int histogram', torch.randint(0, 100, (50,)))\n\n    def test_pytorch_histogram_raw(self):\n        with SummaryWriter() as w:\n            num = 50\n            floats = x2num.make_np(torch.rand((num,)))\n            bins = [0.0, 0.25, 0.5, 0.75, 1.0]\n            counts, limits = np.histogram(floats, bins)\n            sum_sq = floats.dot(floats).item()\n            w.add_histogram_raw('float histogram raw',\n                                min=floats.min().item(),\n                                max=floats.max().item(),\n                                num=num,\n                                sum=floats.sum().item(),\n                                sum_squares=sum_sq,\n                                bucket_limits=limits[1:].tolist(),\n                                bucket_counts=counts.tolist())\n\n            ints = x2num.make_np(torch.randint(0, 100, (num,)))\n            bins = [0, 25, 50, 75, 100]\n            counts, limits = np.histogram(ints, bins)\n            sum_sq = ints.dot(ints).item()\n            w.add_histogram_raw('int histogram raw',\n                                min=ints.min().item(),\n                                max=ints.max().item(),\n                                num=num,\n                                sum=ints.sum().item(),\n                                sum_squares=sum_sq,\n                                bucket_limits=limits[1:].tolist(),\n                                bucket_counts=counts.tolist())\n"
  },
  {
    "path": "tests/test_record_writer.py",
    "content": "from tensorboardX import SummaryWriter\nimport unittest\nfrom tensorboardX.record_writer import S3RecordWriter, make_valid_tf_name, GCSRecordWriter\nimport os\nimport boto3\nimport shutil\nfrom moto import mock_s3\n\nos.environ.setdefault(\"AWS_ACCESS_KEY_ID\", \"foobar_key\")\nos.environ.setdefault(\"AWS_SECRET_ACCESS_KEY\", \"foobar_secret\")\n\n\nclass RecordWriterTest(unittest.TestCase):\n    @mock_s3\n    def test_record_writer_s3(self):\n        client = boto3.client('s3', region_name='us-east-1')\n        client.create_bucket(Bucket='this')\n        writer = S3RecordWriter('s3://this/is/apen')\n        bucket, path = writer.bucket_and_path()\n        assert bucket == 'this'\n        assert path == 'is/apen'\n        writer.write(bytes(42))\n        writer.flush()\n        shutil.rmtree('s3:')\n\n    def test_make_valid_tf_name(self):\n        newname = make_valid_tf_name('$ave/&sound')\n        assert newname == '._ave/_sound'\n\n    def test_record_writer_gcs(self):\n        pass\n        # we don't have mock test, so expect error here. However,\n        # Travis CI env won't raise exception for the following code,\n        # so I commented it out.\n        # with self.assertRaises(Exception):\n        #   writer = GCSRecordWriter('gs://this/is/apen')\n        #   writer.write(bytes(42))\n        #   writer.flush()\n"
  },
  {
    "path": "tests/test_summary.py",
    "content": "from __future__ import absolute_import, division, print_function, unicode_literals\n\nimport io\nfrom tensorboardX import summary\nfrom .expect_reader import compare_proto, write_proto\nimport numpy as np\nimport pytest\nimport unittest\nimport torch\n\nfrom PIL import Image, ImageSequence\n# compare_proto = write_proto  # massive update expect\n\ndef tensor_N(shape, dtype=float):\n    numel = np.prod(shape)\n    x = (np.arange(numel, dtype=dtype)).reshape(shape)\n    return x\n\nclass SummaryTest(unittest.TestCase):\n    def test_uint8_image(self):\n        '''\n        Tests that uint8 image (pixel values in [0, 255]) is not changed\n        '''\n        test_image = tensor_N(shape=(3, 32, 32), dtype=np.uint8)\n        compare_proto(summary.image('dummy', test_image), self)\n\n    def test_float32_image(self):\n        '''\n        Tests that float32 image (pixel values in [0, 1]) are scaled correctly\n        to [0, 255]\n        '''\n        test_image = tensor_N(shape=(3, 32, 32))\n        compare_proto(summary.image('dummy', test_image), self)\n\n    def test_float_1_converts_to_uint8_255(self):\n        green_uint8 = np.array([[[0, 255, 0]]], dtype='uint8') \n        green_float32 = np.array([[[0, 1, 0]]], dtype='float32') \n\n        a = summary.image(tensor=green_uint8, tag='')\n        b = summary.image(tensor=green_float32, tag='')\n        self.assertEqual(a, b)\n\n    def test_list_input(self):\n        with pytest.raises(Exception):\n            summary.histogram('dummy', [1, 3, 4, 5, 6], 'tensorflow')\n\n    def test_0d_input(self):\n        x = torch.rand(1)\n        summary.scalar('0d', x[0])\n\n    def test_1d_input(self):\n        x = torch.rand(1)\n        summary.scalar('0d', x)\n\n    def test_empty_input(self):\n        print('expect error here:')\n        with pytest.raises(Exception):\n            summary.histogram('dummy', np.ndarray(0), 'tensorflow')\n\n    def test_image_with_boxes(self):\n        compare_proto(summary.image_boxes('dummy',\n                            tensor_N(shape=(3, 32, 32)),\n                            np.array([[10, 10, 40, 40]])), self)\n\n    def test_image_with_one_channel(self):\n        compare_proto(summary.image('dummy', tensor_N(shape=(1, 8, 8)), dataformats='CHW'), self)\n\n    def test_image_with_four_channel(self):\n        compare_proto(summary.image('dummy', tensor_N(shape=(4, 8, 8)), dataformats='CHW'), self)\n\n    def test_image_with_one_channel_batched(self):\n        compare_proto(summary.image('dummy', tensor_N(shape=(2, 1, 8, 8)), dataformats='NCHW'), self)\n\n    def test_image_with_3_channel_batched(self):\n        compare_proto(summary.image('dummy', tensor_N(shape=(2, 3, 8, 8)), dataformats='NCHW'), self)\n\n    def test_image_with_four_channel_batched(self):\n        compare_proto(summary.image('dummy', tensor_N(shape=(2, 4, 8, 8)), dataformats='NCHW'), self)\n\n    def test_image_without_channel(self):\n        compare_proto(summary.image('dummy', tensor_N(shape=(8, 8)), dataformats='HW'), self)\n\n    @staticmethod\n    def _iter_gif(encoded_image):\n        image_io = io.BytesIO(encoded_image)\n        im = Image.open(image_io, )\n        for frame in ImageSequence.Iterator(im):\n            yield frame.getchannel(0)\n\n    @staticmethod\n    def _load_expected_test_video():\n        with Image.open(\"tests/expect/test_summary.test_video.expect.gif\") as im:\n            return list(ImageSequence.Iterator(im))\n\n    def assert_grayscale(self, image) -> None:\n        channels = image.split()\n        c0colors = channels[0].getcolors()\n        for c in channels[1:]:\n            self.assertEqual(c0colors, c.getcolors())\n\n    def test_video(self):\n        try:\n            import moviepy\n        except ImportError:\n            self.skipTest('moviepy not installed')\n        t1 = tensor_N(shape=(4, 3, 1, 8, 8))\n        v1 = summary.video(\"dummy\", t1)\n        frames = list(self._iter_gif(v1.value[0].image.encoded_image_string))\n        self.assertEqual(len(frames), 3)\n        prepared = self._load_expected_test_video()\n        for image, expected in zip(frames, prepared):\n            self.assert_grayscale(image)\n            self.assert_grayscale(expected)\n            self.assertEqual(\n                image.getchannel(0).getcolors(), expected.getchannel(0).getcolors()\n            )\n        summary.video('dummy', tensor_N(shape=(16, 48, 1, 28, 28)))\n        summary.video('dummy', tensor_N(shape=(20, 7, 1, 8, 8)))\n\n    def test_audio(self):\n        compare_proto(summary.audio('dummy', tensor_N(shape=(42,))), self)\n\n    def test_text(self):\n        compare_proto(summary.text('dummy', 'text 123'), self)\n\n    def test_histogram_auto(self):\n        compare_proto(summary.histogram('dummy', tensor_N(shape=(1024,)), bins='auto', max_bins=5), self)\n\n    def test_histogram_fd(self):\n        compare_proto(summary.histogram('dummy', tensor_N(shape=(1024,)), bins='fd', max_bins=5), self)\n\n    def test_histogram_doane(self):\n        compare_proto(summary.histogram('dummy', tensor_N(shape=(1024,)), bins='doane', max_bins=5), self)\n\n    def test_custom_scalars(self):\n        layout = {'Taiwan': {'twse': ['Multiline', ['twse/0050', 'twse/2330']]},\n                    'USA': {'dow': ['Margin', ['dow/aaa', 'dow/bbb', 'dow/ccc']],\n                            'nasdaq': ['Margin', ['nasdaq/aaa', 'nasdaq/bbb', 'nasdaq/ccc']]}}\n        summary.custom_scalars(layout)  # smoke test only.\n\n    def test_mesh(self):\n        vertices_tensor = np.array([[\n            [1, 1, 1],\n            [-1, -1, 1],\n            [1, -1, -1],\n            [-1, 1, -1],\n        ]], dtype=float)\n        colors_tensor = np.array([[\n            [255, 0, 0],\n            [0, 255, 0],\n            [0, 0, 255],\n            [255, 0, 255],\n        ]], dtype=int)\n        faces_tensor = np.array([[\n            [0, 2, 3],\n            [0, 3, 1],\n            [0, 1, 2],\n            [1, 3, 2],\n        ]], dtype=int)\n        compare_proto(summary.mesh('my_mesh', vertices=vertices_tensor, colors=colors_tensor, faces=faces_tensor), self)\n\n    # It's hard to get dictionary sorted with same result in various envs. So only use one key per dict.\n    def test_hparams(self):\n        hp = {'lr': 0.1}\n        mt = {'accuracy': 0.1}\n        compare_proto(summary.hparams(hp, mt), self)\n\n    def test_hparams_bool(self):\n        hp = {'bool_var': True}\n        mt = {'accuracy': 0.1}\n        compare_proto(summary.hparams(hp, mt), self)\n\n    def test_hparams_string(self):\n        hp = {'string_var': \"hi\"}\n        mt = {'accuracy': 0.1}\n        compare_proto(summary.hparams(hp, mt), self)\n\n    def test_hparams_smoke(self):\n        hp = {'lr': 0.1, 'bsize': 4}\n        mt = {'accuracy': 0.1, 'loss': 10}\n        summary.hparams(hp, mt)\n        \n        hp = {'string': \"1b\", 'use magic': True}\n        summary.hparams(hp, mt)\n"
  },
  {
    "path": "tests/test_summary_writer.py",
    "content": "from tensorboardX import SummaryWriter\nimport tempfile\nimport unittest\n\n\nclass SummaryWriterTest(unittest.TestCase):\n    def test_summary_writer_ctx(self):\n        # after using a SummaryWriter as a ctx it should be closed\n        with SummaryWriter(filename_suffix='.test') as writer:\n            writer.add_scalar('test', 1)\n        assert writer.file_writer is None\n\n    def test_summary_writer_backcompat(self):\n        with tempfile.TemporaryDirectory() as tmp_dir:\n            with SummaryWriter(log_dir=tmp_dir) as writer:\n                writer.add_scalar('test', 1)\n\n    def test_summary_writer_close(self):\n        # Opening and closing SummaryWriter a lot should not run into\n        # OSError: [Errno 24] Too many open files\n        for i in range(1000):\n            writer = SummaryWriter()\n            writer.close()\n\n    def test_windowsPath(self):\n        dummyPath = \"C:\\\\Downloads\\\\fjoweifj02utj43tj430\"\n        with SummaryWriter(dummyPath) as writer:\n            writer.add_scalar('test', 1)\n        import shutil\n        shutil.rmtree(dummyPath)\n\n    def test_pathlib(self):\n        import sys\n        if sys.version_info.major == 2:\n            import pathlib2 as pathlib\n        else:\n            import pathlib\n        p = pathlib.Path('./pathlibtest')\n        with SummaryWriter(p) as writer:\n            writer.add_scalar('test', 1)\n        import shutil\n        shutil.rmtree(str(p))\n\n    def test_dummy_summary_writer(self):\n        # You can't write to root folder without sudo.\n        with SummaryWriter('/', write_to_disk=False) as writer:\n            writer.add_scalar('test', 1)\n            writer.flush()"
  },
  {
    "path": "tests/test_utils.py",
    "content": "from tensorboardX import summary\nfrom tensorboardX.utils import make_grid, _prepare_video, convert_to_HWC\nimport numpy as np\nimport pytest\nimport unittest\n\n\nclass UtilsTest(unittest.TestCase):\n    def test_to_HWC(self):\n        np.random.seed(1)\n        test_image = np.random.randint(0, 256, size=(3, 32, 32), dtype=np.uint8)\n        converted = convert_to_HWC(test_image, 'chw')\n        assert converted.shape == (32, 32, 3)\n        test_image = np.random.randint(0, 256, size=(16, 3, 32, 32), dtype=np.uint8)\n        converted = convert_to_HWC(test_image, 'nchw')\n        assert converted.shape == (64, 256, 3)\n        test_image = np.random.randint(0, 256, size=(32, 32), dtype=np.uint8)\n        converted = convert_to_HWC(test_image, 'hw')\n        assert converted.shape == (32, 32, 3)\n\n    def test_prepare_video(self):\n        # at each timestep the sum over all other dimensions of the video should stay the same\n        np.random.seed(1)\n        V_before = np.random.random((4, 10, 3, 20, 20))\n        V_after = _prepare_video(np.copy(V_before))\n        V_before = np.swapaxes(V_before, 0, 1)\n        V_before = np.reshape(V_before, newshape=(10, -1))\n        V_after = np.reshape(V_after, newshape=(10, -1))\n        np.testing.assert_array_almost_equal(np.sum(V_before, axis=1), np.sum(V_after, axis=1))\n"
  },
  {
    "path": "tests/test_visdom.py",
    "content": "from tensorboardX import TorchVis\n\nimport numpy as np\nimport pytest\nimport unittest\n\ntrue_positive_counts = [75, 64, 21, 5, 0]\nfalse_positive_counts = [150, 105, 18, 0, 0]\ntrue_negative_counts = [0, 45, 132, 150, 150]\nfalse_negative_counts = [0, 11, 54, 70, 75]\nprecision = [0.3333333, 0.3786982, 0.5384616, 1.0, 0.0]\nrecall = [1.0, 0.8533334, 0.28, 0.0666667, 0.0]\n\n\nclass VisdomTest(unittest.TestCase):\n    def test_TorchVis(self):\n        w = TorchVis('visdom')\n        w.add_scalar('scalar_visdom', 1, 0)\n        w.add_scalar('scalar_visdom', 2, 1)\n        w.add_histogram('histogram_visdom', np.array([1, 2, 3, 4, 5]), 1)\n        w.add_image('image_visdom', np.ndarray((3, 20, 20)), 2)\n        # w.add_video('video_visdom', np.random.randn(1, 3, 100, 200, 200), 3)\n        w.add_audio('audio_visdom', [1, 2, 3, 4, 5])\n        w.add_text('text_visdom', 'mystring')\n        w.add_pr_curve('pr_curve_visdom', np.random.randint(2, size=100), np.random.rand(100), 10)\n        w.add_pr_curve_raw('prcurve with raw data',\n                           true_positive_counts,\n                           false_positive_counts,\n                           true_negative_counts,\n                           false_negative_counts,\n                           precision,\n                           recall, 20)\n        del w\n"
  },
  {
    "path": "tests/test_writer.py",
    "content": "from tensorboardX import SummaryWriter\nfrom tensorboard.compat.tensorflow_stub.pywrap_tensorflow import PyRecordReader_New\nfrom tensorboardX.proto import event_pb2\nimport os\nimport numpy as np\nimport pytest\nimport unittest\nimport time\nfreqs = [262, 294, 330, 349, 392, 440, 440, 440, 440, 440, 440]\n\ntrue_positive_counts = [75, 64, 21, 5, 0]\nfalse_positive_counts = [150, 105, 18, 0, 0]\ntrue_negative_counts = [0, 45, 132, 150, 150]\nfalse_negative_counts = [0, 11, 54, 70, 75]\nprecision = [0.3333333, 0.3786982, 0.5384616, 1.0, 0.0]\nrecall = [1.0, 0.8533334, 0.28, 0.0666667, 0.0]\n\n\nclass WriterTest(unittest.TestCase):\n    def test_flush(self):\n        N_TEST = 5\n        w = SummaryWriter(flush_secs=1)\n        f = w.file_writer.event_writer._ev_writer._file_name\n        for i in range(N_TEST):\n            w.add_scalar('a', i)\n            time.sleep(2)\n        r = PyRecordReader_New(f)\n        r.GetNext()  # meta data, so skip\n        for _ in range(N_TEST):  # all of the data should be flushed\n            r.GetNext()\n\n    def test_flush_timer_is_long_so_data_is_not_there(self):\n        with self.assertRaises(BaseException):\n            N_TEST = 5\n            w = SummaryWriter(flush_secs=20)\n            f = w.file_writer.event_writer._ev_writer._file_name\n            for i in range(N_TEST):\n                w.add_scalar('a', i)\n                time.sleep(2)\n            r = PyRecordReader_New(f)\n            r.GetNext()  # meta data, so skip\n            for _ in range(N_TEST):  # missing data\n                r.GetNext()\n\n    def test_flush_after_close(self):\n        N_TEST = 5\n        w = SummaryWriter(flush_secs=20)\n        f = w.file_writer.event_writer._ev_writer._file_name\n        for i in range(N_TEST):\n            w.add_scalar('a', i)\n            time.sleep(2)\n        w.close()\n        r = PyRecordReader_New(f)\n        r.GetNext()  # meta data, so skip\n        for _ in range(N_TEST):  # all of the data should be flushed\n            r.GetNext()\n\n    def test_auto_close(self):\n        pass\n\n    def test_reuse_writer_after_closed(self):\n        w = SummaryWriter()\n        w.close()\n        w.add_text(\"reuse writer\", \"dont reuse without creating a new writer\", 0)\n\n    def test_writer(self):\n        with SummaryWriter() as writer:\n            sample_rate = 44100\n\n            n_iter = 0\n            writer.add_scalar('data/scalar_systemtime', 0.1, n_iter)\n            writer.add_scalar('data/scalar_customtime', 0.2, n_iter, walltime=n_iter)\n            writer.add_scalars('data/scalar_group', {\"xsinx\": n_iter * np.sin(n_iter),\n                                                     \"xcosx\": n_iter * np.cos(n_iter),\n                                                     \"arctanx\": np.arctan(n_iter)}, n_iter)\n            x = np.zeros((32, 3, 64, 64))  # output from network\n            writer.add_images('Image', x, n_iter)  # Tensor\n            writer.add_image_with_boxes('imagebox',\n                                        np.zeros((3, 64, 64)),\n                                        np.array([[10, 10, 40, 40], [40, 40, 60, 60]]),\n                                        n_iter)\n            x = np.zeros(sample_rate * 2)\n\n            writer.add_audio('myAudio', x, n_iter)\n            writer.add_video('myVideo', np.random.rand(16, 48, 1, 28, 28).astype(np.float32), n_iter)\n            writer.add_text('Text', 'text logged at step:' + str(n_iter), n_iter)\n            writer.add_text('markdown Text', '''a|b\\n-|-\\nc|d''', n_iter)\n            writer.add_histogram('hist', np.random.rand(100, 100), n_iter)\n            writer.add_pr_curve('xoxo', np.random.randint(2, size=100), np.random.rand(\n                100), n_iter)  # needs tensorboard 0.4RC or later\n            writer.add_pr_curve_raw('prcurve with raw data', true_positive_counts,\n                                    false_positive_counts,\n                                    true_negative_counts,\n                                    false_negative_counts,\n                                    precision,\n                                    recall, n_iter)\n            # export scalar data to JSON for external processing\n            writer.export_scalars_to_json(\"./all_scalars.json\")\n            os.remove(\"./all_scalars.json\")\n            imgs = []\n            for i in range(5):\n                imgs.append(np.ones((3, 100, 110)))\n            with SummaryWriter() as w:\n                w.add_images('img_list', imgs, dataformats='CHW')\n\n    def test_writer_with_default_metadata(self):\n        step = 17\n        walltime = 13.0\n\n        with (\n            unittest.mock.patch(\"tensorboardX.event_file_writer.EventFileWriter.add_event\") as fn,\n            SummaryWriter() as writer,\n        ):\n            # Check defaults are used unless explicitly specified.\n            with writer.use_metadata(global_step=step, walltime=walltime):\n                writer.add_scalar('data/scalar_defaults', 0.1)\n                event = fn.call_args[0][0]\n                assert event.wall_time == walltime\n                assert event.step == step\n\n                writer.add_scalar('data/scalar_default_with_step', 0.2, global_step=7)\n                event = fn.call_args[0][0]\n                assert event.wall_time == walltime\n                assert event.step == 7\n\n                writer.add_scalar('data/scalar_default_with_walltime', 0.3, walltime=18.0)\n                event = fn.call_args[0][0]\n                assert event.wall_time == 18.0\n                assert event.step == step\n\n            # Check default behavior outside the context.\n            writer.add_scalar('data/standard_behavior', 0.4)\n            event = fn.call_args[0][0]\n            assert time.time() - event.wall_time < 1\n            assert event.step == 0\n"
  }
]