在这个地方整蒙了,W1和W2这俩是矩阵的标记,但是后面只有个Tr-1和Cr-1,我????

实际上,1 x Tr-1这种表示,即可以是向量也可以是矩阵呀,没有问题,往下理解是向量,往上理解就是矩阵,

其次,W1与 做运算是将W1当作Tr-1 × 1的矩阵进行运算,而W3和 运算是将其当成1 × Cr-1进行运算,我们可以看到W1和W3是都是用的R^(?)的形式表示的矩阵,但是运算时候却不一样,敲黑板了!这就是我整蒙圈的地方,你想R^(?)是个欧几里得空间,1×Cr-1和Cr-1 × 1都是R^Cr-1的欧几里得空间,因此R^(?)这个东西我们是根据运算可以实时调整它是1 x c还是c x 1的!

接下来就是R^(N x Cr-1 x Tr-1),这个???这咋个运算哦?

敲黑板!这种高维的,我们以低维的眼光去分解他,看成N个Cr-1 x Tr-1的矩阵,那么W3与分别与N个相乘,那么自然就得到了N个1 x Tr-1的矩阵,再写成R就是R^(N x Tr-1)了。再转置一下,右边W3的计算结果就是一个R^(Tr-1 x N)的值

好!那么代码里面怎么搞得呢?先上代码:

# defer the shape of paramsself.W_1.shape = (num_of_timesteps, )  #对标初始化的时间长度self.W_2.shape = (num_of_features, num_of_timesteps)   #特征数目 x 时间长度self.W_3.shape = (num_of_features, )self.b_s.shape = (1, num_of_vertices, num_of_vertices)self.V_s.shape = (num_of_vertices, num_of_vertices)for param in [self.W_1, self.W_2, self.W_3, self.b_s, self.V_s]:param._finish_deferred_init()    #完成模块的初始化# compute spatial attention scores# shape of lhs is (batch_size, V, T)lhs = nd.dot(nd.dot(x, self.W_1.data()), self.W_2.data())  #lhs式子左部# shape of rhs is (batch_size, T, V)#之所以x是四维的是因为批处理的问题,batch_size=10意思是10个样本同时进行计算。x的维度是10 x V x features x Trhs = nd.dot(self.W_3.data(), x.transpose((2, 0, 3, 1)))product = nd.batch_dot(lhs, rhs)S = nd.dot(self.V_s.data(),nd.sigmoid(product + self.b_s.data()).transpose((1, 2, 0))).transpose((2, 0, 1))

诶?这里面咋有多了一维?啥情况,原因是我们训练是一个batch一个batch训练的

那么这里面咋没有 .T的转置操作呢?讲解

一开始batch_size x N x C x T,那么你当然可以直接算,然后再来个转置,最终能够满足Tr-1 x N的结果,但如果你先对这个高维的矩阵进行一下transpose的变化,变换成C x batch x T x N这个形式再和W3运算,就可以直接得到T x N就不用做转置了。类似于上面三维的情况,C x batch x T x N做运算的时候看成C x  1的矩阵,里面的1是batch x T x N,然后就成了batch x T x N,因为batch是训练用的,其实就是Tr-1 x N了

参考资料:Attention Based Spatial-Temporal Graph Convolutional Networks for Traffic Flow Forecasting 2020.AAAI

https://github.com/wanhuaiyu/ASTGCN

