A method of adaptively selecting a configuration for a machine learning process includes determining current system resources and performance specifications of a current system. A new configuration for the machine learning process is determined based at least in part on the current system resources and the performance specifications. The method also includes dynamically selecting between a current configuration and the new configuration based at least in part on the current system resources and the performance specifications.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method of adaptively selecting a configuration for a machine learning process, comprising: determining current system resources and performance specifications of a current system; determining a new configuration for the machine learning process based at least in part on the current system resources and the performance specifications; and dynamically selecting between a current configuration and the new configuration based at least in part on the current system resources and the performance specifications. 2. The method of claim 1, further comprising determining which configuration to select based at least in part on: performance of the current configuration and the new configuration, latencies associated with the current configuration and the new configuration, power consumption associated with the current configuration and the new configuration, ease of applying another configuration, processor resources associated with the current configuration and the new configuration, memory bandwidth associated with the current configuration and the new configuration, and/or communication specifications associated with the current configuration and the new configuration. 3. The method of claim 1, further comprising: continuously executing a first configuration of the machine learning process with a first processor; periodically executing a second configuration of the machine learning process with a second processor, the second configuration having a complexity that is greater than the complexity of the first configuration; and aggregating results from the first configuration and the second configuration. 4. The method of claim 1, in which the machine learning process comprises an artificial neural network and the method further comprises: determining the new configuration by changing a number representation of weights and/or activations in the current configuration; adjusting hyper-parameters based at least in part on the current artificial neural network; adopting a student network derived from the current artificial neural network; decomposing filters of the current artificial neural network; compressing the current artificial neural network; reducing image resolution of the current artificial neural network; adjusting sparsity of the current artificial neural network; changing filters of the current artificial neural network, selecting a number of samples for online learning; changing a number of candidate windows considered for localization; and/or performing saliency masking. 5. An apparatus for adaptively selecting a configuration for a machine learning process, comprising: means for determining current system resources and performance specifications of a current system; means for determining a new configuration for the machine learning process based at least in part on current system resources and the performance specifications; and means for dynamically selecting between a current configuration and the new configuration based at least in part on the current system resources and the performance specifications. 6. The apparatus of claim 5, further comprising means for determining which configuration to select based at least in part on: performance of the current configuration and new configuration, latencies associated with the current configuration and new configuration, power consumption associated with the current configuration and new configuration, ease of applying another configuration, processor resources associated with the current configuration and new configuration, memory bandwidth associated with the current configuration and the new configuration, and/or communication specifications associated with the current configuration and the new configuration. 7. The apparatus of claim 5, further comprising: means for continuously executing a first configuration of the machine learning process with a first processor; means for periodically executing a second configuration of the machine learning process with a second processor, the second configuration having a complexity that is greater than the complexity of the first configuration; and means for aggregating results from the first configuration and the second configuration. 8. The apparatus of claim 5, in which the machine learning process comprises an artificial neural network and the apparatus further comprises: means for determining the new configuration by changing a number representation of weights and/or activations in the current configuration; means for adjusting hyper-parameters based at least in part on the current artificial neural network; means for adopting a student network derived from the current artificial neural network; means for decomposing filters of the current artificial neural network; means for compressing the current artificial neural network; means for reducing image resolution of the current artificial neural network; means for adjusting sparsity of the current artificial neural network; means for changing filters of the current artificial neural network; means for selecting a number of samples for online learning; means for changing a number of candidate windows considered for localization; and/or means for performing saliency masking. 9. An apparatus for of adaptively selecting a configuration for a machine learning process, comprising: a memory; and at least one processor coupled to the memory, the at least one processor being configured: to determine current system resources and performance specifications of a current system; to determine a new configuration for the machine learning process based at least in part on the current system resources and the performance specifications; and to dynamically select between a current configuration and the new configuration based at least in part on the current system resources and the performance specifications. 10. The apparatus of claim 9, in which the at least one processor is further configured to determine which configuration to select based at least in part on performance of the current configuration and new configuration, latencies associated with the current configuration and new configuration, power consumption associated with the current configuration and new configuration, ease of applying another configuration, processor resources associated with the current configuration and new configuration, memory bandwidth associated with the current configuration and the new configuration, and/or communication specifications associated with the current configuration and the new configuration. 11. The apparatus of claim 9, in which the at least one processor is further configured: to continuously execute a first configuration of the machine learning process with a first processor; to periodically execute a second configuration of the machine learning process with a second processor, the second configuration having a complexity that is greater than the complexity of the first configuration; and to aggregate results from the first configuration and the second configuration. 12. The apparatus of claim 9, in which the machine learning process comprises an artificial neural network and the at least one processor is further configured: to determine the new configuration by changing a number representation of weights and/or activations in the current configuration; to adjust hyper-parameters based at least in part on the current artificial neural network; to adopt a student network derived from the current artificial neural network; to decompose filters of the current artificial neural network; to compress the current artificial neural network; to reduce image resolution of the current artificial neural network; to adjust sparsity of the current artificial neural network; to change filters of the current artificial neural network; to select a number of samples for online learning; to change a number of candidate windows considered for localization; and/or to perform saliency masking. 13. A non-transitory computer-readable medium having non-transitory program code recorded thereon, the program code comprising: program code to determine current system resources and performance specifications of a current system; program code to determine a new configuration for a machine learning process based at least in part on the current system resources and the performance specifications; and program code to dynamically select between a current configuration and the new configuration based at least in part on the current system resources and the performance specifications. 14. The non-transitory computer-readable medium of claim 13, further comprising program code to determine which configuration to select based at least in part on performance of the current configuration and new configuration, latencies associated with the current configuration and new configuration, power consumption associated with the current configuration and new configuration, ease of applying another configuration, processor resources associated with the current configuration and new configuration, memory bandwidth associated with the current configuration and the new configuration, and/or communication specifications associated with the current configuration and the new configuration. 15. The non-transitory computer-readable medium of claim 13, further comprising: program code to continuously execute a first configuration of the machine learning process with a first processor; program code to periodically execute a second configuration of the machine learning process with a second processor, the second configuration having a complexity that is greater than the complexity of the first configuration; and program code to aggregate results from the first configuration and the second configuration. 16. The non-transitory computer-readable medium of claim 13, in which the machine learning process comprises an artificial neural network and the non-transitory computer-readable medium further comprises: program code to determine the new configuration by changing a number representation of weights and/or activations in the current configuration; program code to adjust hyper-parameters based at least in part on the current artificial neural network; program code to adopt a student network derived from the current artificial neural network; program code to decompose filters of the current artificial neural network; program code to compress the current artificial neural network; program code to reduce image resolution of the current artificial neural network; program code to adjust sparsity of the current artificial neural network; program code to change filters of the current artificial neural network; program code to select a number of samples for online learning; program code to change a number of candidate windows considered for localization; and/or program code to perform saliency masking.