User & Developer Survey 2021

Total Page:16

File Type:pdf, Size:1020Kb

User & Developer Survey 2021 User & Developer Survey 2021 Andrew Claster & Viral Shah Methodology We conducted 2,660 interviews online among Julia users and developers June 2 – July 7, 2021 Margin of error is +/- 1.9 percentage points We recruited respondents online using Slack, Discourse, Twitter, LinkedIn, Facebook, email, JuliaLang.org and JuliaComputing.com The survey was administered in 4 languages: English, Chinese, Japanese and Spanish 2 62% Use Julia ‘A Great Deal’, Up from 56% in 2019; Python Is #2 for Julia Users & Developers How frequently do you use each of the following languages? Julia Python Great deal Some Great deal Some 94% 95% 94% 81% 81% 81% 32% 38% 37% 36% 42% 37% 62% 56% 58% 45% 39% 44% 2019 2020 2021 2019 2020 2021 Other languages not shown include Bash/Shell/PowerShell (67% great deal + some), C++ (38% great deal + some), C (37% great deal + some), MATLAB (37% great deal + some), R (33% great deal + some) and SQL (31% great deal + some) 3 78% Say Julia Is ‘One of My Favorite Languages’, Up from 73% in 2019; PytHon Has Been Declining Among Julia Users Since 2019 How much do you like each of the following languages? Julia PytHon One of my favorite languages Like One of my favorite languages Like 93% 93% 93% 20% 18% 15% 61% 57% 55% 35% 30% 73% 75% 78% 32% 26% 27% 23% 2019 2020 2021 2019 2020 2021 OtHer languages not shown include C (26% ‘one of my favorite languages’ + ‘like’), Bash/SHell/PowerSHell (19% ‘one of my favorite languages’ + ‘like’), R (19% ‘one of my favorite languages’ + ‘like’, C++ (18% ‘one of my favorite languages’ + ‘like’), MATLAB (18% ‘one of my favorite languages’ + ‘like’) 4 Python Is #2 for Julia Users, Followed by C++, MATLAB, R and C R and MATLAB Continue to Decline Among Julia Users Thinking about the tasks for which you use Julia, if you weren’t using Julia for these tasks, what programming language would you be using? 2021 2020 2019 75% Python 76% 73% 30% C++ 31% 28% Responses < 5% not shown: Zig, Visual Basic, 29% MATLAB 31% TypeScript, Swift, Stata, SAS, PHP, Perl, Nim, Lua, 35% Kotlin, F#, Elixir, Crystal, Clojure, Ruby, Maple, 24% R 25% 27% Haskell, Scala, Lisp, C#, SQL, JavaScript, Java, Go 20% C 21% 20% 13% Fortran* 13% 6% 9% Bash/Shell/PowerShell 9% 9% 8% Mathematica* 9% 7% Rust* 6% 6% Octave* 7% * Added in 2020 5 Most Started Using Julia in the Last 3-4 Years – After Julia 1.0 Release (Aug 2018) When did you first start using Julia? 2019 2020 2021 23% 23% 21% 20% 17% 17% 14% 14% 13% 13% (Jan-Jun 2020) 10% 10% 10% 10% 9% 9% (Jan-Jun 2019) (Jan-Jun 2021) 8% 8% 7% 6% 6% 5% 4% 3% 2%2%2% 1% 0% 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 6 Most Julia Users & Developers Do At Least 40% of Their Programming Work in Julia What percentage of the programming work you do is in Julia? 31% 27% 14% 13% 12% 0-19% 20-39% 40-59% 60-79% 80-100% 7 The MOST Popular TECHNICAL Features of Julia Are Speed/Performance, Ease of Use, Open Source, Multiple Dispatch, Package Manager, Solves Two Language Problem, Composable Thinking only about the TECHNICAL aspects or features of Julia, what are the TECHNICAL aspects or features you like MOST about Julia? 2021 2020 2019 85% Speed, performance 86% 85% 69% Ease of use 71% 71% Open source code is available 66% 68% and can be modified 67% 54% Multiple dispatch 52% 52% Package manage r** 53% Solves the two language 45% 53% problem 50% Composable** 40% Ease of installation** 32% 30% Distributed / GPU computing* 33% 27% Specific package(s) 30% 21% Editor and IDE support 21% 23% (Emacs, Vi, Juno, VS Code) 21% Integrates well with other 19% 27% language(s) 21% * Added in 2020 18% On e-bas ed indexing 21% 20% ** Added in 2021 8 The MOST Popular NON-TECHNICAL Features of Julia Are Free (Don’t Have to Pay) and the Julia Community Thinking only about the NON-TECHNICAL aspects or features of Julia, what are the NON-TECHNICAL aspects or features you like MOST about Julia? 2021 2020 2019 Free - don't have to pay to use 80% 83% Julia 83% Julia community of developers 70% 57% is talented and active 56% Julia community of developers 48% 41% is warm and welcoming 37% Big increase for the Julia community – 36% MIT license 42% talented and active, warm and welcoming 41% 35% Easy to create packages 41% 41% Learning a new language, I like 33% 37% learning new languages 36% Easy to get help and 31% 38% information online 37% 27% Great documentation** Easy to contribute to the 18% 30% language 29% Lots of great teaching and 17% learning resources available 20% online 18% ** Added in 2021 9 The Biggest TECHNICAL PROBLEMS with Julia Are Too Long to Generate the First Plot, PaCkages, Cannot Generate Self-Contained Binaries and Slow Compile Times Thinking only about the TECHNICAL aspects or features of Julia, what are the TECHNICAL aspects or features you like LEAST about Julia? 2021 2020 2019 It takes too long to generate the first plot 42% 41% 46% PaCkages aren't as mature or as well-maintained as I 41% need 38% 42% Cannot generate self-Contained binaries or libraries 41% suCh as .exe, .dll, .so, etC. 35%36% Slow Compile times 39% 33% 41% I require paCkages, libraries or tools that are only 24% available or are more Complete in another language 13% 22% The debugger is too slow and/or not fully featured 20% 20%21% Biggest deCreases: Takes too long to Doesn't have all the paCkages I need 18% 22% 28% generate first plot, doesn’t have all Poor editor and IDE support 18% 23% 25% the paCkages I need, poor editor and Immature (2021 addition: not ready for use in 13% production) 24% IDE support, immature, not stable Poor linter, poor syntax CheCking Compared to 13% statiCally typed languages** enough, bugs, paCkage manager is I do not feel Julia is well-suited to Certain tasks 9% 6% 9% confusing, diffiCult or doesn’t do PaCkage manager is Confusing, diffiCult or doesn't 8% do what I expeCt it to* 11% what I expeCt it to On e-bas ed indexing 8% 8% 9% Not stable enough 7% 15% 17% Bu gs 3% 10% 12% Does not integrate well with other languages 2% 2% 3% * Added in 2020 ** Added in 2021 10 The Biggest NON-TECHNICAL PROBLEMS with Julia Are Related to Adoption: Too Many Colleagues, Collaborators and Others Use Other Languages Thinking only about the NON-TECHNICAL aspects or features of Julia, what are the NON-TECHNICAL aspects or features you like LEAST about Julia? 2021 2020 2019 46% My colleagues, company or collaborators use other languages 40% 40% 44% There are not enough Julia users in my field or industry 36% 36% 26% Online tutorials and documentation that are outdated* 30% 33% There are not enough Julia users in general 28% 28% My company, university, clients or other organizations I work 11% with do not allow or support Julia* 10% 23% Insufficient documentation 26% 23% There are not enough teaching and learning resources 17% 16% available online 16% 16% There are too many things I don't know how to do in Julia 16% 15% 16% I have more experience with another language 15% 11% 10% I am more comfortable in another language 9% Biggest declines: outdated or insufficient 8% 2% Julia community is not active enough 4% documentation and tutorials 3% 3% Julia community is too closed and not welcoming enough 3% 2% 0% I prefer (2019-20: enjoy) exploring other languages 2% 1% 0% Don't like learning a new language 1% 1% * Added in 2020 11 Reasons for Choosing Julia: Seems Like the Language of the Future, Elegance, Speed, Solves the Two Language Problem, Like Learning New Languages, Preferable Syntax Why did you start using Julia? 2021 2020 2019 63% Julia seems like the language of the future 57% 52% 53% Elegance of Julia** 46% Faster for the work I am doing 44% 43% 44% Julia solves the two language problem** 43% I like learning new languages 42% 40% 43% Preferable syntax to other language 40% 26% I heard about Julia from friends or colleagues 21% 36% (2019-20: and I wanted to try it out) 36% 13% Better packages for the work I am doing 13% 9% 7% I need or want a specific feature 10% 7% Colleagues in my field use Julia and I want to 5% 6% collaborate with them 6% My instructor or a course I wanted to take uses 4% 6% Julia 6% ** Added in 2021 12 Julia Users & Developers Interact on GitHub, Discourse, Slack and Stack Overflow Where do you interact with the Julia community? 61% 58% 27% 25% 13% 12% 11% 5% 4% 4% 3% 2% 1% GitHub Discourse Slack Stack Twitter Reddit Zulip Discord LinkedIn JuliaCN QQ Gitter Facebook Overflow 13 Most Popular Packages: Plots, DataFrames, BenchmarkTools, Pluto, DifferentialEquations, IJulia, Revise, Flux, Distributions, CUDA, Makie What are some of your favorite Julia packages? 2021 2020 2019 Plots.jl 50% 42% 47% DataFrames.jl 45% 38% 40% BenchmarkTools.jl** 29% Pluto.jl** 26% DifferentialEquations.jl 26% 24% 27% IJulia.jl 24% 33%34% Revise.jl 24% 17% 21% Flux.jl 22% 20%21% Distributions.jl 20% 26% CUDA.jl* 12% 16% Makie.jl 16% 8%9% PyCall.jl 14% 22% StaticArraYs.jl** 14% StatsBase.jl** 14% Under 10% not shown: LightGraphs.jl, Zygote.jl, PackageCompiler.jl, JuMP.jl 13% Turing.jl, UnicodePlots.jl, GadflY.jl, SYmbolics.jl, DiffEqFlux.jl, Modeling 16% 19% PyPlot.jl** 13% Toolkit.jl, GLM.jl, Rcall.jl, StatsFuns.jl, ApproxFun.jl, Franklin.jl, Genie.jl, MLJ.jl, TensorFlow.jl, OnlineStats.jl, Convex.jl, Weave.jl, QuadGK.jl, ForwardDiff.jl 12% 12% MKL.jl, TensorOperations.jl, ReinforcementLearning.jl, QuerYverse.jl, FFTW.jl 11% 12% Cxx.jl, Knet.jl, CxxWrap.jl, MixedModels.jl, TextAnalYsis.jl, JavaCall.jl Documenter.jl 11% 9%10% Optim.jl 11% 14%15% Images.jl 10% 10% StatsPlots.jl 10% * Added in 2020 10% 13% 10% ** Added in 2021 DataStructures.jl** 14 Most Say the Julia Package Ecosystem is ‘Somewhat’
Recommended publications
  • Sagemath and Sagemathcloud
    Viviane Pons Ma^ıtrede conf´erence,Universit´eParis-Sud Orsay [email protected] { @PyViv SageMath and SageMathCloud Introduction SageMath SageMath is a free open source mathematics software I Created in 2005 by William Stein. I http://www.sagemath.org/ I Mission: Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab. Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 2 / 7 SageMath Source and language I the main language of Sage is python (but there are many other source languages: cython, C, C++, fortran) I the source is distributed under the GPL licence. Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 3 / 7 SageMath Sage and libraries One of the original purpose of Sage was to put together the many existent open source mathematics software programs: Atlas, GAP, GMP, Linbox, Maxima, MPFR, PARI/GP, NetworkX, NTL, Numpy/Scipy, Singular, Symmetrica,... Sage is all-inclusive: it installs all those libraries and gives you a common python-based interface to work on them. On top of it is the python / cython Sage library it-self. Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 4 / 7 SageMath Sage and libraries I You can use a library explicitly: sage: n = gap(20062006) sage: type(n) <c l a s s 'sage. interfaces .gap.GapElement'> sage: n.Factors() [ 2, 17, 59, 73, 137 ] I But also, many of Sage computation are done through those libraries without necessarily telling you: sage: G = PermutationGroup([[(1,2,3),(4,5)],[(3,4)]]) sage : G . g a p () Group( [ (3,4), (1,2,3)(4,5) ] ) Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 5 / 7 SageMath Development model Development model I Sage is developed by researchers for researchers: the original philosophy is to develop what you need for your research and share it with the community.
    [Show full text]
  • Intro to Tensorflow 2.0 MBL, August 2019
    Intro to TensorFlow 2.0 MBL, August 2019 Josh Gordon (@random_forests) 1 Agenda 1 of 2 Exercises ● Fashion MNIST with dense layers ● CIFAR-10 with convolutional layers Concepts (as many as we can intro in this short time) ● Gradient descent, dense layers, loss, softmax, convolution Games ● QuickDraw Agenda 2 of 2 Walkthroughs and new tutorials ● Deep Dream and Style Transfer ● Time series forecasting Games ● Sketch RNN Learning more ● Book recommendations Deep Learning is representation learning Image link Image link Latest tutorials and guides tensorflow.org/beta News and updates medium.com/tensorflow twitter.com/tensorflow Demo PoseNet and BodyPix bit.ly/pose-net bit.ly/body-pix TensorFlow for JavaScript, Swift, Android, and iOS tensorflow.org/js tensorflow.org/swift tensorflow.org/lite Minimal MNIST in TF 2.0 A linear model, neural network, and deep neural network - then a short exercise. bit.ly/mnist-seq ... ... ... Softmax model = Sequential() model.add(Dense(256, activation='relu',input_shape=(784,))) model.add(Dense(128, activation='relu')) model.add(Dense(10, activation='softmax')) Linear model Neural network Deep neural network ... ... Softmax activation After training, select all the weights connected to this output. model.layers[0].get_weights() # Your code here # Select the weights for a single output # ... img = weights.reshape(28,28) plt.imshow(img, cmap = plt.get_cmap('seismic')) ... ... Softmax activation After training, select all the weights connected to this output. Exercise 1 (option #1) Exercise: bit.ly/mnist-seq Reference: tensorflow.org/beta/tutorials/keras/basic_classification TODO: Add a validation set. Add code to plot loss vs epochs (next slide). Exercise 1 (option #2) bit.ly/ijcav_adv Answers: next slide.
    [Show full text]
  • Python for Economists Alex Bell
    Python for Economists Alex Bell [email protected] http://xkcd.com/353 This version: October 2016. If you have not already done so, download the files for the exercises here. Contents 1 Introduction to Python 3 1.1 Getting Set-Up................................................. 3 1.2 Syntax and Basic Data Structures...................................... 3 1.2.1 Variables: What Stata Calls Macros ................................ 4 1.2.2 Lists.................................................. 5 1.2.3 Functions ............................................... 6 1.2.4 Statements............................................... 7 1.2.5 Truth Value Testing ......................................... 8 1.3 Advanced Data Structures .......................................... 10 1.3.1 Tuples................................................. 10 1.3.2 Sets .................................................. 11 1.3.3 Dictionaries (also known as hash maps) .............................. 11 1.3.4 Casting and a Recap of Data Types................................. 12 1.4 String Operators and Regular Expressions ................................. 13 1.4.1 Regular Expression Syntax...................................... 14 1.4.2 Regular Expression Methods..................................... 16 1.4.3 Grouping RE's ............................................ 18 1.4.4 Assertions: Non-Capturing Groups................................. 19 1.4.5 Portability of REs (REs in Stata).................................. 20 1.5 Working with the Operating System....................................
    [Show full text]
  • WEEK 10: FAREWELL to PYTHON... WELCOME to MAPLE! 1. a Review of PYTHON's Features During the Past Few Weeks, We Have Explored
    WEEK 10: FAREWELL TO PYTHON... WELCOME TO MAPLE! 1. A review of PYTHON’s features During the past few weeks, we have explored the following aspects of PYTHON: • Built-in types: integer, long integer, float, complex, boolean, list, se- quence, string etc. • Operations on built-in types: +, −, ∗, abs, len, append, etc. • Loops: N = 1000 i=1 q = [] while i <= N q.append(i*i) i += 1 • Conditional statements: if x < y: min = x else: min = y • Functions: def fac(n): if n==0 then: return 1 else: return n*fac(n-1) • Modules: math, turtle, etc. • Classes: Rational, Vector, Polynomial, Polygon, etc. With these features, PYTHON is a powerful tool for doing mathematics on a computer. In particular, the use of modules makes it straightforward to add greater functionality, e.g. GL (3D graphics), NumPy (numerical algorithms). 2. What about MAPLE? MAPLE is really designed to be an interactive tool. Nevertheless, it can also be used as a programming language. It has some of the basic facilities available in PYTHON: Loops; conditional statements; functions (in the form of “procedures”); good graphics and some very useful additional modules called “packages”: • Built-in types: long integer, float (arbitrary precision), complex, rational, boolean, array, sequence, string etc. • Operations on built-in types: +, −, ∗, mathematical functions, etc. • Loops: 1 2 WEEK 10: FAREWELL TO PYTHON... WELCOME TO MAPLE! Table 1. Some of the most useful MAPLE packages Name Description Example DEtools Tools for differential equations exactsol(ode,y) linalg Linear Algebra gausselim(A) plots Graphics package polygonplot(p,axes=none) stats Statistics package random[uniform](10) N := 1000 : q := array(1..N) : for i from 1 to N do q[i] := i*i : od : • Conditional statements: if x < y then min := x else min := y fi: • Functions: fac := proc(n) if n=0 then return 1 else return n*fac(n-1) fi : end proc : • Packages: See Table 1.
    [Show full text]
  • Keras2c: a Library for Converting Keras Neural Networks to Real-Time Compatible C
    Keras2c: A library for converting Keras neural networks to real-time compatible C Rory Conlina,∗, Keith Ericksonb, Joeseph Abbatec, Egemen Kolemena,b,∗ aDepartment of Mechanical and Aerospace Engineering, Princeton University, Princeton NJ 08544, USA bPrinceton Plasma Physics Laboratory, Princeton NJ 08544, USA cDepartment of Astrophysical Sciences at Princeton University, Princeton NJ 08544, USA Abstract With the growth of machine learning models and neural networks in mea- surement and control systems comes the need to deploy these models in a way that is compatible with existing systems. Existing options for deploying neural networks either introduce very high latency, require expensive and time con- suming work to integrate into existing code bases, or only support a very lim- ited subset of model types. We have therefore developed a new method called Keras2c, which is a simple library for converting Keras/TensorFlow neural net- work models into real-time compatible C code. It supports a wide range of Keras layers and model types including multidimensional convolutions, recurrent lay- ers, multi-input/output models, and shared layers. Keras2c re-implements the core components of Keras/TensorFlow required for predictive forward passes through neural networks in pure C, relying only on standard library functions considered safe for real-time use. The core functionality consists of ∼ 1500 lines of code, making it lightweight and easy to integrate into existing codebases. Keras2c has been successfully tested in experiments and is currently in use on the plasma control system at the DIII-D National Fusion Facility at General Atomics in San Diego. 1. Motivation TensorFlow[1] is one of the most popular libraries for developing and training neural networks.
    [Show full text]
  • Practical Estimation of High Dimensional Stochastic Differential Mixed-Effects Models
    Practical Estimation of High Dimensional Stochastic Differential Mixed-Effects Models Umberto Picchinia,b,∗, Susanne Ditlevsenb aDepartment of Mathematical Sciences, University of Durham, South Road, DH1 3LE Durham, England. Phone: +44 (0)191 334 4164; Fax: +44 (0)191 334 3051 bDepartment of Mathematical Sciences, University of Copenhagen, Universitetsparken 5, DK-2100 Copenhagen, Denmark Abstract Stochastic differential equations (SDEs) are established tools to model physical phenomena whose dynamics are affected by random noise. By estimating parameters of an SDE intrin- sic randomness of a system around its drift can be identified and separated from the drift itself. When it is of interest to model dynamics within a given population, i.e. to model simultaneously the performance of several experiments or subjects, mixed-effects mod- elling allows for the distinction of between and within experiment variability. A framework to model dynamics within a population using SDEs is proposed, representing simultane- ously several sources of variation: variability between experiments using a mixed-effects approach and stochasticity in the individual dynamics using SDEs. These stochastic differ- ential mixed-effects models have applications in e.g. pharmacokinetics/pharmacodynamics and biomedical modelling. A parameter estimation method is proposed and computational guidelines for an efficient implementation are given. Finally the method is evaluated using simulations from standard models like the two-dimensional Ornstein-Uhlenbeck (OU) and the square root models. Keywords: automatic differentiation, closed-form transition density expansion, maximum likelihood estimation, population estimation, stochastic differential equation, Cox-Ingersoll-Ross process arXiv:1004.3871v2 [stat.CO] 3 Oct 2010 1. INTRODUCTION Models defined through stochastic differential equations (SDEs) allow for the represen- tation of random variability in dynamical systems.
    [Show full text]
  • Bring Down the Two-Language Barrier with Julia Language for Efficient
    AbstractSDRs: Bring down the two-language barrier with Julia Language for efficient SDR prototyping Corentin Lavaud, Robin Gerzaguet, Matthieu Gautier, Olivier Berder To cite this version: Corentin Lavaud, Robin Gerzaguet, Matthieu Gautier, Olivier Berder. AbstractSDRs: Bring down the two-language barrier with Julia Language for efficient SDR prototyping. IEEE Embedded Systems Letters, Institute of Electrical and Electronics Engineers, 2021, pp.1-1. 10.1109/LES.2021.3054174. hal-03122623 HAL Id: hal-03122623 https://hal.archives-ouvertes.fr/hal-03122623 Submitted on 27 Jan 2021 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. AbstractSDRs: Bring down the two-language barrier with Julia Language for efficient SDR prototyping Corentin LAVAUD∗, Robin GERZAGUET∗, Matthieu GAUTIER∗, Olivier BERDER∗. ∗ Univ Rennes, CNRS, IRISA, [email protected] Abstract—This paper proposes a new methodology based glue interface [8]. Regarding programming semantic, low- on the recently proposed Julia language for efficient Software level languages (e.g. C++/C, Rust) offers very good runtime Defined Radio (SDR) prototyping. SDRs are immensely popular performance but does not offer a good prototyping experience. as they allow to have a flexible approach for sounding, monitoring or processing radio signals through the use of generic analog High-level languages (e.g.
    [Show full text]
  • TSP 5.0 Reference Manual
    TSP 5.0 Reference Manual Bronwyn H. Hall and Clint Cummins TSP International 2005 Copyright 2005 by TSP International First edition (Version 4.0) published 1980. TSP is a software product of TSP International. The information in this document is subject to change without notice. TSP International assumes no responsibility for any errors that may appear in this document or in TSP. The software described in this document is protected by copyright. Copying of software for the use of anyone other than the original purchaser is a violation of federal law. Time Series Processor and TSP are trademarks of TSP International. ALL RIGHTS RESERVED Table Of Contents 1. Introduction_______________________________________________1 1. Welcome to the TSP 5.0 Help System _______________________1 2. Introduction to TSP ______________________________________2 3. Examples of TSP Programs _______________________________3 4. Composing Names in TSP_________________________________4 5. Composing Numbers in TSP _______________________________5 6. Composing Text Strings in TSP_____________________________6 7. Composing TSP Commands _______________________________7 8. Composing Algebraic Expressions in TSP ____________________8 9. TSP Functions _________________________________________10 10. Character Set for TSP ___________________________________11 11. Missing Values in TSP Procedures _________________________13 12. LOGIN.TSP file ________________________________________14 2. Command summary_______________________________________15 13. Display Commands _____________________________________15
    [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]
  • Towards a Fully Automated Extraction and Interpretation of Tabular Data Using Machine Learning
    UPTEC F 19050 Examensarbete 30 hp August 2019 Towards a fully automated extraction and interpretation of tabular data using machine learning Per Hedbrant Per Hedbrant Master Thesis in Engineering Physics Department of Engineering Sciences Uppsala University Sweden Abstract Towards a fully automated extraction and interpretation of tabular data using machine learning Per Hedbrant Teknisk- naturvetenskaplig fakultet UTH-enheten Motivation A challenge for researchers at CBCS is the ability to efficiently manage the Besöksadress: different data formats that frequently are changed. Significant amount of time is Ångströmlaboratoriet Lägerhyddsvägen 1 spent on manual pre-processing, converting from one format to another. There are Hus 4, Plan 0 currently no solutions that uses pattern recognition to locate and automatically recognise data structures in a spreadsheet. Postadress: Box 536 751 21 Uppsala Problem Definition The desired solution is to build a self-learning Software as-a-Service (SaaS) for Telefon: automated recognition and loading of data stored in arbitrary formats. The aim of 018 – 471 30 03 this study is three-folded: A) Investigate if unsupervised machine learning Telefax: methods can be used to label different types of cells in spreadsheets. B) 018 – 471 30 00 Investigate if a hypothesis-generating algorithm can be used to label different types of cells in spreadsheets. C) Advise on choices of architecture and Hemsida: technologies for the SaaS solution. http://www.teknat.uu.se/student Method A pre-processing framework is built that can read and pre-process any type of spreadsheet into a feature matrix. Different datasets are read and clustered. An investigation on the usefulness of reducing the dimensionality is also done.
    [Show full text]
  • SEISGAMA: a Free C# Based Seismic Data Processing Software Platform
    Hindawi International Journal of Geophysics Volume 2018, Article ID 2913591, 8 pages https://doi.org/10.1155/2018/2913591 Research Article SEISGAMA: A Free C# Based Seismic Data Processing Software Platform Theodosius Marwan Irnaka, Wahyudi Wahyudi, Eddy Hartantyo, Adien Akhmad Mufaqih, Ade Anggraini, and Wiwit Suryanto Seismology Research Group, Physics Department, Faculty of Mathematics and Natural Sciences, Universitas Gadjah Mada, Sekip Utara Bulaksumur, Yogyakarta 55281, Indonesia Correspondence should be addressed to Wiwit Suryanto; [email protected] Received 4 July 2017; Accepted 24 December 2017; Published 30 January 2018 Academic Editor: Filippos Vallianatos Copyright © 2018 Teodosius Marwan Irnaka et al. Tis is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. Seismic refection is one of the most popular methods in geophysical prospecting. Nevertheless, obtaining high resolution and accurate results requires a sophisticated processing stage. Tere are many open-source seismic refection data processing sofware programs available; however, they ofen use a high-level programming language that decreases its overall performance, lacks intuitive user-interfaces, and is limited to a small set of tasks. Tese shortcomings reveal the need to develop new sofware using a programming language that is natively supported by Windows5 operating systems, which uses a relatively medium-level programming language (such as C#) and can be enhanced by an intuitive user interface. SEISGAMA was designed to address this need and employs a modular concept, where each processing group is combined into one module to ensure continuous and easy development and documentation.
    [Show full text]
  • Why SAS Programmers Should Learn Python Too Michael Stackhouse, Covance, Inc
    PharmaSUG 2018 - Paper AD-12 Why SAS Programmers Should Learn Python Too Michael Stackhouse, Covance, Inc. ABSTRACT Day to day work can often require simple, yet repetitive tasks. All companies have tedious processes that may involve moving and renaming files, making redundant edits to code, and more. Often, one might also want to find or summarize information scattered amongst many different files as well. While SAS programmers are very familiar with the power of SAS, the power of some lesser known but readily available tools may go unnoticed. The programming language Python has many capabilities that can easily automate and facilitate these tasks. Additionally, many companies have adopted Linux and UNIX as their OS of choice. With a small amount of background, and an understanding of Linux/UNIX command line syntax, powerful tools can be developed to eliminate these tedious activities. Better yet, these tools can be written to “talk back” to the user, making them more user friendly for those averse to venturing from their SAS editor. This paper will explore the benefits of how Python can be adopted into a SAS programming world. INTRODUCTION SAS is a great language, and it does what it’s designed to do very well, but other languages are better catered to different tasks. One language in particular that can serve a number of different purposes is Python. This is for a number of reasons. First off, it’s easy. Python has a very spoken-word style of syntax that is both intuitive to use and easy to learn. This makes it a very attractive language for newcomers, but also an attractive language to someone like a SAS programmer.
    [Show full text]