FYI: this library has been in development for nearly a decade and is very mature. It is as old as the likes of Scikit-Learn or Theano. It is, or at least was, widely used within MS.
Can you explain how this is done? Does this mean that VM and the GPUs can be on different host machines? Will it affect the GPU-CPU communication performance?
I'm a fan of Keras too. Including comments on Keras and other higher-level libraries would make my original review too long, hence I dropped it.
Note that the performance review is very much incomplete. As mentioned in the blog: Deep Learning is not just about feed-forward convnets, not just about ImageNet, and certainly not just about a few passes over the network. However, Soumith’s benchmark is the only notable one as of today. So we will base the Single-GPU performance rating based on his benchmark.
For TF, I think a bigger single-node perf issue is memory allocation. At NIPS, Jeff Dean didn't have a straight forward answer for why TF's memory perf is so poor.
Tensor is a much better term than multidimensional array:
- It's not as verbose
- The concept of tensor has linear algebra operations associated with it while multidimensional array is just a programming term without any attached Math operations.
I have used MSYS2 but decided to come back to Cygwin.
1. Commands in MSYS2, while fast in its shell, are slower than Cygwin's commands when run in PowerShell.
2. MSYS2 can't be installed via Chocolatey. It's because MSYS2 owners are against Chocolatey (insane!). Which makes it harder to automate the replication of my environment across machines.
3. Cygwin does has package managers. I use Cyg-Get, which is also available via Chocolatey.
If not, what do you think would be the most likely-way forward for cross-platform C++/CLI:
- Forget it
- Make VC++ cross-platform
- clang/gcc to support C++/CLI and produce mixed-mode assembly
?
public int X { get; } is more consistent with how properties are declared. Consistency is important.
If you care about clean code, here's an even better way
public readonly int X;
They are not exactly the same but they are equivalent in most cases. In exotic cases where you're required to use auto-getters, adding the brackets wouldn't hurt.
This is a rather poor example. If you distribute the C# code above as a library, people can extend and introduce another shape, while they cannot do it easily with you F# code.
Why can't it be good news? And good news to whom? To me, who cares about this company, this is good news because I think that MS needs to get much more nimble. I'm saying this as someone who can receive very bad news tomorrow.
MS only decided to open source it recently.
Disclaimer: I was one of the early team members.