dlarray and parfor gives error

3 次查看(过去 30 天)
Roman Foell
Roman Foell 2023-8-7
Hello together,
I want to accelerate my compuations with parfor while using dlarray.
My compuation looks like this:
parfor i = 1:num_features
feature = ... some calculations ...
loss_temp(i) = mse(feature,feature_ground_truth,'DataFormat','CB')
end
loss = sum(loss_temp);
gradients = dlgradient(loss,dlnet.Learnables);
It gives me the error:
Error using dlarray/dlgradient
Value to differentiate is not traced. It must be a traced real dlarray scalar. Use dlgradient inside a function called by dlfeval to trace the variables.
Error in modelGradients (line 67)
gradients = dlgradient(loss,dlnet.Learnables);
Does this mean, dlarray information is lost during parfor calculation and it is not compatible with it?
Thanks for your help.
Edit:
There is a website Link. Do I have to use dlaccelerate somehow? Thanks.

回答(1 个)

Roman Foell
Roman Foell 2023-8-9
Thanks all,
I already got the answer:
Calculate the gradients inside the parfor loop and combine it outside.
Possible, because the gradient of a sum is the sum of the gradient summands.
Thanks.

类别

Help CenterFile Exchange 中查找有关 Custom Training Loops 的更多信息

标签

产品


版本

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by