示例#1
0
NN.add('conv1', ConvLayer(3, 64, 224, 3))
NN.add('conv2', ConvLayer(64, 64, 224, 3))
NN.add('pool1', PoolingLayer(64, 112, 2))

NN.add('conv3', ConvLayer(64, 128, 112, 3))
NN.add('conv4', ConvLayer(128, 128, 112, 3))
NN.add('pool2', PoolingLayer(128, 56, 2))

NN.add('conv5', ConvLayer(128, 256, 56, 3))
NN.add('conv6', ConvLayer(256, 256, 56, 3))
NN.add('conv7', ConvLayer(256, 256, 56, 3))
NN.add('conv8', ConvLayer(256, 256, 56, 3))
NN.add('pool3', PoolingLayer(256, 28, 2))

NN.add('conv9', ConvLayer(256, 512, 28, 3))
NN.add('conv10', ConvLayer(512, 512, 28, 3))
NN.add('conv11', ConvLayer(512, 512, 28, 3))
NN.add('conv12', ConvLayer(512, 512, 28, 3))
NN.add('pool4', PoolingLayer(512, 14, 2))

NN.add('conv13', ConvLayer(512, 512, 14, 3))
NN.add('conv14', ConvLayer(512, 512, 14, 3))
NN.add('conv15', ConvLayer(512, 512, 14, 3))
NN.add('conv16', ConvLayer(512, 512, 14, 3))
NN.add('pool5', PoolingLayer(512, 7, 2))

NN.add('fc1', FCLayer(512, 4096, 7))
NN.add('fc2', FCLayer(4096, 4096, 1))
NN.add('fc3', FCLayer(4096, 1000, 1))
示例#2
0
3D Memory", in ASPLOS'17. April, 2017), and that you send us a citation of your
work.

This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the BSD-3 License for more details.

You should have received a copy of the Modified BSD-3 License along with this
program. If not, see <https://opensource.org/licenses/BSD-3-Clause>.
"""
'''
AlexNet

Used in Eyeriss paper.
'''

from collections import OrderedDict

from nn_dataflow import Layer, FCLayer

LAYERS = OrderedDict()

LAYERS['conv1'] = Layer(3, 96, 55, 11, 4)
LAYERS['conv2'] = Layer(48, 256, 27, 5)
LAYERS['conv3'] = Layer(256, 384, 13, 3)
LAYERS['conv4'] = Layer(192, 384, 13, 3)
LAYERS['conv5'] = Layer(192, 256, 13, 3)
LAYERS['fc1'] = FCLayer(256, 4096, 6)
LAYERS['fc2'] = FCLayer(4096, 4096, 1)
LAYERS['fc3'] = FCLayer(4096, 1000, 1)
示例#3
0
NN.add('pool4', PoolingLayer(832, 7, 3, strd=2), prevs=_PREVS)
_PREVS = ('pool4', )

# Inception 5.
_PREVS = add_inception(NN,
                       '5a',
                       7,
                       832,
                       256,
                       160,
                       320,
                       32,
                       128,
                       128,
                       prevs=_PREVS)
_PREVS = add_inception(NN,
                       '5b',
                       7,
                       832,
                       384,
                       192,
                       384,
                       48,
                       128,
                       128,
                       prevs=_PREVS)

NN.add('pool5', PoolingLayer(1024, 1, 7, strd=2), prevs=_PREVS)

NN.add('fc', FCLayer(1024, 1000, 1))
示例#4
0
'''

NN = Network('AlexNet')

NN.set_input(InputLayer(3, 224))

NN.add('conv1_a', ConvLayer(3, 48, 55, 11, 4), prevs=(NN.INPUT_LAYER_KEY, ))
NN.add('conv1_b', ConvLayer(3, 48, 55, 11, 4), prevs=(NN.INPUT_LAYER_KEY, ))
NN.add('pool1_a', PoolingLayer(48, 27, 3, strd=2), prevs=('conv1_a', ))
NN.add('pool1_b', PoolingLayer(48, 27, 3, strd=2), prevs=('conv1_b', ))
# Norm layer is ignored.

NN.add('conv2_a', ConvLayer(48, 128, 27, 5), prevs=('pool1_a', ))
NN.add('conv2_b', ConvLayer(48, 128, 27, 5), prevs=('pool1_b', ))
NN.add('pool2_a', PoolingLayer(128, 13, 3, strd=2), prevs=('conv2_a', ))
NN.add('pool2_b', PoolingLayer(128, 13, 3, strd=2), prevs=('conv2_b', ))
# Norm layer is ignored.

NN.add('conv3_a', ConvLayer(256, 192, 13, 3), prevs=('pool2_a', 'pool2_b'))
NN.add('conv3_b', ConvLayer(256, 192, 13, 3), prevs=('pool2_a', 'pool2_b'))
NN.add('conv4_a', ConvLayer(192, 192, 13, 3), prevs=('conv3_a', ))
NN.add('conv4_b', ConvLayer(192, 192, 13, 3), prevs=('conv3_b', ))
NN.add('conv5_a', ConvLayer(192, 128, 13, 3), prevs=('conv4_a', ))
NN.add('conv5_b', ConvLayer(192, 128, 13, 3), prevs=('conv4_b', ))
NN.add('pool3_a', PoolingLayer(128, 6, 3, strd=2), prevs=('conv5_a', ))
NN.add('pool3_b', PoolingLayer(128, 6, 3, strd=2), prevs=('conv5_b', ))

NN.add('fc1', FCLayer(256, 4096, 6), prevs=('pool3_a', 'pool3_b'))
NN.add('fc2', FCLayer(4096, 4096, 1))
NN.add('fc3', FCLayer(4096, 1000, 1))
示例#5
0
Simonyan and Zisserman, 2014
'''

from collections import OrderedDict

from nn_dataflow import Layer, FCLayer

LAYERS = OrderedDict()

LAYERS['conv1'] = Layer(3, 64, 224, 3)
LAYERS['conv2'] = Layer(64, 64, 224, 3)

LAYERS['conv3'] = Layer(64, 128, 112, 3)
LAYERS['conv4'] = Layer(128, 128, 112, 3)

LAYERS['conv5'] = Layer(128, 256, 56, 3)
LAYERS['conv6'] = Layer(256, 256, 56, 3)
LAYERS['conv7'] = Layer(256, 256, 56, 3)

LAYERS['conv8'] = Layer(256, 512, 28, 3)
LAYERS['conv9'] = Layer(512, 512, 28, 3)
LAYERS['conv10'] = Layer(512, 512, 28, 3)

LAYERS['conv11'] = Layer(512, 512, 14, 3)
LAYERS['conv12'] = Layer(512, 512, 14, 3)
LAYERS['conv13'] = Layer(512, 512, 14, 3)

LAYERS['fc1'] = FCLayer(512, 4096, 7)
LAYERS['fc2'] = FCLayer(4096, 4096, 1)
LAYERS['fc3'] = FCLayer(4096, 1000, 1)