def _matmul(converter, node: Any, inputs: List[str]) -> Any:
    a = converter.outputs[inputs[0]]
    b = converter.outputs[inputs[1]]
    tensor = b.attr['value'].tensor
    b_shape = [i.size for i in tensor.tensor_shape.dim]
    transpose_a = node.attr['transpose_a'].b
    transpose_b = node.attr['transpose_b'].b
    layer = Dense(a.shape.as_list(), b_shape[1], transpose_input=transpose_a, transpose_weight=transpose_b)
    dtype = tensor.dtype
    if (dtype == tf.float32):
        nums = array.array('f', tensor.tensor_content)
    elif (dtype == tf.float64):
        nums = array.array('d', tensor.tensor_content)
    else:
        raise TypeError('Unsupported dtype for weights')

    def inputter_fn():
        return tf.constant(np.array(nums).reshape(b_shape))
    w = converter.protocol.define_private_input(converter.model_provider, inputter_fn)
    layer.initialize(initial_weights=w)
    return layer.forward(a)
def _matmul(converter, node: Any, inputs: List[str]) -> Any:
    a = converter.outputs[inputs[0]]
    b = converter.outputs[inputs[1]]
    tensor = b.attr['value'].tensor
    b_shape = [i.size for i in tensor.tensor_shape.dim]
    transpose_a = node.attr['transpose_a'].b
    transpose_b = node.attr['transpose_b'].b
    layer = Dense(a.shape.as_list(), b_shape[1], transpose_input=transpose_a, transpose_weight=transpose_b)
    dtype = tensor.dtype
    if (dtype == tf.float32):
        nums = array.array('f', tensor.tensor_content)
    elif (dtype == tf.float64):
        nums = array.array('d', tensor.tensor_content)
    else:
        raise TypeError('Unsupported dtype for weights')

    def inputter_fn():
        return tf.constant(np.array(nums).reshape(b_shape))
    w = converter.protocol.define_private_input(converter.model_provider, inputter_fn)
    layer.initialize(initial_weights=w)
    return layer.forward(a)