skip to main content
10.1007/978-3-030-59410-7_40guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

An Empirical Study on Bugs Inside TensorFlow

Published: 24 September 2020 Publication History

Abstract

In recent years, deep learning has become a hot research topic. Although it achieves incredible positive results in some scenarios, bugs inside deep learning software can introduce disastrous consequences, especially when the software is used in safety-critical applications. To understand the bug characteristic of deep learning software, researchers have conducted several empirical studies on deep learning bugs. Although these studies present useful findings, we notice that none of them analyze the bug characteristic inside a deep learning library like TensorFlow. We argue that some fundamental questions of bugs in deep learning libraries are still open. For example, what are the symptoms and the root causes of bugs inside TensorFlow, and where are they? As the underlying library of many deep learning projects, the answers to these questions are useful and important, since its bugs can have impacts on many deep learning projects. In this paper, we conduct the first empirical study to analyze the bugs inside a typical deep learning library, i.e., TensorFlow. Based on our results, we summarize 5 findings, and present our answers to 2 research questions. For example, we find that the symptoms and root causes of TensorFlow bugs are more like ordinary projects (e.g., Mozilla) than other machine learning libraries (e.g., Lucene). As another example, we find that most TensorFlow bugs reside in its interfaces (26.24%), learning algorithms (11.79%), and how to compile (8.02%), deploy (7.55%), and install (4.72%) TensorFlow across platforms.

References

