# Path: selfsup/multi/methods/base.py
# class Method:
#     def __init__(self, name, batch_size):
#         self.name = name
#         self.batch_size = batch_size
# 
#     def input_size(self):
#         return 0
# 
#     def batch_loader(self):
#         raise NotImplemented("Abstract base class")
# 
#     def build_network(network, y, phase_test):
#         raise NotImplemented("Abstract base class")
# 
#     @property
#     def basenet_settings():
#         return {}
# 
#     def make_path(self, name, ext, iteration):
#         return f'img/{self.name}_{name}_{iteration}.png'


import selfsup
import tensorflow as tf
import os
from .base import Method
# IN PROGRESS AND EXPERIMENTAL
from __future__ import division, print_function, absolute_import


if os.uname()[1] == 'kiriyama':
    TRAIN = os.path.expandvars("$IMAGENET_10K_DIR/fullpath_imagenet_tr_nolabels.txt")
else:
    TRAIN = "/share/data/vision-greg/larsson/data/fullpath_imagenet_and_places_train_shuffled.txt"



# Path: selfsup/multi/methods/base.py
# class Method:
#     def __init__(self, name, batch_size):
#         self.name = name
#         self.batch_size = batch_size
# 
#     def input_size(self):
#         return 0
# 
#     def batch_loader(self):
#         raise NotImplemented("Abstract base class")
# 
#     def build_network(network, y, phase_test):
#         raise NotImplemented("Abstract base class")
# 
#     @property
#     def basenet_settings():
#         return {}
# 
#     def make_path(self, name, ext, iteration):
#         return f'img/{self.name}_{name}_{iteration}.png'


# Path: selfsup/multi/methods/wasserstein_bigan.py
import selfsup
import tensorflow as tf
import os
from .base import Method

# IN PROGRESS AND EXPERIMENTAL
from __future__ import division, print_function, absolute_import


if os.uname()[1] == 'kiriyama':
    TRAIN = os.path.expandvars("$IMAGENET_10K_DIR/fullpath_imagenet_tr_nolabels.txt")
else:
    TRAIN = "/share/data/vision-greg/larsson/data/fullpath_imagenet_and_places_train_shuffled.txt"



class WassersteinBiGAN(Method):