python - 计算 LSTM 模型的雅可比矩阵 - Python
问题描述
我有一个训练有素的 LSTM 模型,它有 1 个 LSTM 层和 3 个 Dense 层。我将它用于 One 预测的序列。我有 4 个输入变量和 1 个输出变量。我正在使用最后 20 个时间步的值来预测输出变量的下一个值。该模型的架构如下图所示
model = Sequential()
model.add(LSTM(units = 120, activation ='relu', return_sequences = False,input_shape =
(train_in.shape[1],5)))
model.add(Dense(100,activation='relu'))
model.add(Dense(50,activation='relu'))
model.add(Dense(1))
训练输入和训练输出的形状如下图
train_in.shape , train_out.shape
((89264, 20, 5), (89264,))
我想计算这个模型的雅可比矩阵。说,Y = f(x1,x2,x3,x4) 是上述神经网络的表示 其中: Y -- 训练模型的输出变量, f -- 是表示模型的函数;x1,x2,x3,x4 --输入参数。
如何计算雅可比矩阵?请分享您对此的看法。如果您知道的话,还有任何有价值的参考资料。
谢谢 :)
解决方案
你可能想看看tf.GradientTape
张量流。梯度磁带是自动区分计算的非常简单的方法。该链接有一些基本示例。
但是你的模型已经很大了。如果你有n
参数,你的雅可比就会有n*n
值。我相信您的模型可能已经有超过 10000 个参数。你可能需要把它变小。
推荐阅读
- java - proguard 不创建输出 jar
- stripe-payments - Stripe 最新订阅发票
- android - 我无法在 Facebook 中为开发人员更改我的应用设置
- java - 如果 jsonarray 中存在属性值,则获取数组对象
- css - 重置 Blogger 设置的 CSS 样式
- postgresql - phpPgAdmin 使用 select 时显示整个文本值
- ios - WebRTC 视频通话期间无法通过耳机获得音频
- html - 移动元素时获得水平滚动,即使它们没有溢出
- javascript - 我想知道是否有办法找出 element.textContext 是否处于活动状态或 element.innerHTML
- php - HTML/CSS/PHP 使用单选按钮隐藏表单值