function mul_(a, b) {
    let $a = (0, _tensorUtilEnv.convertToTensor)(a, "a", "mul");
    let $b = (0, _tensorUtilEnv.convertToTensor)(b, "b", "mul");
    [$a, $b] = (0, _tensorUtil.makeTypesMatch)($a, $b);
    const inputs = {
        a: $a,
        b: $b
    };
    return (0, _engine.ENGINE).runKernel((0, _kernelNames.Multiply), inputs);
}
Multiplies two `tf.Tensor`s element-wise, A * B. Supports broadcasting.

We also expose `tf.mulStrict` which has the same signature as this op and
asserts that `a` and `b` are the same shape (does not broadcast).

```js
const a = tf.tensor1d([1, 2, 3, 4]);
const b = tf.tensor1d([2, 3, 4, 5]);

a.mul(b).print();  // or tf.mul(a, b)
```

```js
// Broadcast mul a with b.
const a = tf.tensor1d([1, 2, 3, 4]);
const b = tf.scalar(5);

a.mul(b).print();  // or tf.mul(a, b)
```
@param a The first tensor to multiply.
@param b The second tensor to multiply. Must have the same dtype as `a`.

@doc {heading: 'Operations', subheading: 'Arithmetic'}