On 31. Dec 2020, at 01:45, Sergei Marchenko via Boost
wrote: I have a template-based library with several common types of layers which can be assembled into various neural networks: https://github.com/svm-git/NeuralNet, and I would love to get community feedback on the overall design, any issues or missing features, and how interesting a library like that would be in general.
I only had a quick glance at your Github page. The code examples do not look bad and you put lot of examples up-front, which is good. A red flag is the use of variable names which start with _. That is discouraged. Some (not all) names starting with _ are reserved for implementers of the C++ stdlib, but there is no use going into the details. Just don't use variables starting with _ to be on the safe side and to give a good example to other C++ programmers. What would be the niche for this library? A NN C++ library would have to compete with the extensive amount of high-quality NN software that already exists in Python. You cannot compete in terms of features, obviously. I doubt that you have an advantage in terms of speed, because the Python libraries are already optimised for speed, many JIT-compile the hot code. There are large teams of excellent engineers working on making that possible. Does your library support GPU computation? Automatic differentiation? Probably not. I think the niche could be embedded systems. For prototyping and training a NN, Python is certainly the better choice, but once you have the final network, you may want to put it on an embedded system to do its work there. An embedded system does not have a GPU, so not supporting GPU computations wouldn't be a disadvantage. Best regards, Hans