Esempio n. 1
0
    # Liniarize II
    nn = FeedForward([
        LinearizeLayer(32, 32, 3),
        FullyConnected(32 * 32 * 3, 300, identity),
        Tanh(),
        FullyConnected(300, 200, identity),
        Tanh(),
        FullyConnected(200, 10, identity),
        SoftMax()
    ])

    # # Convolutional I
    nn = FeedForward([
        ConvolutionalLayer(3, 32, 32, 6, 5, 1),
        MaxPoolingLayer(2),
        ReluLayer(),
        ConvolutionalLayer(6, 14, 14, 16, 5, 1),
        MaxPoolingLayer(2),
        ReluLayer(),
        LinearizeLayer(16, 5, 5),
        FullyConnected(400, 300, relu),
        FullyConnected(300, 10, relu),
        SoftMax()
    ])

    # Convolutional II
    # nn = FeedForward([
    #     ConvolutionalLayer(3, 32, 32, 6, 5, 1),
    #     ReluLayer(),
    #     ConvolutionalLayer(6, 28, 28, 16, 5, 1),
Esempio n. 2
0
 def __init__(self):
     # Lenet
     # input: 28x28
     # conv1: (5x5x6)@s1p2 -> 28x28x6 {(28-5+2x2)/1+1}
     # maxpool2: (2x2)@s2 -> 14x14x6 {(28-2)/2+1}
     # conv3: (5x5x16)@s1p0 -> 10x10x16 {(14-5)/1+1}
     # maxpool4: (2x2)@s2 -> 5x5x16 {(10-2)/2+1}
     # conv5: (5x5x120)@s1p0 -> 1x1x120 {(5-5)/1+1}
     # fc6: 120 -> 84
     # fc7: 84 -> 10
     # softmax: 10 -> 10
     lr = 0.01
     self.layers = []
     self.layers.append(
         ConvolutionLayer(inputs_channel=1,
                          num_filters=6,
                          width=5,
                          height=5,
                          padding=2,
                          stride=1,
                          learning_rate=lr,
                          name='conv1'))
     self.layers.append(ReLu())
     self.layers.append(
         MaxPoolingLayer(width=2, height=2, stride=2, name='maxpool2'))
     self.layers.append(
         ConvolutionLayer(inputs_channel=6,
                          num_filters=16,
                          width=5,
                          height=5,
                          padding=0,
                          stride=1,
                          learning_rate=lr,
                          name='conv3'))
     self.layers.append(ReLu())
     self.layers.append(
         MaxPoolingLayer(width=2, height=2, stride=2, name='maxpool4'))
     self.layers.append(
         ConvolutionLayer(inputs_channel=16,
                          num_filters=120,
                          width=5,
                          height=5,
                          padding=0,
                          stride=1,
                          learning_rate=lr,
                          name='conv5'))
     self.layers.append(ReLu())
     self.layers.append(Flatten())
     self.layers.append(
         FullyConnectedLayer(num_inputs=120,
                             num_outputs=84,
                             learning_rate=lr,
                             name='fc6'))
     self.layers.append(ReLu())
     self.layers.append(
         FullyConnectedLayer(num_inputs=84,
                             num_outputs=10,
                             learning_rate=lr,
                             name='fc7'))
     self.layers.append(Softmax())
     self.lay_num = len(self.layers)