Successful training of deep neural networks requires the right amounts and types of annotated training data. Collecting, curating and labeling this data is typically one of the most time-consuming aspects of developing a deep-learning-based solution. In this talk, we discuss approaches useful for situations where insufficient data is available, including transfer learning and data augmentation, including the use of generative adversarial networks (GANs). We also discuss techniques that can be helpful when data is plentiful, such as transforms, data path optimization and approximate computing. We illustrate these techniques and challenges via case studies from the healthcare and manufacturing industries.