An allocation system for machine learning, comprising: a terminal server and a cloud server, wherein: the terminal server is configured to obtain demand information and generate a control instruction according to the demand information, wherein the control instruction includes a terminal control instruction and a cloud control instruction, parse the terminal control instruction to obtain a terminal control signal, and according to the terminal control signal, compute a terminal workload of a machine learning algorithm of each stage to obtain a terminal computation result; the cloud server is configured to receive the cloud control instruction, parse the cloud control instruction to obtain a cloud control signal, and according to the cloud control signal, compute a cloud workload of the machine learning algorithm of each stage to obtain a cloud computation result; the terminal computation result and the cloud computation result form an output result together, wherein the terminal workload of the machine learning algorithm of each stage and the cloud workload of the machine learning algorithm of each stage together constitute a total computation workload of the machine learning algorithm of each stage, the system being characterized in that: each stage is one of each layer of a neural network or each iteration of a deep learning algorithm, and the control instruction is generated according to a scale of each layer and computation capabilities of the cloud server and the terminal server, wherein a computation task required by each layer of the neural network is subject to weighted allocation between the cloud server and the terminal server; wherein the demand information is determined by three aspects: function demand information; accuracy demand information; memory demand information. the terminal server is configured to obtain demand information and generate a control instruction according to the demand information, wherein the control instruction includes a terminal control instruction and a cloud control instruction, parse the terminal control instruction to obtain a terminal control signal, and according to the terminal control signal, compute a terminal workload of a machine learning algorithm of each stage to obtain a terminal computation result; the cloud server is configured to receive the cloud control instruction, parse the cloud control instruction to obtain a cloud control signal, and according to the cloud control signal, compute a cloud workload of the machine learning algorithm of each stage to obtain a cloud computation result; the terminal computation result and the cloud computation result form an output result together, wherein the terminal workload of the machine learning algorithm of each stage and the cloud workload of the machine learning algorithm of each stage together constitute a total computation workload of the machine learning algorithm of each stage, the system being characterized in that: each stage is one of each layer of a neural network or each iteration of a deep learning algorithm, and the control instruction is generated according to a scale of each layer and computation capabilities of the cloud server and the terminal server, wherein a computation task required by each layer of the neural network is subject to weighted allocation between the cloud server and the terminal server; wherein the demand information is determined by three aspects: function demand information; accuracy demand information; memory demand information. each stage is one of each layer of a neural network or each iteration of a deep learning algorithm, and the control instruction is generated according to a scale of each layer and computation capabilities of the cloud server and the terminal server, wherein a computation task required by each layer of the neural network is subject to weighted allocation between the cloud server and the terminal server; wherein the demand information is determined by three aspects: function demand information; accuracy demand information; memory demand information.