The decoder receives a sampled latent vector and consists of a Dense layer followed by three sequence-returning GRU (Gated Recurrent Unit) layers (with 256 hidden units) and a final Dense layer that outputs unnormalized distributions of SELFIES tokens for each position in the decoded sequence-model likelihood for data. We greedily sample from these position-wise SELFIES token distributions to generate SELFIES. This decoding process enforces a oneto-one mapping between latent points and SELFIES. We compiled a SELFIES training set of 400K molecules to define encoder input dimensionality. We filtered sequences by size and converted from canonical SMILES in ChEMBL v.29 to obtain a dataset token set size of 54, including a special padding token: ({'pad' : 0, '.' :