Methods, systems, and apparatus, including computer programs encoded on computer storage media, for training a neural network. One of the methods includes obtaining partitioned training data for the neural network, wherein the partitioned training data comprises a plurality of training items each of which is assigned to a respective one of a plurality of partitions, wherein each partition is associated with a respective difficulty level; and training the neural network on each of the partitions in a sequence from a partition associated with an easiest difficulty level to a partition associated with a hardest difficulty level, wherein, for each of the partitions, training the neural network comprises: training the neural network on a sequence of training items that includes training items selected from the training items in the partition interspersed with training items selected from the training items in all of the partitions.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method for training a neural network, the method comprising: obtaining partitioned training data for the neural network, wherein the partitioned training data comprises a plurality of training items each of which is assigned to a respective one of a plurality of partitions, wherein each partition is associated with a respective difficulty level; and training the neural network on each of the partitions in a sequence from a partition associated with an easiest difficulty level to a partition associated with a hardest difficulty level, wherein, for each of the partitions, training the neural network comprises: training the neural network on a sequence of training items that includes training items selected from the training items in the partition interspersed with training items selected from the training items in all of the partitions. 2. The method of claim 1, wherein the training items selected from the training items in all of the partitions are interspersed at predetermined regular intervals in the sequence. 3. The method of claim 1, wherein the training items selected from the training items in the partition are a majority of the training items in the sequence. 4. The method of claim 1, further comprising, for each of the training items selected from the training items in all of the partitions: randomly selecting a partition from the plurality of partitions; and randomly selecting the training item from the randomly selected partition. 5. The method of claim 1, further comprising, for each of the training items selected from the training items in all of the partitions, selecting the training item randomly from among the plurality of training items. 6. The method of claim 1, further comprising, for each of the training items selected from the training items in the partition, selecting the training item randomly from the training items in the partition. 7. The method of claim 1, wherein, for each of the partitions, training the neural network further comprises: determining that a performance of the neural network has stopped improving; and refraining from training the neural network further on the partition in response to determining that the performance of the neural network has stopped improving. 8. The method of claim 7, wherein determining that the performance of the neural network has stopped improving comprises determining that a reduction in an error measure for the training has become lower than a threshold. 9. The method of claim 1, wherein the neural network is a recurrent neural network. 10. The method of claim 9, wherein the recurrent neural network is a long short term (LSTM) neural network. 11. The method of claim 9, wherein each of the training items is a sequence of code from a respective computer program and wherein the recurrent neural network is configured to process the sequence of code and output a predicted output of the computer program. 12. The method of claim 11, wherein obtaining the partitioned training data for the neural network comprises: obtaining the sequences of code; and assigning each of the sequences of code a respective difficulty level. 13. The method of claim 12, wherein the difficulty levels are based at least in part on lengths of values that appear in the code. 14. The method of claim 12, wherein the difficulty levels are based at least in part on levels of nesting that appear in the code. 15. A system comprising one or more computers and one or more storage devices storing instructions that when executed by one or more computers cause the one or more computers to perform operations comprising: obtaining partitioned training data for the neural network, wherein the partitioned training data comprises a plurality of training items each of which is assigned to a respective one of a plurality of partitions, wherein each partition is associated with a respective difficulty level; and training the neural network on each of the partitions in a sequence from a partition associated with an easiest difficulty level to a partition associated with a hardest difficulty level, wherein, for each of the partitions, training the neural network comprises: training the neural network on a sequence of training items that includes training items selected from the training items in the partition interspersed with training items selected from the training items in all of the partitions. 16. The system of claim 15, wherein the training items selected from the training items in all of the partitions are interspersed at predetermined regular intervals in the sequence. 17. The system of claim 15, wherein the training items selected from the training items in the partition are a majority of the training items in the sequence. 18. The system of claim 15, the operations further comprising, for each of the training items selected from the training items in the partition, selecting the training item randomly from the training items in the partition. 19. The system of claim 15, wherein, for each of the partitions, training the neural network further comprises: determining that a performance of the neural network has stopped improving; and refraining from training the neural network further on the partition in response to determining that the performance of the neural network has stopped improving. 20. A computer program product encoded on one or more non-transitory computer storage media, the computer program product comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising: obtaining partitioned training data for the neural network, wherein the partitioned training data comprises a plurality of training items each of which is assigned to a respective one of a plurality of partitions, wherein each partition is associated with a respective difficulty level; and training the neural network on each of the partitions in a sequence from a partition associated with an easiest difficulty level to a partition associated with a hardest difficulty level, wherein, for each of the partitions, training the neural network comprises: training the neural network on a sequence of training items that includes training items selected from the training items in the partition interspersed with training items selected from the training items in all of the partitions.