Computational frameworks for ANNs
Over the years, many frameworks and libraries have been developed to deal with the implementation, training, and computation of ANNs, also following the different trends in the programming languages traditionally used by researchers, like C, C++, Lua, Python, and Java. Generally, all these libraries provide a framework to define:
- The representation of the network, which specifies the relationship between inputs, outputs, and the parameter that this representation depends on
- The loss function relating input, outputs, and parameters, which we want to minimize
- The optimizer algorithm to be used to minimize the loss function
Besides this basic information needed to train ANNs, the different libraries also commonly offer (and this is where the key differences between libraries often emerge from a developer’s standpoint) some predefined types of neurons, kernels, and layers. These predefined components make it easier...