arXiv (Cornell University) · 2013 · 303 citations · 7 references
ComputingComputer ScienceHigh-performance ComputingComputer VisionMachine LearningMachine VisionData ParallelismDeep LearningGraphics Processing Unit ComputingGraphics Processing UnitsHardware AccelerationPattern RecognitionComputer Vision AccelerationConvolutional Neural NetworksDeep Learning AccelerationGpu Architecture
Convolutional networks are one of the most widely employed architectures in computer vision and machine learning. In order to leverage their ability to learn complex functions, large amounts of data are required for training. Training a large convolutional network to produce state-of-the-art results can take weeks, even when using modern GPUs. Producing labels using a trained network can also be costly when dealing with web-scale datasets. In this work, we present a simple algorithm which accelerates training and inference by a significant factor, and can yield improvements of over an order of magnitude compared to existing state-of-the-art implementations. This is done by computing convolutions as pointwise products in the Fourier domain while reusing the same transformed feature map many times. The algorithm is implemented on a GPU architecture and addresses a number of related challenges.
7
ImageNet: A large-scale hierarchical image database
Jia Deng, Wei Dong, Richard Socher et al. · 2009 IEEE Conference on Computer Vision and Pattern Recognition · 2009 · 61.8K citations
An algorithm for the machine calculation of complex Fourier series
J.W. Cooley, John W. Tukey · Mathematics of Computation · 1965 · 12.2K citations
Representing shape with a spatial pyramid kernel
Anna Bosch, Andrew Zisserman, Xavier Muñoz · 2007 · 1.4K citations