IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> tf.keras.layers.Attention 理解总结 -> 正文阅读

[人工智能]tf.keras.layers.Attention 理解总结

官方链接:https://tensorflow.google.cn/versions/r2.1/api_docs/python/tf/keras/layers/Attention

tf.keras.layers.Attention(
? ? use_scale=False, **kwargs
)

Inputs are?query?tensor of shape?[batch_size, Tq, dim],?value?tensor of shape?[batch_size, Tv, dim]?and?key?tensor of shape?[batch_size, Tv, dim]. The calculation follows the steps:

  1. Calculate scores with shape?[batch_size, Tq, Tv]?as a?query-key?dot product:?scores = tf.matmul(query, key, transpose_b=True).
  2. Use scores to calculate a distribution with shape?[batch_size, Tq, Tv]:?distribution = tf.nn.softmax(scores).
  3. Use?distribution?to create a linear combination of?value?with shape?batch_size, Tq, dim]:?return tf.matmul(distribution, value).

例子1

import tensorflow as tf
import numpy as np

query = tf.convert_to_tensor(np.asarray([[[1., 1., 1., 3.]]]))

key_list = tf.convert_to_tensor(np.asarray([[[1., 1., 2., 4.], [4., 1., 1., 3.], [1., 1., 2., 1.]],
                                            [[1., 0., 2., 1.], [1., 2., 1., 2.], [1., 0., 2., 1.]]]))

query_value_attention_seq = tf.keras.layers.Attention()([query, key_list])

print('query shape:', query.shape)
print('key shape:', key_list.shape)

print('result 1:',query_value_attention_seq)

结果:

query shape: (1, 1, 4)
key shape: (2, 3, 4)
result 1: tf.Tensor(
[[[1.8067516  1.         1.7310829  3.730812  ]]

 [[0.99999994 1.9293262  1.0353367  1.9646629 ]]], shape=(2, 1, 4), dtype=float32)

根据文档中提到步骤自己实现

scores = tf.matmul(query, key_list, transpose_b=True)

distribution = tf.nn.softmax(scores)

result = tf.matmul(distribution, key_list)
print('result 2:',query_value_attention_seq)

结果如下:可以看到结果是和我们理解的一样的

result 2: tf.Tensor(
[[[1.8067516  1.         1.7310829  3.730812  ]]

 [[0.99999994 1.9293262  1.0353367  1.9646629 ]]], shape=(2, 1, 4), dtype=float32)

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-06 11:07:54  更:2021-09-06 11:08:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 16:31:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码