{ "info": { "author": "Ahmed F. Gad", "author_email": "ahmed.f.gad@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "Convolutional neural network implementation using NumPy.\nJust three layers are created which are convolution (conv for short), ReLU, and max pooling.\nThe major steps involved are as follows:\n\n1. Reading the input image.\n\n2. Preparing filters.\n\n3. Conv layer: Convolving each filter with the input image.\n\n4. ReLU layer: Applying ReLU activation function on the feature maps (output of conv layer).\n\n5. Max Pooling layer: Applying the pooling operation on the output of ReLU layer.\n\n6. Stacking conv, ReLU, and max pooling layers\n\n\n\nThe project is tested using Python 3.5.2 installed inside Anaconda 4.2.0 (64-bit)\nNumPy version used is 1.14.0\n\n\n\nThe file named **example.py** is an example of using the project.\n\nThe code starts by reading an input image. That image can be either single or multi-dimensional image.\nIn this examplel, an input gray is used and this is why it is required to ensure the image is already gray.\n\n\n\nThe filters of the first conv layer are prepared according to the input image dimensions. The filter is created by specifying the following:\n\n1) Number of filters.\n\n2) Size of first dimension.\n\n3) Size of second dimension.\n4) Size of third dimension and so on.\n\n\nBecause the previous image is just gray, then the filter will have just width and height and no depth. That is why it is created by specifying just three numbers (number of filters, width, and height). \n\nThe code can still work with RGb images. The only difference is using filters of similar shape to the image. If the image is RGB and not converted to gray, then the filter will be created by specifying 4 numbers (number of filters, width, height, and number of channels).\n\n------------------------------\n\n\n\nFor more details, refer to the article describing this project which is titled \"Building Convolutional Neural Network using NumPy from Scratch\". It is available in these links:\n\nLinkedIn: https://www.linkedin.com/pulse/building-convolutional-neural-network-using-numpy-from-ahmed-gad/\n\nKDnuggets: https://www.kdnuggets.com/2018/04/building-convolutional-neural-network-numpy-scratch.html\nIt is also translated into Chinese: http://m.aliyun.com/yunqi/articles/585741\n\n------------------------------\n\n\n\n\n\nContact the author:\n\nKDnuggets: https://www.kdnuggets.com/author/ahmed-gad\nLinkedIn: https://www.linkedin.com/in/ahmedfgad\n\nFacebook: https://www.facebook.com/ahmed.f.gadd\n\nahmed.f.gad@gmail.com\nahmed.fawzy@ci.menofia.edu.eg\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/ahmedfgad/NumPyCNN", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "numpycnn", "package_url": "https://pypi.org/project/numpycnn/", "platform": "", "project_url": "https://pypi.org/project/numpycnn/", "project_urls": { "Homepage": "https://github.com/ahmedfgad/NumPyCNN" }, "release_url": "https://pypi.org/project/numpycnn/1.7/", "requires_dist": null, "requires_python": "", "summary": "Building CNN from Scratch using NumPy", "version": "1.7" }, "last_serial": 3895774, "releases": { "1.7": [ { "comment_text": "", "digests": { "md5": "afba18b0110c2105544adbad0a691b98", "sha256": "7d0e90ad38ca6aad29b885eef903af4ab2dc81fa05abe4de51a5f94c1c83fc0c" }, "downloads": -1, "filename": "numpycnn-1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "afba18b0110c2105544adbad0a691b98", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5797, "upload_time": "2018-05-24T15:42:11", "url": "https://files.pythonhosted.org/packages/77/fc/bca648b339effddf3df4fc8f53b8725f516b31ed00ddbd6c67cf89cf2231/numpycnn-1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2a106f80638a79fb8c843669852bb687", "sha256": "deb93d90b8955756c0d51face066a51c9547ac8fb857b2d64675fe6ffa6291b8" }, "downloads": -1, "filename": "numpycnn-1.7.tar.gz", "has_sig": false, "md5_digest": "2a106f80638a79fb8c843669852bb687", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4673, "upload_time": "2018-05-24T15:42:14", "url": "https://files.pythonhosted.org/packages/5a/a7/9cd52d60331836bb9373a734b42f1f73c82cb374fd0ae40ef9d159387783/numpycnn-1.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "afba18b0110c2105544adbad0a691b98", "sha256": "7d0e90ad38ca6aad29b885eef903af4ab2dc81fa05abe4de51a5f94c1c83fc0c" }, "downloads": -1, "filename": "numpycnn-1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "afba18b0110c2105544adbad0a691b98", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5797, "upload_time": "2018-05-24T15:42:11", "url": "https://files.pythonhosted.org/packages/77/fc/bca648b339effddf3df4fc8f53b8725f516b31ed00ddbd6c67cf89cf2231/numpycnn-1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2a106f80638a79fb8c843669852bb687", "sha256": "deb93d90b8955756c0d51face066a51c9547ac8fb857b2d64675fe6ffa6291b8" }, "downloads": -1, "filename": "numpycnn-1.7.tar.gz", "has_sig": false, "md5_digest": "2a106f80638a79fb8c843669852bb687", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4673, "upload_time": "2018-05-24T15:42:14", "url": "https://files.pythonhosted.org/packages/5a/a7/9cd52d60331836bb9373a734b42f1f73c82cb374fd0ae40ef9d159387783/numpycnn-1.7.tar.gz" } ] }