#------------------------------------------序-------------------------------------------------------
这篇博文是对[1]中的Rop以及Lop代码进行详细解释.
因为[1]中代码变量名称和数学表达式名称不对应,所以记录下,方便以后一看就懂
[1]的代码来自[2],[2]里面是有错误的,所以在这篇博客里面进行更正

代码运行环境:
python3.6.7
ubuntu18.10-amd64
#-----------------------------------Rop例子如下----------------------------------------------------------

import theano
import numpy as np
import theano.tensor as T
W = T.dmatrix('W')
V = T.dmatrix('V')
x = T.dvector('x')#-----------------------------------------------f = T.dot(x, W)
JV = T.Rop(f, W, V)
result = theano.function([W, V, x], JV)
result2=result([[1, 1.2], [2.1, 1]], #W[[3.2, 2], [5.4, 2]], #V[0.7,1.9])#x
print("result=",result2)
display(Image(theano.printing.pydotprint(result,return_image=True, var_with_name_simple=True)))

result= [12.5 5.2]
运行结果如下:

理论分析:
f=w⋅xf=w·xf=w⋅x
这个代码求解的是:
∂f∂W⋅V\frac{\partial f}{\partial W}·V∂W∂f​⋅V

#----------------------------------------------------------Lop例子如下------------------------------------------------------------------

import theano
import numpy as np
import theano.tensor as T
from IPython.display import Image
from IPython.display import display
W = T.dmatrix('W')
V = T.dmatrix('V')
x = T.dvector('x')#--------------------------------------------------------------------------------------------
f = T.dot(x,W)
VJ = T.Lop(f,W,V)
result= theano.function([V,x], VJ)
V,x=[[3.2, 2], [5.4, 2]],[0.7,1.9]
result2=result([[3.2, 2], [5.4, 2]], #V[0.7,1.9])#x
print("V=",V)
print("x=",x)
print("result=",result2)
display(Image(theano.printing.pydotprint(result,return_image=True, var_with_name_simple=True)))#--------------------------------------------------------------------------------------------

运行结果是:
V= [[3.2, 2], [5.4, 2]]
x= [0.7, 1.9]
result= [[ 2.24 1.4 3.78 1.4 ]
[ 6.08 3.8 10.26 3.8 ]]

这个代码求解的是:

(VT⋅x)T(V^T·x)^T(VT⋅x)T
=xT⋅V=x^T·V=xT⋅V
=[0.71.9][3.2,2,5.4,2]=\left[ \begin{matrix} 0.7\\ 1.9 \\ \end{matrix} \right]\left[ \begin{matrix} 3.2,2,5.4,2 \end{matrix} \right] =[0.71.9​][3.2,2,5.4,2​]
这里的V是打散后的V
所以根本就不是我们想象中的"左乘"

Reference:
[1]https://www.cnblogs.com/fireae/p/3772670.html

theano中的Rop和Lop的详细解释相关推荐

  1. Linux系统中一些目录和文件的详细解释(参照RHEL5.4)

    linux有四种基本文件系统类型: –普通文件:如文本文件.c语言源代码.shell脚本等,可以用cat.less.more.vi等来察看内容,用mv来改名: –目录文件:包括文件名.子目录名及其指针 ...

  2. USB3.0中的8/10b编码技术详细解释

    USB3.0在Physical layer中定义了超速USB的信号传输技术,在其中最关键的就是引入了8/10b编码技术,如下图中的红色部分. 8/10b编码和解码的的流程如下图所示,在编码时将ABCD ...

  3. vue中render: h = h(App)的详细解释

    2018年06月20日 10:54:32 H-L 阅读数 5369 render: h => h(App) 是下面内容的缩写: render: function (createElement) ...

  4. scala中的算术符重载代码详细解释

    overload_exercise.scala代码如下: object Overload_Exercise extends Serializable { //--------------------- ...

  5. vue中组件的导出导入_5.2 vue中 keep-alive 组件的作用,详细解释keep-alive使用方法...

    问题:vue中 keep-alive 组件的作用 keep-alive:主要用于保留组件状态或避免重新渲染. 比如: 有一个列表页面和一个 详情页面,那么用户就会经常执行打开详情=>返回列表=& ...

  6. Python numpy中的hsplit()和vsplit()函数详细解释

    在网上看到了一些关于vsplit()函数和hsplit()函数的解释,感觉不是很好理解, 同时有的也不是很全面.这里我想根据我的个人理解,用我自己的语言表达出这两个函数的解释. hsplit():按列 ...

  7. slam入门3:2D-2D对极几何中的对极约束公式详细解释(参考 视觉slam十四讲)

    声明:下面一些内容引用了高翔的视觉slam十四讲, 感谢作者. 对于我这种刚入门的小白(cai bi)来说,对极约束公式中的某些步骤理解起来还是有些难度的,下面把个人对相关内容的理解写下来,以备日后翻 ...

  8. 【theano-windows】学习笔记三——theano中的导数

    前言 就一个NN而言,包含梯度.偏置.参数更新,而前面第一篇博客学习了theano中符号变量的定义, 第二篇博客学习了变量的随机初始化, 变量之间的互相操作(类似于sigmoid(w∗x+b)sigm ...

  9. Theano 中文文档 0.9 - 7.2.3 Theano中的导数

    7.2.3 Theano中的导数 译者:Python 文档协作翻译小组,原文:Derivatives in Theano. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出 ...

最新文章

  1. linux的每次IO大小控制,linux文件io缓冲
  2. java.io包有哪些方法_java.io包下常用类及常用方法介绍
  3. linux crond命令
  4. 计算机语言表示教师节快乐,表达教师节快乐的微信祝福语大汇总54句
  5. 如何在 ASP.NET MVC 中集成 AngularJS(2)
  6. 软件工程学习笔记《二》代码规范
  7. 苹果cmsv10自适应卡通动漫番剧模板
  8. Crontab 计划任务
  9. Android手机安全性测试手段
  10. 第3章 控制程序流程(1)
  11. C# Dictionary 的几种遍历方法
  12. [android] fragment的动态创建
  13. 锁定计算机和睡眠有什么区别,电脑的睡眠和休眠选项有什么区别?怎么唤醒休眠的电脑?...
  14. Last chance to join 500+ others in Australia
  15. matlab中的包文件夹管理:‘+’文件夹
  16. 28天高效突击大礼包:微服务+分布式+框架,java开发spark视频
  17. 数据库模型设计——历史表与版本号设计
  18. UPC 小澳的葫芦 (最短路+01分数规划 )
  19. 转自stormzhang的一些博文
  20. *7-2 CCF 2015-09-2 日期计算

热门文章

  1. Spring+Mybatis多数据源配置
  2. sql2005数据库大全
  3. 设计模式笔记之五:观察者模式
  4. nodejs读取本地txt文件并输出到浏览器
  5. 一款旅游型的在路上应用源码项目
  6. PowerDesigner提示This data item is already used in a primary identifier.的处理
  7. 执行终端Ubuntu中-lz编译错误的解决
  8. [转]计算机视觉领域稍微容易中的期刊(第一版)
  9. $_FILE函数总结
  10. Python3.7模块之re