|
|
|
@ -43,6 +43,7 @@ class ClipGradientOpCUDAKernel : public framework::OpKernel {
|
|
|
|
|
auto min = context.Attr<float>("min");
|
|
|
|
|
auto* d_out = context.Input<LoDTensor>(framework::GradVarName("Out"));
|
|
|
|
|
auto* d_x = context.Output<LoDTensor>(framework::GradVarName("X"));
|
|
|
|
|
if (d_x != nullptr) {
|
|
|
|
|
auto* x = context.Input<LoDTensor>("X");
|
|
|
|
|
auto dims = d_x->dims();
|
|
|
|
|
int64_t count = d_out->numel();
|
|
|
|
@ -60,6 +61,7 @@ class ClipGradientOpCUDAKernel : public framework::OpKernel {
|
|
|
|
|
.stream()>>>(count, min, max, x_data, d_out_data,
|
|
|
|
|
d_x_data);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
} // namespace operators
|
|
|
|
|