function buffer(shape, dtype = "float32", values) {
    dtype = dtype || "float32";
    _util.assertNonNegativeIntegerDimensions(shape);
    return new (0, _tensor.TensorBuffer)(shape, dtype, values);
}
Creates an empty `tf.TensorBuffer` with the specified `shape` and `dtype`.

The values are stored in CPU as `TypedArray`. Fill the buffer using
`buffer.set()`, or by modifying directly `buffer.values`.

When done, call `buffer.toTensor()` to get an immutable `tf.Tensor` with
those values.

```js
// Create a buffer and set values at particular indices.
const buffer = tf.buffer([2, 2]);
buffer.set(3, 0, 0);
buffer.set(5, 1, 0);

// Convert the buffer back to a tensor.
buffer.toTensor().print();
```

@param shape An array of integers defining the output tensor shape.
@param dtype The dtype of the buffer. Defaults to 'float32'.
@param values The values of the buffer as `TypedArray`. Defaults to
zeros.

@doc {heading: 'Tensors', subheading: 'Creation'}