Skip to content

Commit 47aaac0

Browse files
author
xutianbing
committed
add some comments...
1 parent a948eea commit 47aaac0

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

paddle/function/CosSimOp.cpp

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,15 @@ limitations under the License. */
1717
#include "paddle/math/Vector.h"
1818

1919
namespace paddle {
20+
/**
21+
* Cosine Similarity for CpuMatrix
22+
*
23+
* \param out_mat, output value, size: nSamples * 1.
24+
* \param in1_mat, input value 1, size: nSamples * dim.
25+
* \param in2_mat, input value 2, size: n2 * dim (n2 == 1 or n2 == nSamples).
26+
* \param scale, default 1.0
27+
*
28+
*/
2029
template <>
2130
void CosSimForward<DEVICE_TYPE_CPU>(CpuMatrix* out_mat,
2231
const CpuMatrix* in1_mat,
@@ -48,6 +57,13 @@ void CosSimForward<DEVICE_TYPE_CPU>(CpuMatrix* out_mat,
4857
}
4958

5059
/**
60+
* Cosine Similarity
61+
* for each row i,
62+
* out[i] = scale * cos(input1[i], input2[i])
63+
* = scale * <input1[i], input2[i]>/sqrt(|input1[i]|^2 * |input2[i]|^2)
64+
* when input2 only has one row, then for each row i,
65+
* out[i] = cos(input1[i], input2[0])
66+
*
5167
* \param inputs[0] input matrix 1, size: nSamples * dim.
5268
* \param inputs[1] input matrix 2, size: n2 * dim (n2 == 1 or n2 == nSamples).
5369
* \param outputs[0] output matrix, size : nSamples * 1.
@@ -85,6 +101,20 @@ class CosSimForwardFunc : public FunctionBase {
85101
real scale_;
86102
};
87103

104+
/**
105+
* Cosine Similarity Derivative for CpuMatrix
106+
*
107+
* \param in1_grad forward input grad 1, size: nSamples * dim.
108+
* \param in2_grad forward input grad 2,
109+
* size: n2 * dim (n2 == 1 or n2 == nSamples).
110+
*
111+
* \param out_grad backward loss output grad, size : nSamples * 1.
112+
* \param out_val forward output value, size: nSamples * 1.
113+
* \param in1_val forward input value 1, size: nSamples * dim.
114+
* \param in2_val forward input value 2,
115+
* size: n2 * dim (n2 == 1 or n2 == nSamples).
116+
* \param scale, default 1.0
117+
*/
88118
template <>
89119
void CosSimBackward<DEVICE_TYPE_CPU>(const CpuMatrix* out_grad,
90120
const CpuMatrix* out_val,
@@ -146,6 +176,8 @@ void CosSimBackward<DEVICE_TYPE_CPU>(const CpuMatrix* out_grad,
146176
}
147177

148178
/**
179+
* Cosine Similarity backward Derivative
180+
*
149181
* \param inouts[0] forward input grad 1, size: nSamples * dim.
150182
* \param inouts[1] forward input grad 2,
151183
* size: n2 * dim (n2 == 1 or n2 == nSamples).

0 commit comments

Comments
 (0)