Methods, systems, and computer storage media for implementing neural networks in fixed point arithmetic computing systems. In one aspect, a method includes the actions of receiving a request to process a neural network using a processing system that performs neural network computations using fixed point arithmetic; for each node of each layer of the neural network, determining a respective scaling value for the node from the respective set of floating point weight values for the node; and converting each floating point weight value of the node into a corresponding fixed point weight value using the respective scaling value for the node to generate a set of fixed point weight values for the node; and providing the sets of fixed point floating point weight values for the nodes to the processing system for use in processing inputs using the neural network.
Please help me write a proper abstract based on the patent claims. CLAIM: 1-20. (canceled) 21. A method comprising: receiving a request to process a neural network using a processing system that performs neural network computations using fixed point arithmetic, the neural network comprising a plurality of layers including an input layer, each layer having a plurality of nodes, and each node of each layer having a set of floating point weight values; for each node of each layer, determining a respective scaling value for the node from the respective set of floating point weight values for the node; receiving a set of floating point input values for each of the plurality of nodes of the input layer of the neural network; for each of the plurality of nodes of the input layer, converting each floating point input value of the set of floating point input values for the node to a corresponding fixed point value using the respective scaling value for the node to generate a set of fixed point input values for the node; and providing each fixed point floating point input value to the processing system for use in processing inputs using the neural network. 22. The method of claim 21, wherein converting each floating point input value for a node of the input layer into a corresponding fixed point value comprises dividing the floating point input value by the respective scaling value for the node. 23. The method of claim 21, further comprising: receiving a set of fixed point output values generated by the processing system for a last layer of the plurality of layers, each fixed point output value corresponding to a respective node of the last layer; and converting each of the fixed point output values to a respective floating point output value using the scaling value for each node of the last layer corresponding to the fixed point output value. 24. The method of claim 23, wherein converting each fixed point output value to a corresponding floating point output value comprises dividing the fixed point output value by the respective scaling value for the node having the fixed point output value. 25. The method of claim 21, further comprising: for each node of each layer, converting each floating point weight value of the node into a corresponding fixed point weight value using the respective scaling value for the node to generate a set of fixed point weight values for the node. 26. The method of claim 25, wherein converting each floating point weight value to a corresponding fixed-point weight value comprises multiplying each floating point weight value by the respective scaling value for the node having the floating point weight value. 27. The method of claim 21, wherein the respective set of floating point weight values associated with each node of each layer represents a respective row or respective column in a weight matrix associated with the layer. 28. The method of claim 21, wherein determining the respective scaling value for each respective node is performed from the set of floating point weight values associated with the respective node and one or more sets of floating point weight values each associated with a node other than the respective node. 29. The method of claim 21, wherein determining the respective scaling value for the node comprises: identifying, for each set of floating point weight values associated with the node, the floating point weight value with the greatest magnitude; identifying a largest representable value in the fixed point arithmetic used by the processing system to perform neural network computations; computing the respective scaling value for each set of floating point weight values based on a ratio of the magnitude of the respective floating point weight value with the greatest magnitude and the maximum representable value in the fixed point arithmetic. 30. A system comprising one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising: receiving a request to process a neural network using a processing system that performs neural network computations using fixed point arithmetic, the neural network comprising a plurality of layers including an input layer, each layer having a plurality of nodes, and each node of each layer having a set of floating point weight values; for each node of each layer, determining a respective scaling value for the node from the respective set of floating point weight values for the node; receiving a set of floating point input values for each of the plurality of nodes of the input layer of the neural network; for each of the plurality of nodes of the input layer, converting each floating point input value of the set of floating point input values for the node to a corresponding fixed point value using the respective scaling value for the node to generate a set of fixed point input values for the node; and providing each fixed point floating point input value to the processing system for use in processing inputs using the neural network. 31. The system of claim 30, wherein converting each floating point input value for a node of the input layer into a corresponding fixed point value comprises dividing the floating point input value by the respective scaling value for the node. 32. The system of claim 30, further comprising: receiving a set of fixed point output values generated by the processing system for a last layer of the plurality of layers, each fixed point output value corresponding to a respective node of the last layer; and converting each of the fixed point output values to a respective floating point output value using the scaling value for each node of the last layer corresponding to the fixed point output value. 33. The system of claim 32, wherein converting each fixed point output value to a corresponding floating point output value comprises dividing the fixed point output value by the respective scaling value for the node having the fixed point output value. 34. The system of claim 30, further comprising: for each node of each layer, converting each floating point weight value of the node into a corresponding fixed point weight value using the respective scaling value for the node to generate a set of fixed point weight values for the node. 35. The system of claim 34, wherein converting each floating point weight value to a corresponding fixed-point weight value comprises multiplying each floating point weight value by the respective scaling value for the node having the floating point weight value. 36. The system of claim 30, wherein the respective set of floating point weight values associated with each node of each layer represents a respective row or respective column in a weight matrix associated with the layer. 37. The system of claim 30, wherein determining the respective scaling value for each respective node is performed from the set of floating point weight values associated with the respective node and one or more sets of floating point weight values each associated with a node other than the respective node. 38. The system of claim 30, wherein determining the respective scaling value for the node comprises: identifying, for each set of floating point weight values associated with the node, the floating point weight value with the greatest magnitude; identifying a largest representable value in the fixed point arithmetic used by the processing system to perform neural network computations; computing the respective scaling value for each set of floating point weight values based on a ratio of the magnitude of the respective floating point weight value with the greatest magnitude and the maximum representable value in the fixed point arithmetic. 39. A computer storage medium encoded with instructions that, when executed by one or more computers, cause the one or more computers to perform operations comprising: receiving a request to process a neural network using a processing system that performs neural network computations using fixed point arithmetic, the neural network comprising a plurality of layers including an input layer, each layer having a plurality of nodes, and each node of each layer having a set of floating point weight values; for each node of each layer, determining a respective scaling value for the node from the respective set of floating point weight values for the node; receiving a set of floating point input values for each of the plurality of nodes of the input layer of the neural network; for each of the plurality of nodes of the input layer, converting each floating point input value of the set of floating point input values for the node to a corresponding fixed point value using the respective scaling value for the node to generate a set of fixed point input values for the node; and providing each fixed point floating point input value to the processing system for use in processing inputs using the neural network. 40. The computer storage medium of claim 39, further comprising: receiving a set of fixed point output values generated by the processing system for a last layer of the plurality of layers, each fixed point output value corresponding to a respective node of the last layer; and converting each of the fixed point output values to a respective floating point output value using the scaling value for each node of the last layer corresponding to the fixed point output value.