MATLAB Answers

Non traceable loss function in neural network

2 views (last 30 days)
Pere Garau Burguera
Pere Garau Burguera on 25 Sep 2020
Answered: Divya Gaddipati on 15 Oct 2020
Hi,
I would want to know if there's any possibility of having a loss function that looks like this:
This is used in a siamese network for metric learning. There are 2 identical networks with the same weights, where the Xs are the inputs and Y are the outputs. The thing is that the operations performed on the dlarrays are not permitted so the gradients cannot be computed.
Is there an alternative way to make this work?
function loss = lossfunc(Y1,Y2,X1,X2,dist)
% accepts the network's predictions Y1, Y2, the inputs
% X1, X2, and the true distance between X1 and X2, and returns the loss value.
loss = .5*((X1-X2)'*pinv(Y1*Y1')*(X1-X2)...
+ (X1-X2)'*pinv(Y2*Y2')*(X1-X2))...
-dist^2);
end

Answers (1)

Divya Gaddipati
Divya Gaddipati on 15 Oct 2020
Currently, pinv is not supported for dlarray inputs.
Alternatively, you could try replacing the function with their own logic using the functions in the below link that are supported by dlarray.

Community Treasure Hunt

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

Start Hunting!