def _create_npu_activation(serial_activation: spec.SerialActivation) -> vapi.NpuActivation:
    """This is a helper function to capture a list
    of arguments to create Vela NpuActivation object."""
    if serial_activation.op == "NONE":
        return None
    if (
        serial_activation.op == "CLIP"
        and serial_activation.clip_min == 0
        and serial_activation.clip_max == 0
    ):
        return None
    op_map = {
        "CLIP": vapi.NpuActivationOp.NONE_OR_RELU,
        "TANH": vapi.NpuActivationOp.TABLE_LOOKUP,
        "SIGMOID": vapi.NpuActivationOp.TABLE_LOOKUP,
        "LUT": vapi.NpuActivationOp.TABLE_LOOKUP,
    }
    op = str(serial_activation.op.value)
    assert op in op_map.keys()
    act_op = vapi.NpuActivation(op_map[op])
    if serial_activation.op == "CLIP":
        act_op.min = int(serial_activation.clip_min.value)
        act_op.max = int(serial_activation.clip_max.value)
    if op_map[op] == vapi.NpuActivationOp.TABLE_LOOKUP:
        act_op.lookup_table_index = 0
    return act_op
Exemple #2
0
def _create_npu_activation(serial_activation):
    """This is a helper function to capture a list
    of arguments to create Vela NpuActivation object"""
    if serial_activation.op == "NONE":
        return None
    if (serial_activation.op == "CLIP" and serial_activation.clip_min == 0
            and serial_activation.clip_max == 0):
        return None
    op_map = {
        "CLIP": vapi.NpuActivationOp.NONE_OR_RELU,
        "TANH": vapi.NpuActivationOp.TANH,
        "SIGMOID": vapi.NpuActivationOp.SIGMOID,
    }
    op = str(serial_activation.op.value)
    assert op in op_map.keys()
    act_op = vapi.NpuActivation(op_map[op])
    act_op.min = int(serial_activation.clip_min.value)
    act_op.max = int(serial_activation.clip_max.value)
    return act_op