{ "info": { "author": "YaHei", "author_email": "hey-yahei@qq.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 3" ], "description": "## MXOP: MXNet-OpSummary \nIt only works for **gluon** yet. \n\nReference: [THOP: PyTorch-OpCounter](https://github.com/Lyken17/pytorch-OpCounter) \n\n### Installation \n* PyPi \n ```bash\n pip install --index-url https://pypi.org/simple/ mxop\n ```\n* Github (latest) \n ```bash\n pip install --upgrade git+https://github.com/hey-yahei/OpSummary.MXNet.git\n ```\n\n### Usage\n#### Gluon\n* Count OPs \n ```python\n from mxop.gluon import count_ops\n op_counter = count_ops(net) # net is the gluon model you want to count OPs \n ```\n* Count parameters \n ```python\n from mxop.gluon import count_params\n params_counter = count_params(net, input_size) # net is the gluon model you want to count parameters\n # input_size is the shape of your input \n ```\n* Print summary \n ```python\n from mxop.gluon import op_summary\n op_summary(net, input_size) # net is the gluon model you want to count\n # input_size is the shape of your input \n ```\n\n### Test\n\nRun `tests/test_gluon_utils.py` to count OPs and parameters for all models in model zoo of MXNet. \n\n#### Result:\n| Model | Params(M) | Multiplication(G) | \\*Params(M) | *Multiplication(G) | Top1 Acc | Top5 Acc |\n|---:|---:|---:|---:|---:|---:|---:|\n|AlexNet|61.10|0.71|2.47|0.66|0.5492|0.7803|\n|VGG11|132.86|7.61|9.22|7.49|0.6662|0.8734|\n|VGG13|133.04|11.30|9.40|11.18|0.6774|0.8811|\n|VGG16|138.63|15.47|14.71|15.35|0.7323|0.9132|\n|VGG19|143.67|19.63|20.02|19.51|0.7411|0.9135|\n|VGG11_bn|132.87|7.62|9.23|7.49|0.6859|0.8872|\n|VGG13_bn|133.06|11.32|9.42|11.20|0.6884|0.8882|\n|VGG16_bn|138.37|15.48|14.73|15.36|0.7310|0.9176|\n|VGG19_bn|143.69|19.65|20.05|19.52|0.7433|0.9185|\n|Inception_v3|23.87|5.72|21.82|5.72|0.7755|0.9364|\n|ResNet18_v1|11.70|1.82|11.19|1.82|0.7093|0.8992|\n|ResNet34_v1|21.81|3.67|21.3|3.67|0.7437|0.9187|\n|ResNet50_v1|25.63|3.87|23.58|3.87|0.7647|0.9313|\n|ResNet101_v1|44.70|7.59|42.65|7.58|0.7834|0.9401|\n|ResNet152_v1|60.40|11.30|58.36|11.30|0.7900|0.9438|\n|ResNet18_v2|11.70|1.82|11.18|1.82|0.7100|0.8992|\n|ResNet34_v2|21.81|3.67|21.30|3.67|0.7440|0.9208|\n|ResNet50_v2|25.60|4.10|23.55|4.10|0.7711|0.9343|\n|ResNet101_v2|44.64|7.82|42.59|7.81|0.7853|0.9417|\n|ResNet152_v2|60.33|11.54|58.28|11.53|0.7921|0.9431|\n|DenseNet121|8.06|2.85|7.04|2.85|0.7497|0.9225|\n|DenseNet161|28.90|7.76|26.69|7.76|0.7770|0.9380|\n|DenseNet169|14.31|3.38|12.64|3.38|0.7617|0.9317|\n|DenseNet201|20.24|4.32|18.32|4.31|0.7732|0.9362|\n|MobileNet_v1_1.00|4.25|0.57|3.23|0.57|0.7105|0.9006|\n|MobileNet_v1_0.75|2.60|0.33|1.83|0.33|0.6738|0.8782|\n|MobileNet_v1_0.50|1.34|0.15|0.83|0.15|0.6307|0.8475|\n|MobileNet_v1_0.25|0.48|0.04|0.22|0.04|0.5185|0.7608|\n|MobileNet_v2_1.00|3.54|0.32|2.26|0.32|0.7192|0.9056|\n|MobileNet_v2_0.75|2.65|0.19|1.37|0.19|0.6961|0.8895|\n|MobileNet_v2_0.50|1.98|0.10|0.70|0.09|0.6449|0.8547|\n|MobileNet_v2_0.25|1.53|0.03|0.25|0.03|0.5074|0.7456|\n|SqueezeNet1_0|1.25|0.82|0.74|0.73|0.5611|0.7909|\n|SqueezeNet1_1|1.24|0.35|0.72|0.26|0.5496|0.7817|\n\n**To compare for classification models used as backbone--** \n**\\*Params col shows the number of parameters for models without last several layers.** \n**\\*Multiplication col shows the number of Multiplication for models without last several layers.** \n\n![Parameters](http://hey-yahei.cn/imgs/MXNet-OpSummary/Parameters.jpg)\n\n![Multiplication](http://hey-yahei.cn/imgs/MXNet-OpSummary/Multiplication.jpg) \n\n### TODO\n\n- [ ] Count OPs and parameters for each layer.\n- [ ] Support Symbol model for MXNet. \n- [ ] Support quantized models.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/hey-yahei/OpSummary.MXNet", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "mxop", "package_url": "https://pypi.org/project/mxop/", "platform": "", "project_url": "https://pypi.org/project/mxop/", "project_urls": { "Homepage": "https://github.com/hey-yahei/OpSummary.MXNet" }, "release_url": "https://pypi.org/project/mxop/0.2.0/", "requires_dist": [ "mxnet" ], "requires_python": "", "summary": "A tool to count OPs and paramters of MXNet model.", "version": "0.2.0" }, "last_serial": 4680150, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "0efe7f94a01b9a2823b4d1b74248bb23", "sha256": "e44c03fc15913d49fb02de9f3f26253adc3584a79146c762a64c7c2ac16a00cd" }, "downloads": -1, "filename": "mxop-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0efe7f94a01b9a2823b4d1b74248bb23", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4716, "upload_time": "2019-01-06T06:34:58", "url": "https://files.pythonhosted.org/packages/48/67/25748032d2b14ad8c0fa037baa0ea422b5ef61167d5a6af7a1d915ca74bc/mxop-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "37a4f064e498d1f649f4e01fd8cfb10a", "sha256": "74492cc3fd08067161d17fb2fa7068e0275fd11cfc72ddba511cdf8e00986949" }, "downloads": -1, "filename": "mxop-0.1.0.tar.gz", "has_sig": false, "md5_digest": "37a4f064e498d1f649f4e01fd8cfb10a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3152, "upload_time": "2019-01-06T06:35:02", "url": "https://files.pythonhosted.org/packages/75/38/458815379bdf12f08c034678e51f1978f41d7a46aa5e2d08ee9850405a1d/mxop-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "80c0385d0d3124c28a02cf1471447a45", "sha256": "da62995e2425d15ef93e8180de79e7a0cbb09b866bde1f2adfd26db1b36d14fd" }, "downloads": -1, "filename": "mxop-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "80c0385d0d3124c28a02cf1471447a45", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4819, "upload_time": "2019-01-06T06:47:34", "url": "https://files.pythonhosted.org/packages/d2/51/066073ac58b1a9023066e99b86f7abea3c451c6eb85a865ab0a78903806a/mxop-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "403c67f983ece876a1c142709ffd6c3d", "sha256": "f84086c8e271d4952735560f0d498ce8c98caa74b7cc3c3a35e0a8f5d24f3f08" }, "downloads": -1, "filename": "mxop-0.1.1.tar.gz", "has_sig": false, "md5_digest": "403c67f983ece876a1c142709ffd6c3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3278, "upload_time": "2019-01-06T06:47:35", "url": "https://files.pythonhosted.org/packages/1b/c3/d8ce4d58cc970ecce45755a6de593e963115909433872fec77a01a6aeb72/mxop-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "480f1c16329ee784e183a9337ce09941", "sha256": "266b9600f3ac06930bb17d8462e151e853b4389ebfeac736adcf84cd9b055471" }, "downloads": -1, "filename": "mxop-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "480f1c16329ee784e183a9337ce09941", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4810, "upload_time": "2019-01-06T06:57:19", "url": "https://files.pythonhosted.org/packages/54/2b/2123dabdebc28cefddb3667f409a1978b91ee5b959bc1175601a77416a36/mxop-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c8a1578396d4ac1f21d678a4718829a6", "sha256": "22910304e19c99d8940ba5144cc23c5204af3180822bf514dbfc20f24e756b18" }, "downloads": -1, "filename": "mxop-0.1.2.tar.gz", "has_sig": false, "md5_digest": "c8a1578396d4ac1f21d678a4718829a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3277, "upload_time": "2019-01-06T06:57:20", "url": "https://files.pythonhosted.org/packages/fb/26/4cfe02834b701158c22290558d135489b9436e9eee2f7bfddb506ae315cb/mxop-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b1c969e3d25e5f475a6be058797d610c", "sha256": "3f6752c5f366ab42c5e53526d8001a9b7de5127ad197e6b664e1892bbf68cb8a" }, "downloads": -1, "filename": "mxop-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b1c969e3d25e5f475a6be058797d610c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5875, "upload_time": "2019-01-10T08:19:32", "url": "https://files.pythonhosted.org/packages/89/0b/c15b81c9afb26a780882f6e8691cd96c5552f6701dcefd915886750d9702/mxop-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c0648f6a26f7e98a0b0a33c212dc7537", "sha256": "074ce92428cf53b96621a8425295d6fa3fff9b2539b58e102790d34ea630b2a9" }, "downloads": -1, "filename": "mxop-0.2.0.tar.gz", "has_sig": false, "md5_digest": "c0648f6a26f7e98a0b0a33c212dc7537", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4690, "upload_time": "2019-01-10T08:19:34", "url": "https://files.pythonhosted.org/packages/e7/4e/cd2728594b6d14113deb15223c912ebf2eb29fe68206efdd782e97f51c82/mxop-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b1c969e3d25e5f475a6be058797d610c", "sha256": "3f6752c5f366ab42c5e53526d8001a9b7de5127ad197e6b664e1892bbf68cb8a" }, "downloads": -1, "filename": "mxop-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b1c969e3d25e5f475a6be058797d610c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5875, "upload_time": "2019-01-10T08:19:32", "url": "https://files.pythonhosted.org/packages/89/0b/c15b81c9afb26a780882f6e8691cd96c5552f6701dcefd915886750d9702/mxop-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c0648f6a26f7e98a0b0a33c212dc7537", "sha256": "074ce92428cf53b96621a8425295d6fa3fff9b2539b58e102790d34ea630b2a9" }, "downloads": -1, "filename": "mxop-0.2.0.tar.gz", "has_sig": false, "md5_digest": "c0648f6a26f7e98a0b0a33c212dc7537", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4690, "upload_time": "2019-01-10T08:19:34", "url": "https://files.pythonhosted.org/packages/e7/4e/cd2728594b6d14113deb15223c912ebf2eb29fe68206efdd782e97f51c82/mxop-0.2.0.tar.gz" } ] }