3.1 The world as floating-point numbers3.2 Tensors: Multidimensional arrays3.2.1 From Python lists to PyTorch tensors3.2.2 Constructing our first tensors3.2.3 The essence of tensors3.3 Indexing tensors3.4 Broadcasting3.5 Named tensors3.6 Tensor element types3.6.1 Specifying the numeric type with dtype3.6.2 A dtype for every occasion3.6.3 Managing a tensor’s dtype attribute3.7 The tensor API3.8 Tensors: Scenic views of storage3.8.1 Indexing into storage3.8.2 Modifying stored values: In-place operations3.9 Tensor metadata: Size, offset, and stride3.9.1 Views of another tensor’s storage3.9.2 Transposing without copying3.9.3 Transposing in higher dimensions3.9.4 Contiguous tensors3.10 Moving tensors to the GPU3.10.1 Managing a tensor’s device attribute3.11 NumPy interoperability3.12 Generalized tensors are tensors, too3.13 Serializing tensors3.13.1 Serializing to HDF5 with h5py3.14 Conclusion3.15 Exercises