{ "info": { "author": "hsz", "author_email": "hsz1273327@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Documentation :: Sphinx" ], "description": "\r\nkeras-attention-block\r\n===============================\r\n\r\n* version: 0.0.2\r\n\r\n* status: dev\r\n\r\n* author: hsz\r\n\r\n* email: hsz1273327@gmail.com\r\n\r\nDesc\r\n--------------------------------\r\n\r\nkeras-attention-block is an extension for keras to add attention. It was born from lack of existing function to add attention inside keras.\r\nThe module itself is pure Python with no dependencies on modules or packages outside the standard Python distribution and keras.\r\n\r\n\r\n\r\nkeywords:keras,deeplearning,attention\r\n\r\n\r\nFeature\r\n----------------------\r\n\r\n* support one dimensional attention, that is to take in inputs whose dimensions are batch_size * time_step * hidden_size\r\n* support two dimensional attention, that is to take in inputs of dimensions are batch_size * X * Y * hidden_size\r\n* support self-attention, that is to take in tensors. Four well defined calculations are included : additive, multiplicative, dot-product based and as well as linear.\r\n* support attention, that is to take in two tensors. Three well defined calculations are included : additive, multiplicative and dot product based.\r\n* support attention. Three well defined calculations are included : additive, multiplicative and dot product based.\r\n* support multihead attention\r\n* support customized calculations of similarity between Key and Query\r\n* support customized calculations of Value\r\n\r\nExample\r\n-------------------------------\r\n\r\n.. code:: python\r\n\r\n from keras.layers import merge\r\n from keras.layers.core import *\r\n from keras.layers.recurrent import LSTM\r\n from keras.layers import Convolution2D\r\n from keras.models import *\r\n from keras.layers.normalization import BatchNormalization\r\n from keras_attention_block import *\r\n\r\n INPUT_DIM = 32\r\n TIME_STEPS = 20\r\n SINGLE_ATTENTION_VECTOR = False\r\n APPLY_ATTENTION_BEFORE_LSTM = False\r\n\r\n inputs = Input(shape=(TIME_STEPS, INPUT_DIM))\r\n attention_mul = SelfAttention1DLayer(similarity=\"linear\",dropout_rate=0.2)(inputs)#MyLayer((20,32))(inputs)#\r\n lstm_units = 32\r\n #attention_mul = LSTM(lstm_units, return_sequences=False)(attention_mul)\r\n attention_mul = Flatten()(attention_mul)\r\n output = Dense(1, activation='sigmoid')(attention_mul)\r\n m = Model(inputs=[inputs], outputs=output)\r\n\r\n m.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])\r\n print(m.summary())\r\n\r\n train_data = np.random.random((1000,20,32))\r\n train_lab = np.random.randint(0,2,1000)\r\n m.fit(train_data,train_lab , epochs=1, batch_size=100 )\r\n\r\n\r\n\r\n\r\nInstall\r\n--------------------------------\r\n\r\n- ``python -m pip install keras_attention_block``\r\n\r\n\r\nDocumentation\r\n--------------------------------\r\n\r\n`Documentation on Readthedocs `_.\r\n\r\n\r\n\r\nTODO\r\n-----------------------------------\r\n* 3D attention\r\n\r\n\r\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/NLP-Deeplearning-Club/keras_attention_block/", "keywords": "keras", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "keras_attention_block", "package_url": "https://pypi.org/project/keras_attention_block/", "platform": "", "project_url": "https://pypi.org/project/keras_attention_block/", "project_urls": { "Homepage": "https://github.com/NLP-Deeplearning-Club/keras_attention_block/" }, "release_url": "https://pypi.org/project/keras_attention_block/0.0.2/", "requires_dist": null, "requires_python": "", "summary": "simple tools", "version": "0.0.2" }, "last_serial": 3440074, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "395e29d94d484900c7455ead54ab8d66", "sha256": "8a0240aabc09b10f5b4466995e4f06a45b4c668d705147c006ec95a96c8f116d" }, "downloads": -1, "filename": "keras_attention_block-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "395e29d94d484900c7455ead54ab8d66", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12555, "upload_time": "2017-12-21T15:01:03", "url": "https://files.pythonhosted.org/packages/a7/a4/828a700a5eab28b1c5f8da9d7d25f8252f0f46e483f5f5f8279a27cc0cd3/keras_attention_block-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77385300bbb1b96b15c4808a0aaf87df", "sha256": "2dc8c12cf0fade431c254c4d0a9c75076c3f569cf9693ab92a194a419308889f" }, "downloads": -1, "filename": "keras_attention_block-0.0.1.tar.gz", "has_sig": false, "md5_digest": "77385300bbb1b96b15c4808a0aaf87df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7231, "upload_time": "2017-12-21T15:00:59", "url": "https://files.pythonhosted.org/packages/46/b1/53c34fea258ee96a754fc828a9d07fa4294413126a7b0f35046b344f724a/keras_attention_block-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "7dbfe2466d12d702b3677a05d770ddec", "sha256": "0fed55018ba5c51523d257c5a3a383020879ad42b48687a22be3fe9d9b8ac370" }, "downloads": -1, "filename": "keras_attention_block-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7dbfe2466d12d702b3677a05d770ddec", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 18881, "upload_time": "2017-12-24T06:06:43", "url": "https://files.pythonhosted.org/packages/7f/ba/e2869c827348e609a5bff3eb9b2078ff5c52e5fa7a1f33af96800c5d6778/keras_attention_block-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1f7b29f95d3b314e0e52bcf775d41c28", "sha256": "eefc3dbe925bc4faac225405c3b29daf0699f51174011fac9dd3e2e097a70338" }, "downloads": -1, "filename": "keras_attention_block-0.0.2.tar.gz", "has_sig": false, "md5_digest": "1f7b29f95d3b314e0e52bcf775d41c28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9704, "upload_time": "2017-12-24T06:06:40", "url": "https://files.pythonhosted.org/packages/33/d1/1115a726281f49e3bf5c38b65b788485a133cdcb78d1230918e766738b89/keras_attention_block-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7dbfe2466d12d702b3677a05d770ddec", "sha256": "0fed55018ba5c51523d257c5a3a383020879ad42b48687a22be3fe9d9b8ac370" }, "downloads": -1, "filename": "keras_attention_block-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7dbfe2466d12d702b3677a05d770ddec", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 18881, "upload_time": "2017-12-24T06:06:43", "url": "https://files.pythonhosted.org/packages/7f/ba/e2869c827348e609a5bff3eb9b2078ff5c52e5fa7a1f33af96800c5d6778/keras_attention_block-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1f7b29f95d3b314e0e52bcf775d41c28", "sha256": "eefc3dbe925bc4faac225405c3b29daf0699f51174011fac9dd3e2e097a70338" }, "downloads": -1, "filename": "keras_attention_block-0.0.2.tar.gz", "has_sig": false, "md5_digest": "1f7b29f95d3b314e0e52bcf775d41c28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9704, "upload_time": "2017-12-24T06:06:40", "url": "https://files.pythonhosted.org/packages/33/d1/1115a726281f49e3bf5c38b65b788485a133cdcb78d1230918e766738b89/keras_attention_block-0.0.2.tar.gz" } ] }