Do dlgradient and dlfeval have to be used together?

3 views (last 30 days)
Do dlgradient and dlfeval have to be used together?
function [y,dydx] = rosenbrock(x)
y = 100*(x(2) - x(1).^2).^2 + (1 - x(1)).^2;
dydx = dlgradient(y,x);
end
[y,dydx] = rosenbrock([1,2]),
get error??? Value to differentiate must be a traced dlarray scalar.
Can't it be as convenient as pytorch?”a traced dlarray scalar.“ not clear!!!

Answers (2)

KALYAN ACHARJYA
KALYAN ACHARJYA on 6 Jan 2020
Edited: KALYAN ACHARJYA on 6 Jan 2020
x=[1,2];
[y,dydx]=rosenbrock(x);
  1 Comment
cui,xingxing
cui,xingxing on 7 Jan 2020
Undefined function 'dlgradient' for input arguments of type 'double'.
should type "dlarray"

Sign in to comment.


cui,xingxing
cui,xingxing on 7 Jan 2020
Edited: cui,xingxing on 7 Jan 2020
but i input like this in command window , is OK ,why???
[fval,gradval] = dlfeval(@rosenbrock,dlarray([1,2]))
fval =
1×1 dlarray
100
gradval =
1×2 dlarray
-400 200

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!