4 ms·
> All cool neural network research is done on Keras/Tensorflow, so developing on that platform gives access to new algorithms automatically I disagree with tha
by hobofan 9y ago
> All cool neural network research is done on Keras/Tensorflow, so developing on that platform gives access to new algorithms automatically
I disagree with that assessment. The implementations that come with research are rarely of a quality that they can just be picked up and used. Yes, the community is bigger with Python frameworks, which gives you quicker access to the new stuff, but the effort is about the same as writing a new implementation in another language.
- liuliu 9y agoIt doesn't matter. Most of the time, especially with Tensorflow, you will have a static computation graph somewhere. Nothing (well, implementation-defined) prevent you compile that into CoreML / Caffe / Caffe2 or just Tensorflow lean version to get deployed. PyTorch is a bit different because it supports dynamic graph.
- danieldk 9y agowhich gives you quicker access to the new stuff, but the effort is about the same as writing a new implementation in another language Not really. You can just serialize a Tensorflow graph, freeze the variables as constants, and then load and run the graph using Tensorflow's small and convenient C API. There are bindings to the C API for multiple languages (e.g. Rust and Go). This is how I use neural networks in my Rust (and formerly Go) programs: I just build and train the graph in Python and then use it in Rust. Newer versions of Tensorflow also have the XLA compiler, which compiles a graph to executable code that you can link directly into an application. I haven't tried this approach yet, since the C API serves me well, but it looks promising.