Deep learning (DL) frameworks have been extensively designed, implemented, and used in software projects across many domains. However, due to the lack of knowledge or information, time pressure, complex context, etc., various uncertainties emerge during the development, leading to assumptions made in DL frameworks. Though not all the assumptions are negative to the frameworks, being unaware of certain assumptions can result in critical problems (e.g., system vulnerability and failures, inconsistencies, and increased cost). As the first step of addressing the critical problems, there is a need to explore and understand the assumptions made in DL frameworks. To this end, we conducted an exploratory study to understand self-claimed assumptions (SCAs) about their distribution, classification, and impacts using code comments from nine popular DL framework projects on GitHub. The results are that: (1) 3,084 SCAs are scattered across 1,775 files in the nine DL frameworks, ranging from 1,460 (TensorFlow) to 8 (Keras) SCAs. (2) There are four types of validity of SCAs: Valid SCA, Invalid SCA, Conditional SCA, and Unknown SCA, and four types of SCAs based on their content: Configuration and Context SCA, Design SCA, Tensor and Variable SCA, and Miscellaneous SCA. (3) Both valid and invalid SCAs may have an impact within a specific scope (e.g., in a function) on the DL frameworks. Certain technical debt is induced when making SCAs. There are source code written and decisions made based on SCAs. This is the first study on investigating SCAs in DL frameworks, which helps researchers and practitioners to get a comprehensive understanding on the assumptions made. We also provide the first dataset of SCAs for further research and practice in this area.
翻译:深度学习(DL)框架在许多领域广泛设计、实施和用于软件项目,但由于缺乏知识或信息、时间压力、复杂背景等,在开发过程中出现了各种不确定性,导致DL框架中的假设。虽然并非所有假设对框架都是负面的,但不了解某些假设可能导致关键问题(如系统脆弱性和故障、不一致和成本增加)。作为解决关键问题的第一步,有必要探索和理解DL框架中的假设。为此,我们进行了一项探索性研究,以了解关于其分布、分类和影响的自封假设(SCA),使用GitHub九个流行DL框架项目的代码评论。结果如下:(1) 3 084 SSCA分散在九个DL框架中的1 775个档案中,从1 460个(TensorFlow)到8个(Keras) SCA框架。(2) SCA的正确性框架有四种类型:CA、 ICA、 Conditional、 Conditional SCA 和 ASASA 系统、 ASA 和 ASISA 系统内部定义、 和 AS ASA 和 系统 系统、SASA 系统内部定义定义和 系统、SASAA 系统内部的系统、系统、SAS 系统、系统、SAAA 的系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统、系统系统、系统、系统、系统、系统、系统、系统、系统系统、系统、系统、系统、系统、系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统系统