张量lesson-01课后作业

本文介绍了张量、矩阵、向量和标量在IT技术中的概念,重点讲解了Variable在PyTorch中的作用以及如何使用torch.from_numpy创建张量。还展示了torch.normal()函数用于生成不同分布的张量示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.张量与矩阵、向量、标量的关系是怎样的?

标量只有大小概念,没有方向的概念。通过一个具体的数值就能表达完整。
向量主要有2个维度:大小、方向。大小:箭头的长度表示大小方向:箭头所指的方向表示方向
矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,元素是实数的矩阵称为实矩阵,元素是复数的矩阵称为复矩阵。而行数与列数都等于n的矩阵称为n阶矩阵或n阶方阵。
张量是多维数组,目的是把向量、矩阵推向更高的维度
这4个概念是维度不断上升的,我们用点线面体的概念来比喻解释会更加容易理解:
点——标量(scalar)
线——向量(vector)
面——矩阵(matrix)
体——张量(tensor)

2.Variable"赋予"张量什么功能?

0.4.0 版本后Variable已并入Tensor
Variable是torch.autograd中的数据类型,主要用于封装Tensor,进行

data: 被包装的Tensor
grad: data的梯度
grad_fn: 创建Tensor的Function,是自动求导的关键
requires_grad:指示是否需要梯度
is_leaf:指示是否叶子结点

3.采用torch.from_numpy创建张量,并打印查看ndarray和张量数据的地址

import torch
import numpy as np

arr=np.array([[1,2,3],[4,5,6]])
t=torch.from_numpy(arr)
print('t:',t)
print('id(t)',id(t))

4.实现torch.normal()创建张量的四种模式。

torch.normal()

  • 功能:生成正太分布(高斯分布)
  • mean为标量,std为标量
  • mean为标量,std为张量
  • mean为张量,std为标量
  • mean为张量,std为张量
    # ===============================  exmaple 2 ===============================
    # flag = True
    flag = False
    if flag:
        # mean:张量 std: 张量
         mean = torch.arange(1, 5, dtype=torch.float)
         std = torch.arange(1, 5, dtype=torch.float)
         t_normal = torch.normal(mean, std)
         print("mean:{}\nstd:{}".format(mean, std))
         print(t_normal)
    
    # ===============================  exmaple 3 ===============================
    # flag = True
    flag = False
    if flag:
        # mean:标量 std: 标量
         mean = 1
         std = 10
         t_normal = torch.normal(mean, std,size=(3,3))
         print("mean:{}\nstd:{}".format(mean, std))
         print(t_normal)
    
    # ===============================  exmaple 4 ===============================
    # flag = True
    flag = False
    if flag:
        # mean:张量 std: 标量
        mean=torch.arange(1,5,dtype=torch.float)
        std=2
        t_normal=torch.normal(mean,std)
        print("mean:{}\nstd:{}".format(mean,std))
        print(t_normal)
    
    # ===============================  exmaple 5 ===============================
    flag = True
    # flag = False
    if flag:
        # mean:标量 std: 张量
        mean=2
        std=torch.arange(1,5,dtype=torch.float)
        t_normal=torch.normal(mean,std)
        print("mean:{}\nstd:{}".format(mean,std))
        print(t_normal)
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值