忘了 忘了,以前学的矩阵知识全交给老师了,敲黑板了,矩阵乘法实例讲解相关推荐

  1. 低秩矩阵补全算法matlab实现,推荐系统中的矩阵补全算法

    最基本的问题,以用户电影评分为例,也就是这个用户-电影矩阵. 表中是用户多电影的评分,但评分有缺失,因为用户不可能对所有电影作出评价. 那么推荐问题就是给用户合理推荐一个没看过的电影,合理是指,预测用 ...

  2. 想爱,爱不了,想恨,恨不下,想忘,忘不了

    总有那么个人,.想爱,爱不了 总有那么个人,想恨,恨不下 总有那么个人,想留,却留不住 总有那么个人,想放,却放不下 有的.有的.有的... 有的人,爱过了,就分开了 有的话,说过了,就后悔了 有道伤 ...

  3. 矩阵转置算法 oracle,请编写程序fun,函数的功能是:实现B=A+Aˊ,即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main函...

    请编写程序fun,函数的功能是:实现B=A+Aˊ,即把矩阵A加上A的转置,存放在矩阵B中.计算结果在main函 更多相关问题 假定砌块对孔砌筑,孔内不灌实混凝土,柱头全截面设一预制刚性垫块,且梁端有效 ...

  4. ker矩阵是什么意思_重做第一次作业(矩阵)

    doc 函数名 输进命令行窗口 可以查看官方帮助,但是是英文的--得搭配翻译软件 Clc clear每次写程序前 一个是擦黑板(清空命令行窗口)一个是清除所有变量 clf 画图前,用于清除所有图片 什 ...

  5. python将list转为矩阵_python list转矩阵的实例讲解

    python list转矩阵的实例讲解 如下所示: #list转矩阵,矩阵列合并 x = [[1.2,2.2,1.4],[1.3,2.4,2.1],[1,1,0]] #表示有三个点,第一个点为(1,2 ...

  6. java 学到什么实习_我如何获得外展实习机会以及到目前为止所学到的知识

    java 学到什么实习 by Nguedia Adele 由Nguedia Adele 我如何获得外展实习机会以及到目前为止所学到的知识 (How I got my Outreachy interns ...

  7. 服务器部署基础知识_我在生产部署期间学到的知识

    服务器部署基础知识 by Shruti Tanwar 通过Shruti Tanwar 我在生产部署期间学到的知识 (What I learned during production deploymen ...

  8. R语言使用caret包的confusionMatrix函数计算混淆矩阵、使用编写的自定义函数可视化混淆矩阵(confusion matrix)

    R语言使用caret包的confusionMatrix函数计算混淆矩阵.使用编写的自定义函数可视化混淆矩阵(confusion matrix) 目录

  9. DeepMind发69页长文掀开AlphaZero的黑盒:神经网络学到的知识和人类基本相似!

    来源:新智元 本文约2400字,建议阅读10+分钟 AlphaZero下棋和人类下棋究竟有什么区别?是否掌握了一些人类未曾了解过的知识? [ 导读 ] AlphaZero下棋和人类下棋究竟有什么区别? ...

  10. matlab 定义矩阵_MATLAB与Python,Mathematica由高维转化一维矩阵的方式的不同

    在进行数据处理的时候,我比较喜欢的数据存储方式是所有的数据都保存成MATLAB的".mat"文件,这种格式Python,Mathematica,MATLAB都会支持.不过在转化的时 ...

最新文章

  1. 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | 在 Flutter 端实现 BasicMessageChannel 通信 )
  2. 钉钉宜搭邀您体验全新升级的数据管理页
  3. Win7运行QQ2010提示“应用程序无法启动”,因为应用程序的并行配置不正确
  4. python办公代码_[Python] 自动化办公 docx操作Word基础代码
  5. python写自动化工具_微软最强 Python 自动化工具开源了!不用写一行代码!
  6. leetcode934.ShortestBridge
  7. pycharm shortcuts
  8. python控制svn_jenkins+svn+python的使用
  9. 适配器模式/adapter模式/结构型模式
  10. 计算机画布模式,商业模式画布基础知识
  11. 大学python教材电子版下载_Python数据分析基础(全国高等院校应用型创新规划教材·计算机系列)...
  12. 用 Python 自动定时发微博
  13. 一位射频技术支持工程师的工作感悟
  14. 计算机图形学的边表教学ppt,计算机图形学(多边形的扫描转换).ppt
  15. SM2证书的鉴定方法
  16. Unity5.3官方VR教程重磅登场-系列4 VR中的用户界面
  17. 适配器模式实战场景和本质
  18. hadoop上运行java版本_Hadoop--3.JDK1.7安装配置
  19. python在两行中分别输入一个字符串s和整数n,定义一个函数将字符串s循环向右移动n位
  20. 隐藏计划任务反弹shell

热门文章

  1. MATLAB数值计算笔记
  2. Math,Number
  3. jenkins 管理员账号丢失
  4. PICT的安装及使用
  5. android自定义布局中的平滑移动
  6. silverlight打开和保存文件
  7. UITableView方法详解
  8. SQL查看存储过程相关信息
  9. url-pattern主要有四种匹配方式
  10. 语句删除数据库表中有默认字段值的字段