code: def convert_matmul(params, w_name, scope_name, inputs, layers, weights, names):
      
      print('Converting matmul ...')
  
      if names == 'short':
          tf_name = 'MMUL' + random_string(4)
      elif names == 'keep':
          tf_name = w_name
      else:
          tf_name = w_name + str(random.random())
  
      if len(inputs) == 1:
          weights_name = '{0}.weight'.format(w_name)
  
          W = weights[weights_name].numpy().transpose()
          input_channels, output_channels = W.shape
  
          keras_weights = [W]
  
          dense = keras.layers.Dense(
              output_channels,
              weights=keras_weights, use_bias=False, name=tf_name, bias_initializer='zeros', kernel_initializer='zeros',
          )
          layers[scope_name] = dense(layers[inputs[0]])
      elif len(inputs) == 2:
          weights_name = '{0}.weight'.format(w_name)
  
          W = weights[weights_name].numpy().transpose()
          input_channels, output_channels = W.shape
  
          keras_weights = [W]
  
          dense = keras.layers.Dense(
              output_channels,
              weights=keras_weights, use_bias=False, name=tf_name, bias_initializer='zeros', kernel_initializer='zeros',
          )
          layers[scope_name] = dense(layers[inputs[0]])
      else:
          raise AssertionError('Cannot convert matmul layer')
docs: Convert matmul layer.
  
      Args:
          params: dictionary with layer parameters
          w_name: name prefix in state_dict
          scope_name: pytorch scope name
          inputs: pytorch node inputs
          layers: dictionary with keras tensors
          weights: pytorch state_dict
          names: use short names for keras layers