def __init__(self, args: TrainArgs, atom_fdim: int = None, bond_fdim: int = None): """ :param args: A :class:`~chemprop.args.TrainArgs` object containing model arguments. :param atom_fdim: Atom feature vector dimension. :param bond_fdim: Bond feature vector dimension. """ super(MPN, self).__init__() self.reaction = args.reaction self.reaction_solvent = args.reaction_solvent self.atom_fdim = atom_fdim or get_atom_fdim( overwrite_default_atom=args.overwrite_default_atom_features, is_reaction=(self.reaction or self.reaction_solvent)) self.bond_fdim = bond_fdim or get_bond_fdim( overwrite_default_atom=args.overwrite_default_atom_features, overwrite_default_bond=args.overwrite_default_bond_features, atom_messages=args.atom_messages, is_reaction=(self.reaction or self.reaction_solvent)) self.features_only = args.features_only self.use_input_features = args.use_input_features self.device = args.device self.atom_descriptors = args.atom_descriptors self.overwrite_default_atom_features = args.overwrite_default_atom_features self.overwrite_default_bond_features = args.overwrite_default_bond_features if self.features_only: return if not self.reaction_solvent: if args.mpn_shared: self.encoder = nn.ModuleList( [MPNEncoder(args, self.atom_fdim, self.bond_fdim)] * args.number_of_molecules) else: self.encoder = nn.ModuleList([ MPNEncoder(args, self.atom_fdim, self.bond_fdim) for _ in range(args.number_of_molecules) ]) else: self.encoder = MPNEncoder(args, self.atom_fdim, self.bond_fdim) # Set separate atom_fdim and bond_fdim for solvent molecules self.atom_fdim_solvent = get_atom_fdim( overwrite_default_atom=args.overwrite_default_atom_features, is_reaction=False) self.bond_fdim_solvent = get_bond_fdim( overwrite_default_atom=args.overwrite_default_atom_features, overwrite_default_bond=args.overwrite_default_bond_features, atom_messages=args.atom_messages, is_reaction=False) self.encoder_solvent = MPNEncoder(args, self.atom_fdim_solvent, self.bond_fdim_solvent, args.hidden_size_solvent, args.bias_solvent, args.depth_solvent)
def __init__(self, args: TrainArgs, atom_fdim: int = None, bond_fdim: int = None): """ :param args: A :class:`~chemprop.args.TrainArgs` object containing model arguments. :param atom_fdim: Atom feature vector dimension. :param bond_fdim: Bond feature vector dimension. """ super(MPN, self).__init__() self.atom_fdim = atom_fdim or get_atom_fdim() self.bond_fdim = bond_fdim or get_bond_fdim(atom_messages=args.atom_messages) self.features_only = args.features_only self.use_input_features = args.use_input_features self.device = args.device self.atom_descriptors = args.atom_descriptors if self.features_only: return if args.mpn_shared: self.encoder = nn.ModuleList([MPNEncoder(args, self.atom_fdim, self.bond_fdim)] * args.number_of_molecules) else: self.encoder = nn.ModuleList([MPNEncoder(args, self.atom_fdim, self.bond_fdim) for _ in range(args.number_of_molecules)])
def __init__(self, args: Namespace, atom_fdim: int = None, bond_fdim: int = None, graph_input: bool = False): super(MPN, self).__init__() self.args = args self.atom_fdim = atom_fdim or get_atom_fdim(args) self.bond_fdim = bond_fdim or get_bond_fdim(args) + \ (not args.atom_messages) * self.atom_fdim # * 2 self.graph_input = graph_input self.encoder = MPNEncoder(self.args, self.atom_fdim, self.bond_fdim)
def __init__(self, args: TrainArgs, atom_fdim: int = None, bond_fdim: int = None): """ Initializes the MPN. :param args: Arguments. :param atom_fdim: Atom features dimension. :param bond_fdim: Bond features dimension. """ super(MPN, self).__init__() self.atom_fdim = atom_fdim or get_atom_fdim() self.bond_fdim = bond_fdim or get_bond_fdim(atom_messages=args.atom_messages) print(get_atom_fdim()) print(get_bond_fdim(atom_messages=args.atom_messages)) # self.atom_fdim = 127 # self.bond_fdim = 12 self.encoder = MPNEncoder(args, self.atom_fdim, self.bond_fdim)
def __init__(self, args: TrainArgs, atom_fdim: int = None, bond_fdim: int = None): """ :param args: A :class:`~chemprop.args.TrainArgs` object containing model arguments. :param atom_fdim: Atom feature vector dimension. :param bond_fdim: Bond feature vector dimension. """ super(MPN, self).__init__() self.atom_fdim = atom_fdim or get_atom_fdim() self.bond_fdim = bond_fdim or get_bond_fdim( atom_messages=args.atom_messages) self.encoder = MPNEncoder(args, self.atom_fdim, self.bond_fdim)
def __init__(self, args: Namespace, atom_fdim: int = None, bond_fdim: int = None, graph_input: bool = False, params: Dict[str, nn.Parameter] = None): super(MPN, self).__init__() self.args = args self.atom_fdim = atom_fdim or get_atom_fdim(args) self.bond_fdim = bond_fdim or get_bond_fdim( args) + (not args.atom_messages) * self.atom_fdim self.graph_input = graph_input self.encoder = MPNEncoder(self.args, self.atom_fdim, self.bond_fdim, params=params)
def __init__(self, args: Namespace, atom_fdim: int = None, bond_fdim: int = None, graph_input: bool = False): """ Initializes the MPN. :param args: Arguments. :param atom_fdim: Atom features dimension. :param bond_fdim: Bond features dimension. :param graph_input: If true, expects BatchMolGraph as input. Otherwise expects a list of smiles strings as input. """ super(MPN, self).__init__() self.args = args self.atom_fdim = atom_fdim or get_atom_fdim(args) self.bond_fdim = bond_fdim or get_bond_fdim(args) + (not args.atom_messages) * self.atom_fdim self.graph_input = graph_input self.encoder = MPNEncoder(self.args, self.atom_fdim, self.bond_fdim)