Our model architecture is adapted from SwinOCSR with minimal changes. We also used Focal loss for our loss function like in . During training, we use the "teacher forcing" method. Unlike in other natural language models, we did not use scheduled sampling (designed to let the model learn to recover from mistakes). Because unlike natural language, which has some variation and fault tolerance, the DeepSMILES we generated has only one correct answer. Thus, it does not matter if the error is cumulative, as the DeepSMILES would be wrong either way.