A computer-implemented method comprising: obtaining, by a client computing device having one or more processors , a digital media item and a request for a processing task on the digital item; determining, by the client computing device , a set of operating parameters indicative of a desired distribution of the processing task between the client computing device and a server computing device and based on (i) available computing resources at the client computing device and (ii) a condition of a network , wherein the client computing device and the server computing device are configured for communication with each other via the network ; based on the set of operating parameters, selecting one of a plurality of artificial neural networks (ANNs), each ANN defining which portions of the processing task are to be performed by the client computing device and which portions of the processing task are to be performed by the server computing device , wherein each ANN defines first and second portions of the processing task, the first portion of the processing task to be performed via a first number of layers of the selected ANN stored at one of the client and server computing devices (i) by the one of the client and server computing devices prior to (ii) communication via the network that causes the other of the client and server computing devices to perform the second portion of the processing task via a second number of layers of the selected ANN stored at the other of the client and server computing devices; coordinating processing of the processing task, between the client and server computing devices , according to the selected ANN ; obtaining, by the client computing device , final processing results corresponding to a final evaluation of the processing task; and generating, by the client computing device , an output based on the final processing results. obtaining, by a client computing device having one or more processors , a digital media item and a request for a processing task on the digital item; determining, by the client computing device , a set of operating parameters indicative of a desired distribution of the processing task between the client computing device and a server computing device and based on (i) available computing resources at the client computing device and (ii) a condition of a network , wherein the client computing device and the server computing device are configured for communication with each other via the network ; based on the set of operating parameters, selecting one of a plurality of artificial neural networks (ANNs), each ANN defining which portions of the processing task are to be performed by the client computing device and which portions of the processing task are to be performed by the server computing device , wherein each ANN defines first and second portions of the processing task, the first portion of the processing task to be performed via a first number of layers of the selected ANN stored at one of the client and server computing devices (i) by the one of the client and server computing devices prior to (ii) communication via the network that causes the other of the client and server computing devices to perform the second portion of the processing task via a second number of layers of the selected ANN stored at the other of the client and server computing devices; coordinating processing of the processing task, between the client and server computing devices , according to the selected ANN ; obtaining, by the client computing device , final processing results corresponding to a final evaluation of the processing task; and generating, by the client computing device , an output based on the final processing results. <EOS>