code: def convert_convolution1d(builder, layer, input_names, output_names, keras_layer):
      
      # Get input and output names
      input_name, output_name = (input_names[0], output_names[0])
  
      has_bias = keras_layer.bias
  
      # Get the weights from keras.
      # Keras stores convolution weights as list of numpy arrays
      weightList = keras_layer.get_weights()
      output_shape = list(filter(None, keras_layer.output_shape))[:-1]
  
      # Parameter
      # weightList[0].shape = [kernel_length, input_length(time_step), input_dim, num_kernels]
      filter_length, input_length, input_dim, n_filters = weightList[0].shape
      stride_width = keras_layer.subsample[0]
  
      # Weights and bias terms
      W = weightList[0]
      b = weightList[1] if has_bias else None
  
      dilation_factors = [1,1]
      if isinstance(keras_layer, keras.layers.convolutional.AtrousConvolution1D):
          dilation_factors[-1] = keras_layer.atrous_rate
  
      builder.add_convolution(name = layer,
               kernel_channels = input_dim,
               output_channels = n_filters,
               height = 1,
               width = filter_length,
               stride_height = 1,
               stride_width = stride_width,
               border_mode = keras_layer.border_mode,
               groups = 1,
               W = W,
               b = b,
               has_bias = has_bias,
               is_deconv = False,
               output_shape = output_shape,
               input_name = input_name,
               output_name = output_name,
               dilation_factors = dilation_factors)
docs: Convert convolution layer from keras to coreml.
  
      Parameters
      ----------
      keras_layer: layer
          A keras layer object.
  
      builder: NeuralNetworkBuilder
          A neural network builder object.