[3]
Cannot opened include file “tensorflow/contrib/tpu/proto/tpuembeddingconfig. pb.h”: no such file or directory (2018). https://github.com/tensorflow/tensorflow/issues/16262
[4]
Exception when not providing optional parameter frequencyskip in timefreqlstmcell (2018). https://github.com/tensorflow/tensorflow/issues/16100
[5]
Fix an imperfect implementation of tf.losses.meanpairwisesquarederror (2018). https://github.com/tensorflow/tensorflow/pull/16433
[8]
Fix error: ConvNDLSTMCell does not pass name parameter (2018). https://github.com/tensorflow/tensorflow/pull/17345
[11]
Fix tf.argmax warnings on dimension argument by using axis instead (2018). https://github.com/tensorflow/tensorflow/pull/18558
[14]
[INTEL MKL] fix bug in MklSlice op when allocating output tensor (2018). https://github.com/tensorflow/tensorflow/pull/22822
[16]
MKL DNN: fix the TF1.6 speed issue by fixing MKL DNN LRN taking the optimum path (2018). https://github.com/tensorflow/tensorflow/pull/17605
[17]
tfcnnbenchmarks.py stuck when running with multiple GPUs and ImageNet data with protocol grpc+verbs (2018). https://github.com/tensorflow/tensorflow/issues/11725
[20]
Abadi, M., et al.: TensorFlow: a system for large-scale machine learning. In: Proceedings of OSDI, pp. 265–283 (2016)
[21]
Anand, S.S., Bell, D.A., Hughes, J.G.: An empirical performance study of the Ingres search accelerator for a large property management database system. In: Proceedings of VLDB, pp. 676–685 (1994)
[22]
Avizienis A, Laprie J, Randell B, and Landwehr CE Basic concepts and taxonomy of dependable and secure computing IEEE Trans. Dependable Sec. Comput. 2004 1 1 11-33
[23]
Bengio Y, Ducharme R, Vincent P, and Janvin C A neural probabilistic language model J. Mach. Learn. Res. 2003 3 1137-1155
[24]
Bergstra, J., et al.: Theano: deep learning on GPUs with Python. In: Proceedings of the NIPS, BigLearning Workshop (2011)
[25]
Collobert, R., Bengio, S., Marithoz, J.: Torch: a modular machine learning software library (2002)
[26]
Derr, E., Bugiel, S., Fahl, S., Acar, Y., Backes, M.: Keep me updated: an empirical study of third-party library updatability on android. In: Proceedings of the CCS, pp. 2187–2200 (2017)
[27]
Endres A An analysis of errors and their causes in system programs IEEE Trans. Software Eng. 1975 1 2 140-149
[28]
Florêncio, D.A.F., Herley, C.: A large-scale study of web password habits. In: Proceedings of the WWW, pp. 657–666 (2007)
[29]
Glass RL Persistent software errors IEEE Trans. Software Eng. 1981 7 2 162-168
[30]
Han J, Kamber M, and Pei J Data Mining: Concepts and Techniques 2011 Burlington Morgan Kaufmann Publishers
[31]
Hinton G et al. Deep neural networks for acoustic modeling in speech recognition: the shared views of four research groups IEEE Signal Process. Mag. 2012 29 6 82-97
[32]
Humbatova, N., Jahangirova, G., Bavota, G., Riccio, V., Stocco, A., Tonella, P.: Taxonomy of real faults in deep learning systems. In: Proceedings of the ICSE (2020, to appear)
[33]
Islam, M.J., Nguyen, G., Pan, R., Rajan, H.: A comprehensive study on deep learning bug characteristics. In: Proceedings of the ESEC/FSE, pp. 510–520 (2019)
[34]
Jia, Y., et al.: Caffe: convolutional architecture for fast feature embedding. In: Proceedings of the MM, pp. 675–678 (2014)
[35]
Kipf, T.N., Welling, M.: Semi-supervised classification with graph convolutional networks. In: Proceedings of the ICLR (2017)
[36]
Krizhevsky, A., Sutskever, I., Hinton, G.E.: ImageNet classification with deep convolutional neural networks. In: Proceedings of the NIPS, pp. 1106–1114 (2012)
[37]
Li G, Zhou X, Li S, and Gao B Qtune: a query-aware database tuning system with deep reinforcement learning PVLDB 2019 12 12 2118-2130
[38]
Lin, Q., Chen, G., Zhang, M.: On the design of adaptive and speculative concurrency control in distributed databases. In: Proceedings of the ICDE, pp. 1376–1379 (2018)
[39]
Lockemann PC, Nagel H, and Walter IM Databases for knowledge bases: empirical study of a knowledge base management system for a semantic network Data Knowl. Eng. 1991 7 115-154
[40]
Ma, L., et al.: DeepGauge: multi-granularity testing criteria for deep learning systems. In: Proceedings of the ASE, pp. 120–131 (2018)
[41]
Pei, K., Cao, Y., Yang, J., Jana, S.: DeepXplore: automated whitebox testing of deep learning systems. In: Proceedings of the SOSP, pp. 1–18 (2017)
[42]
Pham, H.V., Lutellier, T., Qi, W., Tan, L.: CRADLE: cross-backend validation to detect and localize bugs in deep learning libraries. In: Proceedings of the ICSE, pp. 1027–1038 (2019)
[43]
Ren K, Thomson A, and Abadi DJ VLL: a lock manager redesign for main memory database systems VLDB J. 2015 24 5 681-705
[44]
van Renen, A., et al.: Managing non-volatile memory in database systems. In: Proceedings of the SIGMOD, pp. 1541–1555 (2018)
[45]
Sutskever, I., Vinyals, O., Le, Q.V.: Sequence to sequence learning with neural networks. In: Proceedings of the NIPS, pp. 3104–3112 (2014)
[46]
Tan L, Liu C, Li Z, Wang X, Zhou Y, and Zhai C Bug characteristics in open source software Empirical Softw. Eng. 2014 19 6 1665-1705
[47]
Thung, F., Wang, S., Lo, D., Jiang, L.: An empirical study of bugs in machine learning systems. In: Proceedings of the ISSRE, pp. 271–280 (2012)
[48]
Tian, Y., Pei, K., Jana, S., Ray, B.: DeepTest: automated testing of deep-neural-network-driven autonomous cars. In: Proceedings of the ICSE, pp. 303–314 (2018)
[49]
Wang, L., et al.: Superneurons: dynamic GPU memory management for training deep neural networks. In: Proceedings of the PPoPP, pp. 41–53 (2018)
[50]
Wang, S., Liu, T., Nam, J., Tan, L.: Deep semantic feature learning for software defect prediction. IEEE Trans. Softw. Eng., 1 (2018, early access).
[51]
Wang W, Zhang M, Chen G, Jagadish HV, Ooi BC, and Tan K Database meets deep learning: challenges and opportunities SIGMOD Record 2016 45 2 17-22
[52]
Xu B et al. NADAQ: natural language database querying based on deep learning IEEE Access 2019 7 35012-35017
[53]
Zhang, Y., Chen, Y., Cheung, S., Xiong, Y., Zhang, L.: An empirical study on TensorFlow program bugs. In: Proceedings of the ISSTA, pp. 129–140 (2018)

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
Database Systems for Advanced Applications: 25th International Conference, DASFAA 2020, Jeju, South Korea, September 24–27, 2020, Proceedings, Part I
Sep 2020
837 pages
ISBN:978-3-030-59409-1
DOI:10.1007/978-3-030-59410-7
  • Editors:
  • Yunmook Nah,
  • Bin Cui,
  • Sang-Won Lee,
  • Jeffrey Xu Yu,
  • Yang-Sae Moon,
  • Steven Euijong Whang

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 24 September 2020

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 24 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media