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 Named tensors3.5 Tensor element types3.5.1 Specifying the numeric type with dtype3.5.2 A dtype for every occasion3.5.3 Managing a tensor’s dtype attribute3.6 The tensor API3.7 Tensors: Scenic views of storage3.7.1 Indexing into storage3.7.2 Modifying stored values: In-place operations3.8 Tensor metadata: Size, offset, and stride3.8.1 Views of another tensor’s storage3.8.2 Transposing without copying3.8.3 Transposing in higher dimensions3.8.4 Contiguous tensors3.9 Moving tensors to the GPU3.9.1 Managing a tensor’s device attribute3.10 NumPy interoperability3.11 Generalized tensors are tensors, too3.12 Serializing tensors3.12.1 Serializing to HDF5 with h5py3.13 Conclusion3.14 Exercises3.15 Summary