PyTorch ####### * https://pytorch.org/tutorials/index.html Learning PyTorch ================ PyTorch is a Python-based scientific computing package serving two broad purposes:: A replacement for NumPy to use the power of GPUs and other accelerators. An automatic differentiation library that is useful to implement neural networks. Tensors ------- * 张量是一种特殊的数据结构,与数组和矩阵非常相似。在 PyTorch 中,我们使用张量来编码模型的输入和输出,以及模型的参数。 * 张量类似于 NumPy 的 ndarray,但它们可以在 GPU 或其他专用硬件上运行以加速计算。 Tensor Initialization ^^^^^^^^^^^^^^^^^^^^^ :: # Directly from data data = [[1, 2], [3, 4]] x_data = torch.tensor(data) # From a NumPy array np_array = np.array(data) x_np = torch.from_numpy(np_array) # From another tensor x_ones = torch.ones_like(x_data) # retains the properties of x_data print(f"Ones Tensor: \n {x_ones} \n") x_rand = torch.rand_like(x_data, dtype=torch.float) # overrides the datatype of x_data print(f"Random Tensor: \n {x_rand} \n") # With random or constant values: shape = (2, 3,) rand_tensor = torch.rand(shape) ones_tensor = torch.ones(shape) zeros_tensor = torch.zeros(shape) print(f"Random Tensor: \n {rand_tensor} \n") print(f"Ones Tensor: \n {ones_tensor} \n") print(f"Zeros Tensor: \n {zeros_tensor}") Tensor Attributes ^^^^^^^^^^^^^^^^^ :: tensor = torch.rand(3, 4) print(f"Shape of tensor: {tensor.shape}") print(f"Datatype of tensor: {tensor.dtype}") print(f"Device tensor is stored on: {tensor.device}") Tensor Operations ^^^^^^^^^^^^^^^^^ * 超过 100 种张量操作,包括转置、索引、切片、数学运算、线性代数、随机采样等 :: # We move our tensor to the GPU if available if torch.cuda.is_available(): tensor = tensor.to('cuda') print(f"Device tensor is stored on: {tensor.device}") .. note:: 其他函数参见 ``demo-python`` 项目