Deep learning has gained substantial popularity in recent years. Developers mainly rely on libraries and tools to add deep learning capabilities to their software. What kinds of bugs are frequently found in such software? What are the root causes of such bugs? What impacts do such bugs have? Which stages of deep learning pipeline are more bug prone? Are there any antipatterns? Understanding such characteristics of bugs in deep learning software has the potential to foster the development of better deep learning platforms, debugging mechanisms, development practices, and encourage the development of analysis and verification frameworks. Therefore, we study 2716 high-quality posts from Stack Overflow and 500 bug fix commits from Github about five popular deep learning libraries Caffe, Keras, Tensorflow, Theano, and Torch to understand the types of bugs, root causes of bugs, impacts of bugs, bug-prone stage of deep learning pipeline as well as whether there are some common antipatterns found in this buggy software. The key findings of our study include: data bug and logic bug are the most severe bug types in deep learning software appearing more than 48% of the times, major root causes of these bugs are Incorrect Model Parameter (IPS) and Structural Inefficiency (SI) showing up more than 43% of the times. We have also found that the bugs in the usage of deep learning libraries have some common antipatterns that lead to a strong correlation of bug types among the libraries.
翻译:近年来,深层学习越来越受欢迎。 开发者主要依靠图书馆和工具来增加软件的深层学习能力。 因此, 我们从Github 研究来自Stack 溢流和500个错误修复的2716个高质量职位, 包括五个受欢迎的深层学习库 Cafe、 Keras、 Tensorflow、 Theano 和 Torch 中最严重的错误类型、 错误的根源原因、 错误的影响、 深层次学习的管道的影响、 深层次学习的管道的错误特征, 以及在这个错误软件中是否发现一些常见的反障碍。 我们研究的主要发现包括: 数据错误和逻辑错误是深层学习软件中最严重的错误类型, 超过48%的 Cafe、 Keras、 Tensorflow、 Theano 和Torcherch 来理解错误的类型、 错误、 错误、 错误、 错误、 错误、 错误、 深层学习管道的错误的阶段。 我们发现, 在深度学习的图书馆中发现, 最严重的错误类型是超过48 % 。