AI Generated Video Annotation MSC INDIVIDUAL PROJECT FINAL REPORT

Total Page:16

File Type:pdf, Size:1020Kb

AI Generated Video Annotation MSC INDIVIDUAL PROJECT FINAL REPORT IMPERIAL COLLEGE LONDON DEPARTMENT OF COMPUTING AIGVA: AI Generated Video Annotation MSC INDIVIDUAL PROJECT FINAL REPORT Author: Project Supervisor: Emil Soerensen Dr. Bernhard Kainz Second Marker: Dr. Wenjia Bai Submitted in partial fulfillment of the requirements for the MSc degree in Computing Science of Imperial College London September 2019 Abstract Most researchers agree that the ”best way to make a machine learning model gen- eralize better is to train it on more data” (Goodfellow et al., 2016). However, gath- ering and labelling training data is a laborious, tedious, and costly task. Although researchers have made significant developments in improving machine learning ar- chitectures and developing custom hardware, limited focus has been on designing better ways to acquire and label more training data. Worse still, the problem of labelling training data becomes more difficult when you transition into the video domain because of the substantial increase in data size. Currently available video annotation software tools require you to label each frame in a video individually which can be prohibitively expensive, often resulting in large amounts of either unused or unlabelled video data. This is unfortunate as video data is crucial for training algorithms in many of the most promising areas of ma- chine learning research such as autonomous vehicle navigation, visual surveillance, and medical diagnostics. The dissertation aims to address these problems by building a web application that can speed up the labelling process of video datasets. The outcome of the dissertation is the AI-Generate Video Annotation Tool (AIGVA), a web-based application for in- telligently labelling video data. A set of novel labelling techniques called Cold Label and Blitz Label were developed to automatically predict frame-level labels for videos. A scalable and distributed software architecture was built to handle the heavy data processing related to the machine learning and video processing tasks. The first in- browser video player capable of frame-by-frame navigation for video labelling was also built as part of the project. Quantitative and qualitative evaluations of the AIGVA application all show that the tool can significantly increase labelling efficiency. Quantitative testing using the CIFAR-10 dataset suggest that the tool can reduce labelling time by a factor of 14- 19x. User interviews with machine learning researchers were positive with inter- viewees claiming that they had ”no doubt it could be used today in our research group”. Furthermore, software testing of the web application and Core Data API demonstrate ample run-time performance. Acknowledgments I would like to thank the following people: • My supervisor Dr. Bernhard Kainz and co-supervisor Dr. Wenjia Bai for their valuable support throughout the process • Giacomo Tomo, Sam Budd, Anselm Au, Jeremy Tan from the Biomedical Image Analysis Group at Imperial College London for providing both technical and non-techincal feedback to improve the usability of the application • Jacqueline Matthew, Clinical/Research Sonographer @ Guy’s and St Thomas’ NHS Foundation Trust, who volunteered to teach me about the problems of data labelling in a clinical setting • My family, friends and fellow students, particularly Finn Bauer, who had to suffer through countless hours of discussions about web app development, data labelling and machine learning ii Contents 1 Introduction1 1.1 Motivation.................................1 1.2 Objectives.................................3 1.3 Contributions...............................4 1.4 Outline..................................8 2 Background9 2.1 Literature Review.............................9 2.1.1 The Stagnation of Image Classification Performance......9 2.1.2 Beyond ImageNet: Improving Image Classification Performance 11 2.1.3 The Challenges of New Data Acquisition............ 13 2.1.4 Methods to Increase Data Labelling Efficiency......... 14 2.1.5 Sourcing Image Data From Videos............... 18 2.2 Existing Labelling Tools......................... 20 2.3 The iFIND Project............................. 24 2.4 Ethical & Professional Considerations.................. 26 3 Method 28 3.1 Label Prediction.............................. 29 3.1.1 Cold Label............................. 29 3.1.2 Blitz Label............................. 31 3.1.3 Custom Model.......................... 32 3.2 User Stories................................ 33 iii CONTENTS Table of Contents 3.2.1 User Story #1: Building a Pedestrian Classifier for an Au- tonomous Vehicle Startup.................... 33 3.2.2 User Story #2: Improving Standard Plane Detection in Fetal Ultrasound Classifiers...................... 37 3.3 Design Principles............................. 39 3.4 Requirements............................... 43 3.4.1 Project Management....................... 43 3.4.2 Videos............................... 45 3.4.3 Label Prediction......................... 49 4 Implementation 55 4.1 Software Arch. & Tech Stack....................... 55 4.1.1 Core Data API........................... 56 4.1.2 Web Application......................... 63 4.1.3 File Storage & Database..................... 70 4.2 Feature Impl. - Video Management................... 73 4.2.1 Frame-by-frame Video Player.................. 73 4.2.2 Export Tool............................ 77 4.3 Feature Impl. - Label Prediction..................... 80 4.3.1 Cold Label............................. 80 4.3.2 Blitz Label............................. 91 4.3.3 Custom Model.......................... 92 4.3.4 Label Prediction Engine..................... 95 4.4 DevOps.................................. 97 4.4.1 Testing............................... 97 4.4.2 Deployment............................ 98 5 Evaluation & Results 100 5.1 Quantitative Evaluation......................... 100 5.1.1 Label Prediction - Cold Label.................. 100 5.1.2 Label Prediction - Blitz Label.................. 106 iv Table of Contents CONTENTS 5.2 Performance Testing........................... 111 5.2.1 Web Application Performance.................. 111 5.2.2 Core Data API Performance................... 113 5.3 User Interview & Feedback........................ 117 5.3.1 Machine Learning Researchers................. 117 5.3.2 Clinical Sonographer....................... 119 6 Conclusion & Future Work 121 6.1 Summary of Achievements........................ 121 6.2 Future Work................................ 123 Appendices 132 Appendix A User Guide 134 A.1 Installation................................ 134 A.2 User Manual............................... 136 Appendix B Full Surveys 137 B.1 Machine Learning Researchers...................... 137 B.2 Clinical Sonographer........................... 143 Appendix C Supporting Material 145 C.1 Folder Structure.............................. 146 C.2 Web Performance Testing........................ 147 C.3 Experimentation............................. 148 C.3.1 List of Videos For AIGVA Experiment.............. 148 C.3.2 Model Used For AIGVA Experiment............... 148 C.3.3 Confusion Matrices for AIGVA Experimentation........ 149 Appendix D Supporting Code 154 D.1 Web Application............................. 154 D.1.1 Video Frame Player........................ 154 D.1.2 Export Tool............................ 160 v CONTENTS Table of Contents D.2 Label Prediction.............................. 163 D.2.1 Cold Label............................. 163 D.2.2 Blitz Label............................. 171 D.2.3 Custom Model.......................... 175 D.2.4 Prediction Engine......................... 176 D.3 DevOps.................................. 180 D.3.1 Docker............................... 180 D.4 File Storage and Database........................ 183 D.4.1 Database Schema......................... 183 vi Chapter 1 Introduction ”We’re entering a new world in which data may be more important than software.” —Tim O’Reilly, founder, O’Reilly Media 1.1 Motivation While recent advancements in machine learning has shown its potential to solve complex classification problems, there is still a way to go. For example, in March 2018 Elaine Herzberg was killed by one of Uber’s self-driving cars because the vehi- cle failed to brake in time. The system misclassified the pedestrian Elaine first as an unknown object, then as a vehicle, and then as a bicycle with varying expectations of future travel path (NST, 2019). Examples like this highlight the need to build better machine learning models. In applied machine learning, supervised algorithms still outperform other models for classification tasks. While researchers have found a plethora of novel methods to improve the generalizability of such algorithms, the size and quality of the training dataset is still a crucial factor for model performance. The process of acquiring and labelling data for training machine learning models is, however, a laborious, tedious, and expensive task. Consequently, most of the recent research focus has been on im- proving the machine learning models rather than on improving the data collection 1 1.1. MOTIVATION Chapter 1. Introduction and labelling techniques. The data labelling task becomes even more difficult when transitioning into the video domain, due to the substantial increase in data size. This difficulty increases the cost of data labelling, which often results in large amounts of either unused or unlabelled video data. As many of today’s most promising areas of machine learning research, such as autonomous vehicle navigation, visual surveillance, and medical diagnostics,
Recommended publications
  • SOL: Effortless Device Support for AI Frameworks Without Source Code Changes
    SOL: Effortless Device Support for AI Frameworks without Source Code Changes Nicolas Weber and Felipe Huici NEC Laboratories Europe Abstract—Modern high performance computing clusters heav- State of the Art Proposed with SOL ily rely on accelerators to overcome the limited compute power API (Python, C/C++, …) API (Python, C/C++, …) of CPUs. These supercomputers run various applications from different domains such as simulations, numerical applications or Framework Core Framework Core artificial intelligence (AI). As a result, vendors need to be able to Device Backends SOL efficiently run a wide variety of workloads on their hardware. In the AI domain this is in particular exacerbated by the Fig. 1: Abstraction layers within AI frameworks. existance of a number of popular frameworks (e.g, PyTorch, TensorFlow, etc.) that have no common code base, and can vary lines of code to their scripts in order to enable SOL and its in functionality. The code of these frameworks evolves quickly, hardware support. making it expensive to keep up with all changes and potentially We explore two strategies to integrate new devices into AI forcing developers to go through constant rounds of upstreaming. frameworks using SOL as a middleware, to keep the original In this paper we explore how to provide hardware support in AI frameworks without changing the framework’s source code in AI framework unchanged and still add support to new device order to minimize maintenance overhead. We introduce SOL, an types. The first strategy hides the entire offloading procedure AI acceleration middleware that provides a hardware abstraction from the framework, and the second only injects the necessary layer that allows us to transparently support heterogenous hard- functionality into the framework to enable the execution, but ware.
    [Show full text]
  • Deep Learning Frameworks | NVIDIA Developer
    4/10/2017 Deep Learning Frameworks | NVIDIA Developer Deep Learning Frameworks The NVIDIA Deep Learning SDK accelerates widely­used deep learning frameworks such as Caffe, CNTK, TensorFlow, Theano and Torch as well as many other deep learning applications. Choose a deep learning framework from the list below, download the supported version of cuDNN and follow the instructions on the framework page to get started. Caffe is a deep learning framework made with expression, speed, and modularity in mind. Caffe is developed by the Berkeley Vision and Learning Center (BVLC), as well as community contributors and is popular for computer vision. Caffe supports cuDNN v5 for GPU acceleration. Supported interfaces: C, C++, Python, MATLAB, Command line interface Learning Resources Deep learning course: Getting Started with the Caffe Framework Blog: Deep Learning for Computer Vision with Caffe and cuDNN Download Caffe Download cuDNN The Microsoft Cognitive Toolkit —previously known as CNTK— is a unified deep­learning toolkit from Microsoft Research that makes it easy to train and combine popular model types across multiple GPUs and servers. Microsoft Cognitive Toolkit implements highly efficient CNN and RNN training for speech, image and text data. Microsoft Cognitive Toolkit supports cuDNN v5.1 for GPU acceleration. Supported interfaces: Python, C++, C# and Command line interface Download CNTK Download cuDNN TensorFlow is a software library for numerical computation using data flow graphs, developed by Google’s Machine Intelligence research organization. TensorFlow supports cuDNN v5.1 for GPU acceleration. Supported interfaces: C++, Python Download TensorFlow Download cuDNN https://developer.nvidia.com/deep­learning­frameworks 1/3 4/10/2017 Deep Learning Frameworks | NVIDIA Developer Theano is a math expression compiler that efficiently defines, optimizes, and evaluates mathematical expressions involving multi­dimensional arrays.
    [Show full text]
  • Music Instrument Localization in Virtual Reality Environments Using Audio-Visual Cues
    Music Instrument Localization in Virtual Reality Environments using audio-visual cues Siddhartha Bhattacharyya B.Tech A Dissertation Presented to the University of Dublin, Trinity College in partial fulfilment of the requirements for the degree of Master of Science in Computer Science (Data Science) Supervisor: Aljosa Smolic and Cagri Ozcinar September 2020 Declaration I, the undersigned, declare that this work has not previously been submitted as an exercise for a degree at this, or any other University, and that unless otherwise stated, is my own work. Siddhartha Bhattacharyya September 6, 2020 Permission to Lend and/or Copy I, the undersigned, agree that Trinity College Library may lend or copy this thesis upon request. Siddhartha Bhattacharyya September 6, 2020 Acknowledgments I would like to thank my supervisors Professors Aljosa Smolic and Cagri Ozcinar for their dedicated support, understanding and leadership. My heartfelt gratitude goes out to my peers and the batch of 2019-2020 for their support and friendship. I would also like to thank the Trinity VR community for their help. I would like to extend my sincerest gratitude to the admins at SCSS labs who gave endless support in ensuring the availability of remote servers. During this time of crisis and remote work, this dissertation would not have been possible without their support. Last but not the least, I would like to thank my family for their trust and belief in me. Siddhartha Bhattacharyya University of Dublin, Trinity College September 2020 iii Music Instrument Localization in Virtual Reality Environments using audio-visual cues Siddhartha Bhattacharyya, Master of Science in Computer Science University of Dublin, Trinity College, 2020 Supervisor: Aljosa Smolic and Cagri Ozcinar This research work aims to develop and assess the capabilities of convolution neu- ral networks to identify and localize musical instruments in 360 videos.
    [Show full text]
  • Abschlussarbeit Im Fachbereich Elektrotechnik & Informatik an Der
    Bachelorthesis Adriana Bostandzhieva Design and Implementation of System for Managing Training Data for Artificial Intelligence Algorithms Fakultät Technik und Informatik Faculty of Engineering and Computer Science Department Informations- und Department of Information and Elektrotechnik Electrical Engineering Adriana Bostandzhieva Design and Implementation of System for Managing Training Data for Artificial Intelligence Algorithms Bachelorthesisbased on the study regulations for the Bachelor of Engineering degree programme Information Engineering at the Department of Information and Electrical Engineering of the Faculty of Engineering and Computer Science of the Hamburg University of Aplied Sciences Supervising examiner : Prof. Dr. -Ing. Lutz Leutelt Second Examiner : Prof. Dr. Klaus Jünemann Day of delivery 3. Juli 2019 Adriana Bostandzhieva Title of the Bachelorthesis Design and Implementation of System for Managing Training Data for Artificial Intelli- gence Algorithms Keywords AI, training data, database, labels, video Abstract This paper is part of a pilot project of the Hamburg University of Applied Sciences. The project aims to utilise object detection algorithms and visual data to analyse complex road scenes. The aim of this thesis is to determine the best tool to use to label data for training artificial intelligence algorithms, to specify what data should be saved and to determine what database is to be used to save the data. The validity of the findings is proved by building a small prototype to showcase integration between the labelling tool and the database. Adriana Bostandzhieva Titel der Arbeit Entwicklung und Aufbau eines System zur Verwaltung von Trainingsdaten für Algo- rithmen der künstlichen Intelligenz Stichworte Trainingsdaten, Datenbanke, Video, KI Kurzzusammenfassung Diese Arbeit ist Teil eines Pilotprojekts der Hochschule für Angewandte Wissenschaf- ten Hamburg.
    [Show full text]
  • A 3D Interactive Multi-Object Segmentation Tool Using Local Robust Statistics Driven Active Contours
    A 3D interactive multi-object segmentation tool using local robust statistics driven active contours The Harvard community has made this article openly available. Please share how this access benefits you. Your story matters Citation Gao, Yi, Ron Kikinis, Sylvain Bouix, Martha Shenton, and Allen Tannenbaum. 2012. A 3D Interactive Multi-Object Segmentation Tool Using Local Robust Statistics Driven Active Contours. Medical Image Analysis 16, no. 6: 1216–1227. doi:10.1016/j.media.2012.06.002. Published Version doi:10.1016/j.media.2012.06.002 Citable link http://nrs.harvard.edu/urn-3:HUL.InstRepos:28548930 Terms of Use This article was downloaded from Harvard University’s DASH repository, and is made available under the terms and conditions applicable to Other Posted Material, as set forth at http:// nrs.harvard.edu/urn-3:HUL.InstRepos:dash.current.terms-of- use#LAA NIH Public Access Author Manuscript Med Image Anal. Author manuscript; available in PMC 2013 August 01. NIH-PA Author ManuscriptPublished NIH-PA Author Manuscript in final edited NIH-PA Author Manuscript form as: Med Image Anal. 2012 August ; 16(6): 1216–1227. doi:10.1016/j.media.2012.06.002. A 3D Interactive Multi-object Segmentation Tool using Local Robust Statistics Driven Active Contours Yi Gaoa,*, Ron Kikinisb, Sylvain Bouixa, Martha Shentona, and Allen Tannenbaumc aPsychiatry Neuroimaging Laboratory, Brigham & Women's Hospital, Harvard Medical School, Boston, MA 02115 bSurgical Planning Laboratory, Brigham & Women's Hospital, Harvard Medical School, Boston, MA 02115 cDepartments of Electrical and Computer Engineering and Biomedical Engineering, Boston University, Boston, MA 02115 Abstract Extracting anatomical and functional significant structures renders one of the important tasks for both the theoretical study of the medical image analysis, and the clinical and practical community.
    [Show full text]
  • Evaluating Usage of Images for App Classification
    Evaluating Usage of Images for App Classification Kushal Singla, Niloy Mukherjee, Hari Manassery Koduvely, Joy Bose Samsung R&D Institute Bangalore, India [email protected] Abstract— App classification is useful in a number of In this paper, we seek to evaluate different methods in applications such as adding apps to an app store or building a which app images can be used to improve the accuracy of the user model based on the installed apps. Presently there are a app classification. One such method involves extracting text number of existing methods to classify apps based on a given from the app images using optical character recognition taxonomy on the basis of their text metadata. However, text (OCR) and using the extracted text to classify the app. based methods for app classification may not work in all cases, Another method involves generating text descriptions of the such as when the text descriptions are in a different language, app images by summarizing the images using a tool, and or missing, or inadequate to classify the app. One solution in using the resulting text descriptions for the app classification. such cases is to utilize the app images to supplement the text Yet another method involves identifying the objects in the description. In this paper, we evaluate a number of approaches in which app images can be used to classify the apps. In one app images and using the identified objects to classify the approach, we use Optical character recognition (OCR) to app. An ensemble of such different models can also be used, extract text from images, which is then used to supplement the perhaps along with text based classification of apps.
    [Show full text]
  • Open Source Computer Vision-Based Layer-Wise 3D Printing Analysis
    Open Source Computer Vision-based Layer-wise 3D Printing Analysis Aliaksei L. Petsiuk1 and Joshua M. Pearce1,2,3 1Department of Electrical & Computer Engineering, Michigan Technological University, Houghton, MI 49931, USA 2Department of Material Science & Engineering, Michigan Technological University, Houghton, MI 49931, USA 3Department of Electronics and Nanoengineering, School of Electrical Engineering, Aalto University, Espoo, FI-00076, Finland [email protected], [email protected] Graphical Abstract Highlights • Developed a visual servoing platform using a monocular multistage image segmentation • Presented algorithm prevents critical failures during additive manufacturing • The developed system allows tracking printing errors on the interior and exterior Abstract The paper describes an open source computer vision-based hardware structure and software algorithm, which analyzes layer-wise the 3-D printing processes, tracks printing errors, and generates appropriate printer actions to improve reliability. This approach is built upon multiple- stage monocular image examination, which allows monitoring both the external shape of the printed object and internal structure of its layers. Starting with the side-view height validation, the developed program analyzes the virtual top view for outer shell contour correspondence using the multi-template matching and iterative closest point algorithms, as well as inner layer texture quality clustering the spatial-frequency filter responses with Gaussian mixture models and segmenting structural anomalies with the agglomerative hierarchical clustering algorithm. This allows evaluation of both global and local parameters of the printing modes. The experimentally- verified analysis time per layer is less than one minute, which can be considered a quasi-real-time process for large prints. The systems can work as an intelligent printing suspension tool designed to save time and material.
    [Show full text]
  • Comparative Study of Deep Learning Software Frameworks
    Comparative Study of Deep Learning Software Frameworks Soheil Bahrampour, Naveen Ramakrishnan, Lukas Schott, Mohak Shah Research and Technology Center, Robert Bosch LLC {Soheil.Bahrampour, Naveen.Ramakrishnan, fixed-term.Lukas.Schott, Mohak.Shah}@us.bosch.com ABSTRACT such as dropout and weight decay [2]. As the popular- Deep learning methods have resulted in significant perfor- ity of the deep learning methods have increased over the mance improvements in several application domains and as last few years, several deep learning software frameworks such several software frameworks have been developed to have appeared to enable efficient development and imple- facilitate their implementation. This paper presents a com- mentation of these methods. The list of available frame- parative study of five deep learning frameworks, namely works includes, but is not limited to, Caffe, DeepLearning4J, Caffe, Neon, TensorFlow, Theano, and Torch, on three as- deepmat, Eblearn, Neon, PyLearn, TensorFlow, Theano, pects: extensibility, hardware utilization, and speed. The Torch, etc. Different frameworks try to optimize different as- study is performed on several types of deep learning ar- pects of training or deployment of a deep learning algorithm. chitectures and we evaluate the performance of the above For instance, Caffe emphasises ease of use where standard frameworks when employed on a single machine for both layers can be easily configured without hard-coding while (multi-threaded) CPU and GPU (Nvidia Titan X) settings. Theano provides automatic differentiation capabilities which The speed performance metrics used here include the gradi- facilitates flexibility to modify architecture for research and ent computation time, which is important during the train- development. Several of these frameworks have received ing phase of deep networks, and the forward time, which wide attention from the research community and are well- is important from the deployment perspective of trained developed allowing efficient training of deep networks with networks.
    [Show full text]
  • Intel® Deep Learning Boost (Intel® DL Boost) Product Overview
    Intel® Deep Learning boost Built-in acceleration for training and inference workloads 11 Run complex workloads on the same Platform Intel® Xeon® Scalable processors are built specifically for the flexibility to run complex workloads on the same hardware as your existing workloads 2 Intel avx-512 Intel Deep Learning boost Intel VNNI, bfloat16 Intel VNNI 2nd & 3rd Generation Intel Xeon Scalable Processors Based on Intel Advanced Vector Extensions Intel AVX-512 512 (Intel AVX-512), the Intel DL Boost Vector 1st, 2nd & 3rd Generation Intel Xeon Neural Network Instructions (VNNI) delivers a Scalable Processors significant performance improvement by combining three instructions into one—thereby Ultra-wide 512-bit vector operations maximizing the use of compute resources, capabilities with up to two fused-multiply utilizing the cache better, and avoiding add units and other optimizations potential bandwidth bottlenecks. accelerate performance for demanding computational tasks. bfloat16 3rd Generation Intel Xeon Scalable Processors on 4S+ Platform Brain floating-point format (bfloat16 or BF16) is a number encoding format occupying 16 bits representing a floating-point number. It is a more efficient numeric format for workloads that have high compute intensity but lower need for precision. 3 Common Training and inference workloads Image Classification Speech Recognition Language Translation Object Detection 4 Intel Deep Learning boost A Vector neural network instruction (vnni) Extends Intel AVX-512 to Accelerate Ai/DL Inference Intel Avx-512 VPMADDUBSW VPMADDWD VPADDD Combining three instructions into one UP TO11X maximizes the use of Intel compute resources, DL throughput improves cache utilization vs. current-gen Vnni and avoids potential Intel Xeon Scalable CPU VPDPBUSD bandwidth bottlenecks.
    [Show full text]
  • Comparative Study of Caffe, Neon, Theano, and Torch
    Workshop track - ICLR 2016 COMPARATIVE STUDY OF CAFFE,NEON,THEANO, AND TORCH FOR DEEP LEARNING Soheil Bahrampour, Naveen Ramakrishnan, Lukas Schott, Mohak Shah Bosch Research and Technology Center fSoheil.Bahrampour,Naveen.Ramakrishnan, fixed-term.Lukas.Schott,[email protected] ABSTRACT Deep learning methods have resulted in significant performance improvements in several application domains and as such several software frameworks have been developed to facilitate their implementation. This paper presents a comparative study of four deep learning frameworks, namely Caffe, Neon, Theano, and Torch, on three aspects: extensibility, hardware utilization, and speed. The study is per- formed on several types of deep learning architectures and we evaluate the per- formance of the above frameworks when employed on a single machine for both (multi-threaded) CPU and GPU (Nvidia Titan X) settings. The speed performance metrics used here include the gradient computation time, which is important dur- ing the training phase of deep networks, and the forward time, which is important from the deployment perspective of trained networks. For convolutional networks, we also report how each of these frameworks support various convolutional algo- rithms and their corresponding performance. From our experiments, we observe that Theano and Torch are the most easily extensible frameworks. We observe that Torch is best suited for any deep architecture on CPU, followed by Theano. It also achieves the best performance on the GPU for large convolutional and fully connected networks, followed closely by Neon. Theano achieves the best perfor- mance on GPU for training and deployment of LSTM networks. Finally Caffe is the easiest for evaluating the performance of standard deep architectures.
    [Show full text]
  • Torch7: a Matlab-Like Environment for Machine Learning
    Torch7: A Matlab-like Environment for Machine Learning Ronan Collobert1 Koray Kavukcuoglu2 Clement´ Farabet3;4 1 Idiap Research Institute 2 NEC Laboratories America Martigny, Switzerland Princeton, NJ, USA 3 Courant Institute of Mathematical Sciences 4 Universite´ Paris-Est New York University, New York, NY, USA Equipe´ A3SI - ESIEE Paris, France Abstract Torch7 is a versatile numeric computing framework and machine learning library that extends Lua. Its goal is to provide a flexible environment to design and train learning machines. Flexibility is obtained via Lua, an extremely lightweight scripting language. High performance is obtained via efficient OpenMP/SSE and CUDA implementations of low-level numeric routines. Torch7 can easily be in- terfaced to third-party software thanks to Lua’s light interface. 1 Torch7 Overview With Torch7, we aim at providing a framework with three main advantages: (1) it should ease the development of numerical algorithms, (2) it should be easily extended (including the use of other libraries), and (3) it should be fast. We found that a scripting (interpreted) language with a good C API appears as a convenient solu- tion to “satisfy” the constraint (2). First, a high-level language makes the process of developing a program simpler and more understandable than a low-level language. Second, if the programming language is interpreted, it becomes also easier to quickly try various ideas in an interactive manner. And finally, assuming a good C API, the scripting language becomes the “glue” between hetero- geneous libraries: different structures of the same concept (coming from different libraries) can be hidden behind a unique structure in the scripting language, while keeping all the functionalities coming from all the different libraries.
    [Show full text]
  • Tensorflow, Theano, Keras, Torch, Caffe Vicky Kalogeiton, Stéphane Lathuilière, Pauline Luc, Thomas Lucas, Konstantin Shmelkov Introduction
    TensorFlow, Theano, Keras, Torch, Caffe Vicky Kalogeiton, Stéphane Lathuilière, Pauline Luc, Thomas Lucas, Konstantin Shmelkov Introduction TensorFlow Google Brain, 2015 (rewritten DistBelief) Theano University of Montréal, 2009 Keras François Chollet, 2015 (now at Google) Torch Facebook AI Research, Twitter, Google DeepMind Caffe Berkeley Vision and Learning Center (BVLC), 2013 Outline 1. Introduction of each framework a. TensorFlow b. Theano c. Keras d. Torch e. Caffe 2. Further comparison a. Code + models b. Community and documentation c. Performance d. Model deployment e. Extra features 3. Which framework to choose when ..? Introduction of each framework TensorFlow architecture 1) Low-level core (C++/CUDA) 2) Simple Python API to define the computational graph 3) High-level API (TF-Learn, TF-Slim, soon Keras…) TensorFlow computational graph - auto-differentiation! - easy multi-GPU/multi-node - native C++ multithreading - device-efficient implementation for most ops - whole pipeline in the graph: data loading, preprocessing, prefetching... TensorBoard TensorFlow development + bleeding edge (GitHub yay!) + division in core and contrib => very quick merging of new hotness + a lot of new related API: CRF, BayesFlow, SparseTensor, audio IO, CTC, seq2seq + so it can easily handle images, videos, audio, text... + if you really need a new native op, you can load a dynamic lib - sometimes contrib stuff disappears or moves - recently introduced bells and whistles are barely documented Presentation of Theano: - Maintained by Montréal University group. - Pioneered the use of a computational graph. - General machine learning tool -> Use of Lasagne and Keras. - Very popular in the research community, but not elsewhere. Falling behind. What is it like to start using Theano? - Read tutorials until you no longer can, then keep going.
    [Show full text]