Esempio n. 1
0
def init_federated():

    # clients list
    clients = []

    # load configs
    parser = Parser()
    parser.parse()
    config = parser.config

    # generate clients
    for i in range(config.num_of_clients):
        clients.append(Client(id=i, config=config))

    # generate server
    server = Server(id=0, config=config)

    # foo
    server.generator_A2B.apply(weights_init_normal)
    server.generator_B2A.apply(weights_init_normal)
    server.discriminator_A.apply(weights_init_normal)
    server.discriminator_B.apply(weights_init_normal)

    if (os.path.exists(server.model_dir + server.generator_name_A2B)
            and os.path.exists(server.model_dir + server.generator_name_B2A)
            and os.path.exists(server.model_dir + server.discriminator_name_A)
            and
            os.path.exists(server.model_dir + server.discriminator_name_B)):
        server.load_model()
        print("Global model saved on the server has been restored!")

    elif not (os.path.exists(server.model_dir + server.generator_name_A2B)
              and os.path.exists(server.model_dir + server.generator_name_B2A)
              and os.path.exists(server.model_dir +
                                 server.discriminator_name_A) and
              os.path.exists(server.model_dir + server.discriminator_name_B)):
        print("Global model has been created!")
    else:
        raise EOFError

    # load datasets
    # This method is detached from the init part
    # load_datasets(clients=clients, config=config)

    # load models
    for client in clients:
        client.load_model(generator_A2B=server.generator_A2B,
                          generator_B2A=server.generator_B2A,
                          discriminator_A=server.discriminator_A,
                          discriminator_B=server.discriminator_B)
        print("Client {}'s model has been updated from the server".format(
            client.id))

    return clients, server, config
Esempio n. 2
0
from utils import ResultWriter, Parser, get_args, Algorithm

if __name__ == "__main__":
    alg, input_file, output_file = get_args()

    item_class = Item
    if alg == Algorithm.GREEDY:
        algorithm = GreedyAlgorithm
    elif alg == Algorithm.DYNAMIC:
        algorithm = DynamicProgramingAlgorithm
    elif alg == Algorithm.DYNAMIC_OPTIMAL:
        algorithm = DynamicProgramingOptimizedAlgorithm
        item_class = ItemWithSlots
    else:
        raise ValueError("Algorithm can be one of: {}, {}, {}".format(
            Algorithm.GREEDY, Algorithm.DYNAMIC, Algorithm.DYNAMIC_OPTIMAL))

    investor, items = Parser.parse(input_file, item_class)

    start_time = time.time()

    algorithm(investor, items).calculate()

    duration = time.time() - start_time

    print('Duration is {:.2f} ms'.format(duration * 1000))
    print('Memory usage: {} KB'.format(
        resource.getrusage(resource.RUSAGE_SELF).ru_maxrss))

    ResultWriter.write(investor, output_file)
Esempio n. 3
0
            try:
                canteen.addMeal(date,
                                category=location_tag.string,
                                name=title_tag.string,
                                prices=price_tag.string)
            except ValueError as e:
                print('Error adding meal "{}": {}'.format(meal_item, e))


def parse_url(url, today=False):
    canteen = LazyBuilder()
    canteen.setAdditionalCharges('student', {})
    parse_week(url, canteen)
    return canteen.toXMLFeed()


parser = Parser(
    'darmstadt',
    handler=parse_url,
    shared_prefix=
    'http://studierendenwerkdarmstadt.de/hochschulgastronomie/speisekarten/')
parser.define('stadtmitte', suffix='stadtmitte/')
parser.define('lichtwiese', suffix='lichtwiese/')
parser.define('schoefferstrasse', suffix='schoefferstrasse/')
parser.define('dieburg', suffix='dieburg/')
parser.define('haardtring', suffix='haardtring/')

# for debugging / testing
if __name__ == "__main__":
    print(parser.parse("darmstadt", "stadtmitte", None))
Esempio n. 4
0
            price_tag = meal_item.find("span", {"class": "fmc-item-price"})

            try:
                canteen.addMeal(date, category=location_tag.string, name=title_tag.string, prices=price_tag.string)
            except ValueError as e:
                print('Error adding meal "{}": {}'.format(meal_item, e))


def parse_url(url, today=False):
    canteen = LazyBuilder()
    canteen.setAdditionalCharges("student", {})
    parse_week(url, canteen)
    return canteen.toXMLFeed()


parser = Parser(
    "darmstadt",
    handler=parse_url,
    shared_prefix="http://studierendenwerkdarmstadt.de/hochschulgastronomie/speisekarten/",
)
parser.define("stadtmitte", suffix="stadtmitte/")
parser.define("lichtwiese", suffix="lichtwiese/")
parser.define("schoefferstrasse", suffix="schoefferstrasse/")
parser.define("dieburg", suffix="dieburg/")
parser.define("haardtring", suffix="haardtring/")


# for debugging / testing
if __name__ == "__main__":
    print(parser.parse("darmstadt", "stadtmitte", None))