# Path: selfsup/multi/basenets/basenet.py
# class BaseNet:
#     def __init__(self):
#         pass
# 
#     @property
#     def name(self):
#         raise NotImplemented('Abstract base class')
# 
#     @property
#     def canonical_input_size(self):
#         raise NotImplemented('Abstract base class')
# 
#     @property
#     def hypercolumn_layers(self):
#         """Suggested hypercolumn layers"""
#         return []
# 
#     @property
#     def layers(self):
#         return [name for name, _ in self.hypercolumn_layers]
# 
#     def build(self):
#         raise NotImplemented('Abstract base class')
# 
#     def save_caffemodel(self, path, session, verbose=False):
#         raise NotImplemented('Abstract base class')
# 
# Path: selfsup/util.py
# class DummyDict(object):
#     def __init__(self):
#         pass
#     def __getitem__(self, item):
#         return DummyDict()
#     def __setitem__(self, item, value):
#         return DummyDict()
#     def get(self, item, default=None):
#         if default is None:
#             return DummyDict()
#         else:
#             return default


from .basenet import BaseNet
from selfsup.util import DummyDict
import selfsup
import selfsup.alex_bn2
import selfsup.model.alex
import selfsup.model.alex_bn
import selfsup.model.alex_bn2
import selfsup.model.alex_transposed
    @property
    def name(self):
        return 'alex'

    @property
    def canonical_input_size(self):
        return 227

    @property
    def hypercolumn_layers(self):
        return [
            ('x',     1.0),
            ('conv1', 4.0),
            ('conv2', 8.0),
            ('conv3', 16.0),
            ('conv4', 16.0),
            ('conv5', 16.0),
            ('fc6', 32.0),
            ('fc7', 32.0),
        ]

    def build(self, x01, phase_test, global_step, settings={}):
        self._global_step = global_step
        self._phase_test = phase_test

        info = selfsup.info.create(scale_summary=True)
        info['config']['save_pre'] = True
        x = x01 - MEAN
        if self._use_batch_norm == 'v2':
            z = selfsup.model.alex_bn2.build_network(x, info=info,

# Path: selfsup/multi/basenets/basenet.py
# class BaseNet:
#     def __init__(self):
#         pass
# 
#     @property
#     def name(self):
#         raise NotImplemented('Abstract base class')
# 
#     @property
#     def canonical_input_size(self):
#         raise NotImplemented('Abstract base class')
# 
#     @property
#     def hypercolumn_layers(self):
#         """Suggested hypercolumn layers"""
#         return []
# 
#     @property
#     def layers(self):
#         return [name for name, _ in self.hypercolumn_layers]
# 
#     def build(self):
#         raise NotImplemented('Abstract base class')
# 
#     def save_caffemodel(self, path, session, verbose=False):
#         raise NotImplemented('Abstract base class')
# 
# Path: selfsup/util.py
# class DummyDict(object):
#     def __init__(self):
#         pass
#     def __getitem__(self, item):
#         return DummyDict()
#     def __setitem__(self, item, value):
#         return DummyDict()
#     def get(self, item, default=None):
#         if default is None:
#             return DummyDict()
#         else:
#             return default


# Path: selfsup/multi/basenets/alex.py
from .basenet import BaseNet
from selfsup.util import DummyDict
import selfsup
import selfsup.alex_bn2
import selfsup.model.alex
import selfsup.model.alex_bn
import selfsup.model.alex_bn2
import selfsup.model.alex_transposed

    @property
    def name(self):
        return 'alex'

    @property
    def canonical_input_size(self):
        return 227

    @property
    def hypercolumn_layers(self):
        return [
            ('x',     1.0),
            ('conv1', 4.0),
            ('conv2', 8.0),
            ('conv3', 16.0),
            ('conv4', 16.0),
            ('conv5', 16.0),
            ('fc6', 32.0),
            ('fc7', 32.0),
        ]

    def build(self, x01, phase_test, global_step, settings={}):
        self._global_step = global_step
        self._phase_test = phase_test

        info = selfsup.info.create(scale_summary=True)
        info['config']['save_pre'] = True
        x = x01 - MEAN
        if self._use_batch_norm == 'v2':
            z = selfsup.model.alex_bn2.build_network(x, info=info,

                    convolutional=settings.get('convolutional', False),