如何在Matlab中实现深度学习PyTorch分离或TensorFlow stop_gradient吗?

3视图(30天)
你好!
Pytorch设施 分离 一个张量,以便它不会需要一个梯度,即(从 在这里 ):
为了启用自动分化,PyTorch跟踪所有操作涉及的张量梯度可能需要计算(即。require_grad是真的)。操作记录为一个有向图。分离()方法构造一个新的视图在一个声明不需要梯度张量,即,是被排除在进一步跟踪操作,因此涉及这个视图的子图没有记录。
TensorFlow有一个类似的设施 stop_gradient
这些都是有用的,当一个人需要的副本 表达式 被视为常数,其梯度不应计算在学习。
如何在Matlab中实现这种事的深度学习工具箱吗?(可能是在一个自定义训练循环)
谢谢,
D

接受的答案

Damien T
Damien T 2022年11月7日
你只需要调用以下。它将追踪dlarray变成标准的Matlab变量,因此autodiff引擎将把新(“分离”)变量作为一个常数。
myDetachedVar = extractdata (myvar#);

更多的答案(0)

s manbetx 845


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的