def convert_lambda(layer):
    if layer.function == modellib.lambda_a:
        params = NeuralNetwork_pb2.CustomLayerParams()
        params.className = 'lambda_a'
    elif layer.function == modellib.lambda_b:
        params = NeuralNetwork_pb2.CustomLayerParams()
        params.className = 'lambda_b'
    elif layer.function == modellib.lambda_c:
        params = NeuralNetwork_pb2.CustomLayerParams()
        params.className = 'lambda_c'
    elif layer.function == modellib.lambda_d:
        params = NeuralNetwork_pb2.CustomLayerParams()
        params.className = 'lambda_d'
    else:
        params = None

    return params
Exemple #2
0
def convert_lambda(layer):
    if layer.function == scaling:
        params = NeuralNetwork_pb2.CustomLayerParams()
        params.className = "scaling"
        params.parameters["scale"].doubleValue = layer.arguments['scale']
        return params
    else:
        return None
Exemple #3
0
    def convert_coreml(layer):
        params = NeuralNetwork_pb2.CustomLayerParams()
        params.className = 'ResizeLayer'
        params.description = 'Perform nearest neighbour / bilinear resizing of input tensors'

        layer_config = layer.get_config()
        params.parameters['bilinear'].intValue = int(layer_config['bilinear'])
        params.parameters['new_height'].intValue = layer_config['new_height']
        params.parameters['new_width'].intValue = layer_config['new_width']

        return params
Exemple #4
0
def convert_FullSizePReLU(keras_layer):
    coreml_layer = NeuralNetwork_pb2.CustomLayerParams()
    coreml_layer.className = className_FullSizePReLU
    coreml_layer.description = 'Custom activation layer: ' + className_FullSizePReLU

    weightList = keras_layer.get_weights()
    p_alpha = weightList[0]  # numpy array
    alpha = coreml_layer.weights.add()
    alpha.floatValue.extend(map(float, p_alpha.flatten()))

    return coreml_layer
Exemple #5
0
def convert_swish(layer):
    params = NeuralNetwork_pb2.CustomLayerParams()

    # The name of the Swift or Obj-C class that implements this layer.
    params.className = "Swish"

    # The desciption is shown in Xcode's mlmodel viewer.
    params.description = "A fancy new activation function"

    # Set configuration parameters
    params.parameters["beta"].doubleValue = layer.beta
    return params
Exemple #6
0
def convert_learnable_swish(layer):
    params = NeuralNetwork_pb2.CustomLayerParams()

    # The name of the Swift or Obj-C class that implements this layer.
    params.className = "Swish"

    # The desciption is shown in Xcode's mlmodel viewer.
    params.description = "A fancy new activation function"

    # Add the weights
    beta_weights = params.weights.add()
    beta_weights.floatValue.extend(layer.get_weights()[0].astype(float))
    return params
Exemple #7
0
def convert_SynapticTransmissionRegulator(keras_layer):
    coreml_layer = NeuralNetwork_pb2.CustomLayerParams()
    coreml_layer.className = className_SynapticTransmissionRegulator
    coreml_layer.description = 'Custom Synaptic Transmission Regulator (STR) layer: ' + className_SynapticTransmissionRegulator

    weightList = keras_layer.get_weights()
    p_weight = weightList[0]  # numpy array
    p_bias = weightList[1]  # numpy array
    weight = coreml_layer.weights.add()
    weight.floatValue.extend(map(float, p_weight.flatten()))
    bias = coreml_layer.weights.add()
    bias.floatValue.extend(map(float, p_bias.flatten()))

    return coreml_layer