pub struct PCGrad;Expand description
PCGrad: Project conflicting gradients for multi-task learning.
This implements “Gradient Surgery for Multi-Task Learning” (Yu et al., 2020). When gradients from different tasks conflict (negative cosine similarity), it projects the conflicting gradient onto the normal plane of the other.
Implementations§
Auto Trait Implementations§
impl Freeze for PCGrad
impl RefUnwindSafe for PCGrad
impl Send for PCGrad
impl Sync for PCGrad
impl Unpin for PCGrad
impl UnwindSafe for PCGrad
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more