US 11,928,577 B2
System and method for parallelizing convolutional neural networks
Alexander Krizhevsky, Mountain View, CA (US); Ilya Sutskever, San Francisco, CA (US); and Geoffrey E. Hinton, Toronto (CA)
Assigned to Google LLC, Mountain View, CA (US)
Filed by Google LLC, Mountain View, CA (US)
Filed on Apr. 27, 2020, as Appl. No. 16/859,815.
Application 16/859,815 is a continuation of application No. 15/414,514, filed on Jan. 24, 2017, granted, now 10,635,966.
Application 15/414,514 is a continuation of application No. 14/817,492, filed on Aug. 4, 2015, granted, now 9,563,840, issued on Feb. 7, 2017.
Application 14/817,492 is a continuation of application No. 14/030,938, filed on Sep. 18, 2013, granted, now 9,811,775, issued on Nov. 7, 2017.
Claims priority of provisional application 61/745,717, filed on Dec. 24, 2012.
Prior Publication US 2020/0327391 A1, Oct. 15, 2020
This patent is subject to a terminal disclaimer.
Int. Cl. G06N 3/04 (2023.01); G06F 18/214 (2023.01); G06N 3/045 (2023.01); G06N 3/063 (2023.01); G06N 3/08 (2023.01); G06T 1/20 (2006.01); G06V 10/44 (2022.01)
CPC G06N 3/063 (2013.01) [G06F 18/214 (2023.01); G06N 3/04 (2013.01); G06N 3/045 (2023.01); G06N 3/08 (2013.01); G06T 1/20 (2013.01); G06V 10/454 (2022.01)] 20 Claims
OG exemplary drawing
 
1. A system comprising one or more computers and one or more storage devices storing instructions that when executed by the one or more computers cause the one or more computers to implement a convolutional neural network, the convolutional neural network comprising:
a first convolutional layer configured to receive an input image and to process the input image to generate a first convolved output;
a first max-pooling operation immediately after the first convolutional layer in the convolutional neural network and configured to pool the first convolved output to generate a first pooled output;
a sequence having only a plurality of second convolutional layers that is after the max-pooling layer in the convolutional neural network and that is configured to receive a first input derived from the first pooled output and to process the first input to generate a second convolved output;
one or more fully-connected layers after the sequence of second convolutional layers in the convolutional neural network and configured to receive an output derived from the second convolved output and to collectively process the output derived from the second convolved output to generate an initial output for the input image; and
an output layer configured to classify the input image based at least in part on the initial output.