{"title":"Feature-oriented modularization of deep learning APIs","authors":"Ye Shi, J. Kienzle, Jinrong Guo","doi":"10.1145/3550356.3561575","DOIUrl":null,"url":null,"abstract":"Deep learning libraries provide vast APIs because of the multitude of supported input data types, pre-processing operations, and neural network types and configuration options. However, developers working on one concrete application typically use only a small subset of the API at any one given time. Newcomers hence have to read through tutorials and API documentation, gathering scattered information, trying to find the API that fits their needs. This is time consuming and error prone. To remedy this, we show how we modularized the API of a popular Java DL framework Deeplearning4j (DL4J) according to features. Beginner developers can interactively select desired high level features, and our tool generates the subset of the DL library API that corresponds to the selected features. We evaluate our modularization on DL4J code samples, demonstrating an average recall of 98.9% for API classes and 98.0% for API methods. The respective precision is 19.3% and 13.8%, which represents an improvement of two orders of magnitude compared to the complete DL4J API.","PeriodicalId":182662,"journal":{"name":"Proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings","volume":"41 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3550356.3561575","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Deep learning libraries provide vast APIs because of the multitude of supported input data types, pre-processing operations, and neural network types and configuration options. However, developers working on one concrete application typically use only a small subset of the API at any one given time. Newcomers hence have to read through tutorials and API documentation, gathering scattered information, trying to find the API that fits their needs. This is time consuming and error prone. To remedy this, we show how we modularized the API of a popular Java DL framework Deeplearning4j (DL4J) according to features. Beginner developers can interactively select desired high level features, and our tool generates the subset of the DL library API that corresponds to the selected features. We evaluate our modularization on DL4J code samples, demonstrating an average recall of 98.9% for API classes and 98.0% for API methods. The respective precision is 19.3% and 13.8%, which represents an improvement of two orders of magnitude compared to the complete DL4J API.