def __init__(self, n_class=1000, threshold=0.5, pt_func=None):
        self.threshold = threshold
        self.pt_func = pt_func
        self.n_class = n_class
        super(Alex, self).__init__()
        with self.init_scope():
            self.conv1 = L.Convolution2D(3, 96, 11, stride=4, pad=4)
            self.bn1 = L.BatchNormalization(96)
            self.conv2 = L.Convolution2D(96, 256, 5, stride=1, pad=1)
            self.bn2 = L.BatchNormalization(256)
            self.conv3 = L.Convolution2D(256, 384, 3, stride=1, pad=1)
            self.conv4 = L.Convolution2D(384, 384, 3, stride=1, pad=1)
            self.conv5 = L.Convolution2D(384, 256, 3, stride=1, pad=1)
            self.bn5 = L.BatchNormalization(256)
            self.fc6 = L.Linear(33280, 4096)
            self.fc7 = L.Linear(4096, 4096)
            self.fc8 = L.Linear(4096, 2*n_class)