Difference between revisions of "Neural net software notes"

From Helpful
Jump to: navigation, search
m
m
Line 15: Line 15:
 
* if looking to experiment, probably look at keras instead
 
* if looking to experiment, probably look at keras instead
 
* GPU: CUDA
 
* GPU: CUDA
 +
* CPU: yes
  
 
Tensorflow
 
Tensorflow
Line 21: Line 22:
 
* varying frontends
 
* varying frontends
 
* GPU: CUDA
 
* GPU: CUDA
 +
* CPU: yes
 
* multi-node: yes
 
* multi-node: yes
  
Line 28: Line 30:
 
* not always tweakable
 
* not always tweakable
 
* GPU: yes (see backends; CUDA)
 
* GPU: yes (see backends; CUDA)
 +
* CPU: yes
 
* usable as API/frontend to TensorFlow, Theano, CNTK
 
* usable as API/frontend to TensorFlow, Theano, CNTK
 
* creator/backer: google
 
* creator/backer: google
Line 38: Line 41:
 
* can be annoying to compile/install
 
* can be annoying to compile/install
 
* GPU: yes, but a little work
 
* GPU: yes, but a little work
 +
* CPU: yes
 
* multi-node: yes (MPI)
 
* multi-node: yes (MPI)
 
* C++
 
* C++
Line 48: Line 52:
 
Torch
 
Torch
 
* itself C, with lua wrapper
 
* itself C, with lua wrapper
 +
* CPU: yes{{verify}}
  
 
Pytorch wraps the torch binaries with python wrapper (and also something of a successor{{verify}})
 
Pytorch wraps the torch binaries with python wrapper (and also something of a successor{{verify}})
Line 53: Line 58:
 
* caffe2 is merging into pytorch
 
* caffe2 is merging into pytorch
  
 +
 +
darknet
 +
* GPU: CUDA
 +
* CPU: yes
  
  
Line 58: Line 67:
 
* creator/backer: microsoft
 
* creator/backer: microsoft
 
* GPU: CUDA
 
* GPU: CUDA
 
+
* CPU: yes
  
 
MXNet
 
MXNet
 
* creator/backer: Microsoft/Amazon
 
* creator/backer: Microsoft/Amazon
 
* language/wrapper: R, C, python, Js
 
* language/wrapper: R, C, python, Js
 +
* GPU: CUDA
 +
* CPU: yes
  
 
Chainer
 
Chainer
Line 69: Line 80:
 
* easy an fast, apparently
 
* easy an fast, apparently
 
* GPU: CUDA
 
* GPU: CUDA
 +
* CPU: yes
 
* smaller community
 
* smaller community
  
Line 75: Line 87:
 
* smaller community, though  
 
* smaller community, though  
 
* GPU: yes
 
* GPU: yes
 +
* CPU: yes
 
* scaling: yes
 
* scaling: yes
  
  
 
Static versus dynamic graphs:
 
Static versus dynamic graphs:
 
+
: Static means you have to define the graph before you run it, which is perfectly good for pre-set jobs, and sometimes faster.
Static means you have to define the graph before you run it, which is good for pre-set jobs (and sometimes faster),
+
: Dynamic means it can change during execution, which can be more powerful for e.g. unstructured data and RNNs - while they're not necessary for e.g. most image / CNN work.
 
+
Dynamic means it can change during execution, which can be more powerful for e.g. unstructured data and RNNs - while they're not necessary for most image / CNN work.
+
 
+
 
+
  
  

Revision as of 13:32, 2 November 2019

Broad comparison

Installation notes

TensorFlow