def create(layer: Layer, instruction: Instruction):
    device = instruction.details[0]
    name = instruction.details[1]
    if device == "hub":
        ports_number = int(instruction.details[2])
        if ports_number < 1:
            print("\nWRONG PORTS NUMBER.")
            raise Exception
    elif device == "host":
        if len(instruction.details) > 2:
            print("\nWRONG CREATE HOST INSTRUCTION FORMAT.")
            raise Exception
        ports_number = 1
    else:
        print("\nUNRECOGNIZED DEVICE TYPE.")
        raise Exception
    layer.create(device, name, ports_number)
    write(
        instruction.time, "create, device={}, name={}{}\n".format(
            device, name, ", ports_number={}".format(ports_number)
            if device == ("hub" or "switch") else ""))
    file = open("output/devices.bin", 'a')
    file.write("device={}, name={}, ports_number={}\n".format(
        device, name, ports_number))
    file.close()
Beispiel #2
0
    def build_network(self, layer_settings=[], activation=Method.Sigmoid):
        self.layers = []

        # 每颗神经元的Activation Function都可以自订,这边范例皆使用Sigmoid
        activations = []
        for setting in layer_settings:
            nets_activation = []
            for index in range(0, setting):
                nets_activation.append(activation)
            activations.append(nets_activation)

        # 取出每一个 Layer 要有几颗神经元(Net)的设定
        for layer_index in range(0, len(layer_settings)):
            new_layer = Layer.create(activations[layer_index])
            self.layers.append(new_layer)

        # 设定将隐藏层(Hidden Layers), 以及输出层(Output Layer)互相连结在一起
        layer_count = len(self.layers)
        for from_layer_index in range(0, layer_count - 1):
            from_layer = self.layers[from_layer_index]
            to_layer = self.layers[from_layer_index + 1]
            # 从哪一层到哪一层,最小权重随机范围,最大权重随机范围
            from_layer.link_layer(to_layer, self.random_min, self.random_max)