CN-117236400-B - Data processing array
Abstract
The present disclosure relates to data processing arrays. A system (10) for convolving and summing data frames includes a first sensor-display device (14) and a second sensor-display device (26). Each sensor-display device (14, 26) includes an array (80) of transmit-receive modules (82). Each transmit-receive module (82) includes a light sensor element (86), a light emitter element (84), and a memory bank (90). The radial modulator device (20) is placed in a position to fourier transform the transmission of the light field comprising the data frame. The filter implemented by the modulator elements of the radial modulator device (20) convolves the light field comprising the data frames, which is then sensed on a pixel-by-pixel basis by the photo sensor elements (86) that accumulate charge, thus summing the pixel values of the sequential convolved data frames.
Inventors
- R. J. Claire
- J. C. bayaldo
- D. A. bruser
Assignees
- 视觉动力公司
Dates
- Publication Date
- 20260505
- Application Date
- 20180920
- Priority Date
- 20170920
Claims (5)
- 1. A data processing array, comprising: An array of modules arranged in a plurality of rows and columns, each module in the array comprising a read-write memory; A pooling chain comprising a first pooling boundary line extending along a first side of each module in each column of the array and a second pooling boundary line extending along a second side of each module in the array, wherein the first boundary line extending along the first side of each module intersects and connects with the second boundary line extending along the second side of the module to form a boundary pooling circuit for that module, and wherein the boundary pooling circuit of each module is connected with an adjacent pooling circuit of an adjacent module in the same column by a first openable and closable switch and with an adjacent pooling circuit of an adjacent module in the same row by a second openable and closable switch; A memory pooling interface in each module for connecting the memory in that module to the boundary pooling circuit of that module to enable reading of data from the memory of that module to the pooling circuit and to enable writing of data from the boundary pooling circuit to the memory.
- 2. The data processing array of claim 1, comprising: A pooled row switch control line connected to each first switch in the column of modules for simultaneously opening and closing all the first switches in the column, and A pooled column switch control line connected to each second switch in the row of modules for simultaneously opening and closing all the second switches in the row.
- 3. The data processing array of claim 2, wherein each module includes an optical modulator, a modulation driver connected to the optical modulator, and a modulation pooling interface connecting the modulation driver to the boundary pooling circuit of the module to enable writing of data from the boundary pooling circuit to drive the optical modulator.
- 4. A data processing array according to claim 3, wherein each module comprises a light sensor and a sensor interface for placing data from the light sensor onto the boundary pooling circuit.
- 5. The data processing array of claim 1, wherein each module includes a data interface connecting analog data lines to the memory of the module for reading data from the memory to an analog-to-digital converter and writing data from a digital-to-analog converter to the memory.
Description
Data processing array The application is a divisional application of patent application 201880075224.5 with the name of 'photonic neural network system' of which the application date is 2018, 9, 20. Technical Field The present invention relates to neural networks, and more particularly to convolutional neural networks with optical processing. Background Neural networks are well known as computing systems that include many simple, highly interconnected processing elements that process information through their dynamic state response to external inputs. Neural networks recognize patterns and are useful for clustering and classifying data. A computer may implement machine learning using a neural network, where the computer learns to perform some tasks by analyzing training examples. Typically, examples have been marked in advance by the user. For example, a neural network configured as an object recognition system or image recognition system may be fed thousands of example images labeled "cat" or "no cat" and then use the results to identify or indicate no cat in other images, as the case may be. Alternatively, examples of thousands of images with various objects (e.g., cats, cattle, horses, pigs, sheep, cars, trucks, boats, and airplanes) may be fed to such a neural network configured as an object recognition system and labeled as such, and the results then used to identify whether there are any cats, cattle, horses, pigs, sheep, cars, trucks, boats, or airplanes in the other images. Convolutional Neural Networks (CNNs) are a type of neural network that uses many identical copies of the same neurons, which enables the network to have many neurons and to represent computationally very large models while the number of actual values describing how the neurons behave (which are to be learned) is small. Convolution is one way to combine two signals to form a third signal. CNNs are typically implemented in software or programmable digital hardware. Deep learning is a term for stacked neural networks (i.e., networks comprising multiple layers). The layer is made up of nodes. A node is where a calculation is made, in a loose pattern on neurons in the human brain, which triggers when it encounters sufficient stimulus. The node combines the input from the data with a set of coefficients (or weights that amplify or suppress the input), thereby assigning importance to the input for the task that the algorithm is attempting to learn, e.g., which input is most helpful in classifying the data without error. The products of these inputs multiplied by weights are summed and the sum is then passed through the activation function of the node to determine whether and to what extent the signal proceeds further through the network to affect the final result, e.g., the action of classification. The node layer is a row of these neuron-like switches that open or close when input is fed through the network. Starting from the initial input layer receiving data, the output of each layer is simultaneously the input of the subsequent layer. More than three node layers are considered "deep" learning. In a deep learning network, each layer of nodes trains a different set of features based on the output of the previous layer, so the more layers data (e.g., pictures, images, speech, etc.) passes through, the more complex the features that the node can identify. During training, a process called back propagation is utilized to provide an adjustment to increase the likelihood that the network will predict the same type of image next. Such data processing and back propagation is performed again until the predictions are fairly accurate and not improved. The neural network can then be utilized in an inference mode to classify new input data and predict the results that are inferred from its training. A typical convolutional neural network has four basic layers of neurons, a convolutional layer, an active layer, a pooling layer, and a fully-connected layer, in addition to an input layer and an output layer. In the initial convolutional layer or layers, thousands of neurons act as a first set of filters that scour each portion and pixel in the image, looking for patterns. As more and more images are processed, each neuron gradually learns to filter for a particular feature, which improves accuracy. Effectively, one or more convolution layers decompose an image into different features. The activation layer then highlights salient features, such as features that may be of value or importance in the final identification result. For example, the eyes may indicate a face rather than a frying pan. All convolutions and activations across the entire image generate large amounts of data and can overwhelm the computing power of the computer, thus using pooling to compress the data into a more tractable form. Pooling is the process of selecting the best data and discarding the rest of the data, resulting in a lower resolution data set. Several types of poolin