david graff
david graff
I believe the error is here: https://github.com/chemprop/chemprop/blob/cc5b3c11e0aedff3abadff43b9c0860fa07a4370/chemprop/nn/loss.py#L195-L197 This assumes the `preds` input to `*MCCLoss` will be a tensor of shape $(b, t, k)$, where $b$ is the batch size, $t$...
specifically, the problem starts here: https://github.com/chemprop/chemprop/blob/cc5b3c11e0aedff3abadff43b9c0860fa07a4370/chemprop/nn/predictors.py#L256-L283 and continues to here: https://github.com/chemprop/chemprop/blob/cc5b3c11e0aedff3abadff43b9c0860fa07a4370/chemprop/nn/predictors.py#L108-L131 IMO it will probably be easier to fix this by abstracting the multiclass FFN into its own `Predictor` subclass...
You would probably want to achieve this using some module: ```python class Fusion(nn.Module): ... def forward(self, *Xs: Tensor) -> Tensor: """Fuse the input tensors into a single output tensor""" ```...
But in the case of permuting an input of $m=2$ components, where $\mathbf X = [ \mathbf X_1, \mathbf X_2 ]$, $\mathbf X \mathbf \Pi \coloneqq [ \mathbf X_2, \mathbf...
Yeah exactly, there’s nothing in the DeepDelta architecture that guarantees antisymmetry. They’re just relying on typical data augmentation to approximate an antisymmetric function. FWIW, I don’t see why we would...
There are a variety equivariant pooling techniques to choose from (notably, _not_ $\mathtt{cat}$), and it's an empiricism deciding which to use. If I'm reading the above correctly, it's a specific...
re: Python implementation ```python class Fusion(nn.Module): def forward(self, *Xs: Tensor) -> Tensor: """ Parameters ----------- *Xs: tuple[Tensor, ...] a tuple of tensors of shape `n x d` containing the aggregated...
There was in error in the original code block (the perils of writing code in markdown on your phone!) The `for`-loop should read: ```python def forward(self, *Xs: Tensor) -> Tensor:...
my vote is for warning. The two inputs have different meanings, and it's not up to us to try and guess what a user _actually meant to type_. This can...
> I now feel it is better to keep both options of pre-generating molecular features and having the Datapoint calculate them at initialization. A `Chem.Mol` object is needed to use...