Technical Report CSI-0073

DEFIne: A Fluent Interface DSL for Deep Learning Applications

Nina Dethlefs and Ken Hawick

Archived: 2016


Recent years have seen a surge of interest in deep learning models that are beating other machine learning algorithms on benchmarks tasks across disciplines. Most existing deep learning libraries facilitate the development of neural nets by providing the mathematical context that will help users implement their models with fewer errors. This still represents a substantial investment of time and effort, however, when the intention is to compare a range of competing models quickly for a specific task. We present DEFIne, a uent interface domain-specific language for the specification, optimisation and evaluation of deep learning models. DEFIne is internal to Python and is build on top of its most popular deep learning libraries. It extends these with common operations for data pre-processing and representation as well as visualisation of datasets and results. We test our framework on three benchmark tasks taken from separate domains: heart disease diagnosis, hand-written digit recognition and weather forecast generation. Results in terms of accuracy, runtime and lines of code show that our DSL achieves equivalent accuracy and runtime to state-of-the-art models, while requiring only about 10 lines of code per application.

Keywords: software engineering; reusable software; artificial intelligence; deep learning

Full Document Text: PDF version.

Citation Information: BiBTeX database for CSI Notes.

BiBTeX reference:

        Title = {DEFIne: A Fluent Interface DSL for Deep Learning Applications},
        Author = {Nina Dethlefs and Ken Hawick},
        Institution = {The Digital Centre, School of Engineering and Computer Science},
        Year = {2016},
        Address = {Cottingham Road, University of Hull, HU6 7RX},
        Month = {November},
        Number = {CSI-0073},
        Type = {CSI},
        Keywords = {software engineering; reusable software; artificial intelligence; deep learning},
        Owner = {kahawick},
        Timestamp = {2016.12.03}