{ "info": { "author": "CyberZHG", "author_email": "CyberZHG@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6" ], "description": "# Keras Position Embedding\n\n[![Travis](https://travis-ci.org/CyberZHG/keras-pos-embd.svg)](https://travis-ci.org/CyberZHG/keras-pos-embd)\n[![Coverage](https://coveralls.io/repos/github/CyberZHG/keras-pos-embd/badge.svg?branch=master)](https://coveralls.io/github/CyberZHG/keras-pos-embd)\n[![Version](https://img.shields.io/pypi/v/keras-pos-embd.svg)](https://pypi.org/project/keras-pos-embd/)\n\n![](https://img.shields.io/badge/keras-tensorflow-blue.svg)\n![](https://img.shields.io/badge/keras-theano-blue.svg)\n![](https://img.shields.io/badge/keras-tf.keras-blue.svg)\n\n\\[[\u4e2d\u6587](https://github.com/CyberZHG/keras-pos-embd/blob/master/README.zh-CN.md)|[English](https://github.com/CyberZHG/keras-pos-embd/blob/master/README.md)\\]\n\nPosition embedding layers in Keras.\n\n## Install\n\n```bash\npip install keras-pos-embd\n```\n\n## Usage\n\n### Trainable Embedding\n\n```python\nimport keras\nfrom keras_pos_embd import PositionEmbedding\n\nmodel = keras.models.Sequential()\nmodel.add(PositionEmbedding(\n input_shape=(None,),\n input_dim=10, # The maximum absolute value of positions.\n output_dim=2, # The dimension of embeddings.\n mask_zero=10000, # The index that presents padding (because `0` will be used in relative positioning).\n mode=PositionEmbedding.MODE_EXPAND,\n))\nmodel.compile('adam', 'mse')\nmodel.summary()\n```\n\nNote that you don't need to enable `mask_zero` if you want to add/concatenate other layers like word embeddings with masks:\n\n```python\nimport keras\nfrom keras_pos_embd import PositionEmbedding\n\nmodel = keras.models.Sequential()\nmodel.add(keras.layers.Embedding(\n input_shape=(None,),\n input_dim=10,\n output_dim=5,\n mask_zero=True,\n))\nmodel.add(PositionEmbedding(\n input_dim=100,\n output_dim=5,\n mode=PositionEmbedding.MODE_ADD,\n))\nmodel.compile('adam', 'mse')\nmodel.summary()\n```\n\n### Sin & Cos Embedding\n\nThe [sine and cosine embedding](https://arxiv.org/pdf/1706.03762) has no trainable weights. The layer has three modes, it works just like `PositionEmbedding` in `expand` mode:\n\n```python\nimport keras\nfrom keras_pos_embd import TrigPosEmbedding\n\nmodel = keras.models.Sequential()\nmodel.add(TrigPosEmbedding(\n input_shape=(None,),\n output_dim=30, # The dimension of embeddings.\n mode=TrigPosEmbedding.MODE_EXPAND, # Use `expand` mode\n))\nmodel.compile('adam', 'mse')\nmodel.summary()\n```\n\nIf you want to add this embedding to existed embedding, then there is no need to add a position input in `add` mode:\n\n```python\nimport keras\nfrom keras_pos_embd import TrigPosEmbedding\n\nmodel = keras.models.Sequential()\nmodel.add(keras.layers.Embedding(\n input_shape=(None,),\n input_dim=10,\n output_dim=5,\n mask_zero=True,\n))\nmodel.add(TrigPosEmbedding(\n output_dim=5,\n mode=TrigPosEmbedding.MODE_ADD,\n))\nmodel.compile('adam', 'mse')\nmodel.summary()\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/CyberZHG/keras-pos-embd", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "keras-pos-embd", "package_url": "https://pypi.org/project/keras-pos-embd/", "platform": "", "project_url": "https://pypi.org/project/keras-pos-embd/", "project_urls": { "Homepage": "https://github.com/CyberZHG/keras-pos-embd" }, "release_url": "https://pypi.org/project/keras-pos-embd/0.11.0/", "requires_dist": null, "requires_python": "", "summary": "Position embedding layers in Keras", "version": "0.11.0" }, "last_serial": 5340921, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "bd5a2cbfbd4c31278e011d983b36752f", "sha256": "9db36544e4f569d152c65880e92bdca98cbcea590fc150bf49ca435503c4b635" }, "downloads": -1, "filename": "keras-pos-embd-0.1.tar.gz", "has_sig": false, "md5_digest": "bd5a2cbfbd4c31278e011d983b36752f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2303, "upload_time": "2018-09-18T09:58:37", "url": "https://files.pythonhosted.org/packages/6f/b6/4b41696eb5c6b06b3ebc1d9741667cc52a88c8f4fff949ae148883d0eec6/keras-pos-embd-0.1.tar.gz" } ], "0.10.0": [ { "comment_text": "", "digests": { "md5": "520c89d986290a1d2fb34c2487026af0", "sha256": "6d20cf8cbdf9f20277c510deb2fa78cc44bc81730de3f3ccf70d9157459a5248" }, "downloads": -1, "filename": "keras-pos-embd-0.10.0.tar.gz", "has_sig": false, "md5_digest": "520c89d986290a1d2fb34c2487026af0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5247, "upload_time": "2019-05-11T08:15:34", "url": "https://files.pythonhosted.org/packages/01/e4/8b8519779d84c412c2c1bbf4637066800c3b04463da059a5d220fa904133/keras-pos-embd-0.10.0.tar.gz" } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "ebd8c5ca7c98c5524c152a3ac89dcdb7", "sha256": "ecb673c62fcabb4beedc88d5a5ecbc20e878010e66445804611a1ba9b23edb7c" }, "downloads": -1, "filename": "keras-pos-embd-0.11.0.tar.gz", "has_sig": false, "md5_digest": "ebd8c5ca7c98c5524c152a3ac89dcdb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5911, "upload_time": "2019-05-31T03:48:45", "url": "https://files.pythonhosted.org/packages/09/70/b63ed8fc660da2bb6ae29b9895401c628da5740c048c190b5d7107cadd02/keras-pos-embd-0.11.0.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "fc1fbdb53a1251af05a64136e14b45e8", "sha256": "29f4d7c8745b67c68837be5e35984bb9e18b4d672c89a10ff70b4d8bac640d8e" }, "downloads": -1, "filename": "keras-pos-embd-0.2.tar.gz", "has_sig": false, "md5_digest": "fc1fbdb53a1251af05a64136e14b45e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2556, "upload_time": "2018-09-18T10:07:32", "url": "https://files.pythonhosted.org/packages/d8/7a/3caa885102540d951b756d0060f570275f93c64212c3aa1c21ce03f807d7/keras-pos-embd-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "f97ac441b485fce6f6893c912a70569e", "sha256": "0bd8bfcaddfa2b7a0df36be76a511785ec39a4a162ca04d2452495d774872bd7" }, "downloads": -1, "filename": "keras-pos-embd-0.3.tar.gz", "has_sig": false, "md5_digest": "f97ac441b485fce6f6893c912a70569e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2577, "upload_time": "2018-09-18T10:47:19", "url": "https://files.pythonhosted.org/packages/1f/85/c200eb2adbc77ad8bc7e1bbbb061a82dbad3482b13dbb92fefc5b14e139b/keras-pos-embd-0.3.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "957f0384a36a60242ebf8338f6e159f2", "sha256": "4ff85d13375f8cb330bc7e28d4b8168869ac11d1c66d0fd5912e0208b6617d78" }, "downloads": -1, "filename": "keras-pos-embd-0.4.0.tar.gz", "has_sig": false, "md5_digest": "957f0384a36a60242ebf8338f6e159f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4350, "upload_time": "2018-11-09T03:58:34", "url": "https://files.pythonhosted.org/packages/18/d4/32d64503d383b6f91367c6e0bdc4b7ec7e834f47641f67b48445acd0957d/keras-pos-embd-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "347e42ec772f0f7d453cee374882fb81", "sha256": "c0470741cb9bac9038fed16ea04f0f5382b79de0c83c856c35acd2f76aedf81d" }, "downloads": -1, "filename": "keras-pos-embd-0.5.0.tar.gz", "has_sig": false, "md5_digest": "347e42ec772f0f7d453cee374882fb81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4524, "upload_time": "2018-11-12T08:13:39", "url": "https://files.pythonhosted.org/packages/77/90/8b94739dbf516f5c4241022b197dc2c38a2b345bfcaa6ba8ff8bcea1f320/keras-pos-embd-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "d928248be46cbbbf0fde14eb0be89af2", "sha256": "3514d8359d98e4a84d0be92eb0faa8097af5b04105ebcc9fae7b065d9c2d3a12" }, "downloads": -1, "filename": "keras-pos-embd-0.6.0.tar.gz", "has_sig": false, "md5_digest": "d928248be46cbbbf0fde14eb0be89af2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4792, "upload_time": "2018-11-14T07:57:20", "url": "https://files.pythonhosted.org/packages/45/e3/8b98e6600e3dd4a363230d1350b862d38f8aa13abb9ea8b194bb63e3a038/keras-pos-embd-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "9a89d718f5bb9ed4db71683bdf6d684e", "sha256": "b0e080339dffac9a2c8d8e1441e4c33bd9d53e153bd63767bd63e7c34d8fd093" }, "downloads": -1, "filename": "keras-pos-embd-0.7.0.tar.gz", "has_sig": false, "md5_digest": "9a89d718f5bb9ed4db71683bdf6d684e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4881, "upload_time": "2019-02-01T03:13:46", "url": "https://files.pythonhosted.org/packages/5f/73/74039cbc1d5373718475c718da7e5e8efbf4800cb49b8f6f4561f7a815d9/keras-pos-embd-0.7.0.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "cb270531c417342d6b3b17a6f08eb1c7", "sha256": "f53f37c4deaaef6707fa721dbdd04eb324e0441753056c00eb9404ca1228afca" }, "downloads": -1, "filename": "keras-pos-embd-0.8.0.tar.gz", "has_sig": false, "md5_digest": "cb270531c417342d6b3b17a6f08eb1c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4886, "upload_time": "2019-03-11T06:42:39", "url": "https://files.pythonhosted.org/packages/09/7b/fbb75fd0ab68f9728c1bff197a2cbc5a9a3874af27d44023f92fa32cb12c/keras-pos-embd-0.8.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "c0d9bf4c983a5dac32ffbae336da1702", "sha256": "8fed65bc2b0ccde8f252aa45021be8177ba9bebea82c717531d4864d9df1bd42" }, "downloads": -1, "filename": "keras-pos-embd-0.9.0.tar.gz", "has_sig": false, "md5_digest": "c0d9bf4c983a5dac32ffbae336da1702", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4889, "upload_time": "2019-04-16T08:53:10", "url": "https://files.pythonhosted.org/packages/56/5e/7b1e933104a25f2039b6788e392a650671e3bcbee6404ea29dcb92295614/keras-pos-embd-0.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ebd8c5ca7c98c5524c152a3ac89dcdb7", "sha256": "ecb673c62fcabb4beedc88d5a5ecbc20e878010e66445804611a1ba9b23edb7c" }, "downloads": -1, "filename": "keras-pos-embd-0.11.0.tar.gz", "has_sig": false, "md5_digest": "ebd8c5ca7c98c5524c152a3ac89dcdb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5911, "upload_time": "2019-05-31T03:48:45", "url": "https://files.pythonhosted.org/packages/09/70/b63ed8fc660da2bb6ae29b9895401c628da5740c048c190b5d7107cadd02/keras-pos-embd-0.11.0.tar.gz" } ] }