简单工具

keras_attention_block的Python项目详细描述


说明

路缘石注意块是路缘石增加注意的延伸。它是由于缺乏现有的功能而引起的。 模块本身是纯python,不依赖于标准python发行版和keras之外的模块或包。

关键词:Keras、深度学习、注意力

功能

  • 支持一维注意,即输入的维度为批量大小*时间步长*隐藏大小
  • 支持二维注意,即输入的维度都是批量大小*x*y*隐藏大小
  • 支持自我注意,也就是接受张力。包括四种定义明确的计算:加法、乘法、点积和线性。
  • 支持注意,即接受两个张量。包括三种定义明确的计算:加法、乘法和基于点积的计算。
  • 支持关注。包括三种定义明确的计算:加法、乘法和基于点积的计算。
  • 支持多头注意
  • 支持自定义键和查询之间的相似度计算
  • 支持自定义的值计算

示例

fromkeras.layersimportmergefromkeras.layers.coreimport*fromkeras.layers.recurrentimportLSTMfromkeras.layersimportConvolution2Dfromkeras.modelsimport*fromkeras.layers.normalizationimportBatchNormalizationfromkeras_attention_blockimport*INPUT_DIM=32TIME_STEPS=20SINGLE_ATTENTION_VECTOR=FalseAPPLY_ATTENTION_BEFORE_LSTM=Falseinputs=Input(shape=(TIME_STEPS,INPUT_DIM))attention_mul=SelfAttention1DLayer(similarity="linear",dropout_rate=0.2)(inputs)#MyLayer((20,32))(inputs)#lstm_units=32#attention_mul = LSTM(lstm_units, return_sequences=False)(attention_mul)attention_mul=Flatten()(attention_mul)output=Dense(1,activation='sigmoid')(attention_mul)m=Model(inputs=[inputs],outputs=output)m.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy'])print(m.summary())train_data=np.random.random((1000,20,32))train_lab=np.random.randint(0,2,1000)m.fit(train_data,train_lab,epochs=1,batch_size=100)

安装

  • python -m pip install keras_attention_block

待办事项

  • 三维注意力

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java不支持org。阿帕奇。平民数学3。分配二元分布(1,p)`会带来很多性能开销吗?   java Android开发人员新手无法在模拟器中启动代码   显示不同版本的java版本和javac版本   java在这种情况下如何使用Spring和Hibernate正确更新对象?   java改变了我整个安卓 studio应用程序的主题   java在LIBGDX中生成可执行Jar文件   mysql对sql结果进行排序,并在java中通过循环在表中显示所有结果   swing如何在java中的textArea中新添加的文本末尾自动显示插入符号?   java需要验证时间,但会不断遇到问题   java像字符串一样拆分“数组”   java Apache Camel:具有属性和属性占位符的RecipientList不起作用   java中的文件子目录和主目录监视   java这样使用Spring规范谓词安全吗?   带Eclipselink的java Oracle 12c标识列   java为什么我在socket inputstream中遇到奇怪的字符   java Hibernate+swing检查登录/密码   java Log4j如何仅禁用致命条目   会话失效后找到的java数据   MySql查询:如何使用MySql和java同时执行两个查询?