theano中的Rop和Lop的详细解释

#------------------------------------------序-------------------------------------------------------
这篇博文是对[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 ⋅ x f=w·x f=wx
这个代码求解的是:
∂ f ∂ W ⋅ V \frac{\partial f}{\partial W}·V WfV

#----------------------------------------------------------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 ]]

在这里插入图片描述

这个代码求解的是:

( V T ⋅ x ) T (V^T·x)^T (VTx)T
= x T ⋅ V =x^T·V =xTV
= [ 0.7 1.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

利用骨骼进行的人体行为识别, 基于LOP 的行为识别,可以运行 (action recognition) 文件列表: actionletEnsemble-master actionletEnsemble-master\.gitignore actionletEnsemble-master\LICENSE actionletEnsemble-master\MSRAction3D actionletEnsemble-master\MSRAction3D\MSRAction3D_skeleton_features.mat actionletEnsemble-master\MSRAction3D\evaluate_on_MSR_action_3D.m actionletEnsemble-master\MSRDailyActivity3D actionletEnsemble-master\MSRDailyActivity3D\configDailyAcitity.m actionletEnsemble-master\MSRDailyActivity3D\evaluate_on_MSR_DailyAcitivity3D.m actionletEnsemble-master\MSRDailyActivity3D\extractAllLopFeatures.m actionletEnsemble-master\MSRDailyActivity3D\extractAllSkeletonFeatures.m actionletEnsemble-master\MSRDailyActivity3D\processOneSkeleton.m actionletEnsemble-master\MSRDailyActivity3D\trainClassifier.m actionletEnsemble-master\README.md actionletEnsemble-master\feature actionletEnsemble-master\feature\computeMotionField.m actionletEnsemble-master\feature\computePairwiseJointPositions.m actionletEnsemble-master\feature\computeSOPFeaturesSkeleton.m actionletEnsemble-master\feature\compute_motion_descriptors.m actionletEnsemble-master\feature\compute_motion_maps.m actionletEnsemble-master\feature\fftPyramid.m actionletEnsemble-master\feature\getSopFeature.m actionletEnsemble-master\feature\lopFeature.m actionletEnsemble-master\feature\lopFeatureSkeleton.m actionletEnsemble-master\feature\sopFeatureSkeleton.m actionletEnsemble-master\setup_path.m actionletEnsemble-master\util actionletEnsemble-master\util\ComputeMotion.mexw64 actionletEnsemble-master\util\ReadDepthBin.mexa64 actionletEnsemble-master\util\ReadDepthBin.mexw64 actionletEnsemble-master\util\iSaveX.m actionletEnsemble-master\util\normalizeFeature.m actionletEnsemble-master\util\predict.mexa64 actionletEnsemble-master\util\readDepthBin.m actionletEnsemble-master\util\readSkeleton.m actionletEnsemble-master\util\train.mexa64
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值