机器学习day04

深度学习简介

什么是深度学习

机器学习是实现人工智能的一种途径。 深度学习是机器学习的一个子集,也就是说深度学习是实现机器学习的一种方法。

image-20240620200059585

image-20240620200142409

传统机器学习算术依赖人工设计特征,并进行特征提取,而深度学习方法不需要人工,而是依赖算法自动提取特征。 深度学习模仿人类大脑的运行方式,从经验中学习获取知识。这也是深度学习被看做黑盒子,可解释性差的原因。

应用场景

image-20240620200210509

发展历史

  1. 符号主义 20世纪50-70:专家系统占主导 1950:图灵设计国际象棋程序 1962:IBM Arthur Samuel 的跳棋程序战胜人类高手(人工智能第一次浪潮)

  2. 统计主义 20世纪80-2000:主要用统计模型解决问题 •1993:Vapnik提出SVM •1997:IBM 深蓝战胜卡斯帕罗夫(人工智能第二次浪潮)

  3. 神经网络 21世纪初期:神经网络、深度学习流派 •2012: AlexNet深度学习的开山之作 •2016:Google AlphaGO 战胜李世石(人工智能第三次浪潮)

  4. 大规模预训练模型 2017-至今:大规模预训练模型 2017年,自然语言处理NLP的Transformer框架出现 2018年,Bert和GPT的出现 2022年,chatGPT的出现,进入到大模型AIGC发展的阶段

优缺点

1.优点

  • 精度⾼,性能优于其他的机器学习⽅法,甚⾄在某些领域超过了⼈类

  • 随之计算机硬件的发展,可以近似任意的⾮线性函数

  • 近年来在学界和业界受到了热捧,有⼤量的框架和库可供调。

  1. 缺点

    • ⿊箱,很难解释模型是怎么⼯作的

    • 训练时间⻓,需要⼤量的计算⼒

    • ⽹络结构复杂,需要调整超参数多

    • ⼩数据集上表现不佳,容易发⽣过拟合

PyTorch使用

image-20240620200559443

PyTorch:一个Python 深度学习框架,它将数据封装成张量(Tensor)来进行处理。PyTorch 中的张量就是元素为同一种数据类 型的多维矩阵。在PyTorch中,张量以"类" 的形式封装起来,对张量的一些运算、处理的方法被封装在类中。

Pytorch的安装: pip install torch==2.1.0 -i Simple Index

1.1张量基本创建方式

  • torch.tensor 根据指定数据创建张量

  • torch.Tensor 根据形状创建张量, 其也可用来创建指定数据的张量

  • torch.IntTensor、torch.FloatTensor、torch.DoubleTensor 创建指定类型的张量

张量

  • 可以理解为多维矩阵

  • 标量:0维张量

  • 向量:1维张量

  • 矩阵:2维张量

1.2创建张量的方式

根据指定的数据创建张量
  1. 根据标量创建张量

    data = 10
    tensor = torch.tensor(data)
    print(f'根据标量生成的张量:\n{tensor}')
    ​
  2. 根据numpy数组创建张量

    data = np.random.randn(2,3)   #创建的2行3列的数组
    data = torch.tensor(data)
    print(f'根据numpy数组创建张量:\n{data}')
  3. 根据列表创建张量

    data = [1,2,3]
    data = torch.tensor(data)
    print(f'根据列表创建张量:\n{data}')
    data = [[1,2,3],[4,5,6]]
    data = torch.tensor(data)
    print(f'根据列表创建张量:\n{data}')
根据形状创建张量

torch.Tensor(2,3)

  1. 创建2行3列的张量, 默认 dtype 为 float32

data = torch.Tensor(2, 3) 
print(data) 
  1. 注意: 如果传递列表, 则创建包含指定元素的张量

data = torch.Tensor([10])
print(data)
data = torch.Tensor([10, 20])
print(data)
根据指定类型创建张量

torch.IntTensor:

data = torch.IntTensor(2,3)
print(f'创建int32类型的张量:\n{data}')

torch.ShortTensor ​ torch.LongTensor ​ torch.FloatTensor:dtype为Float的张量

 data = torch.FloatTensor(2,3)
 print(f'创建Float类型的张量:\n{data}')

torch.DoubleTensor ​ 注意:如果传递的元素类型不正确,会被进行类型转换

data = torch.IntTensor([[2.5,3.5],[3.4,5.5]])
print(data)
tensor([[2, 3],
        [3, 5]], dtype=torch.int32)

1.3创建线性张量和随机张量

#### 1.3.1创建线性张量

torch.arange(start, end, 步长) torch.linspace(start, end, 个数)

1.3.2创建随机张量

torch.randn(行,列) torch.randint(start, end,size)

  1. 在指定区间按照步长生成元素 [start, end, step)

data = torch.arange(0, 10, 2) 
print(data)
1.3.3设置随机数种子

torch.manual_seed() torch.random.initial_seed()

# 1. 创建随机张量
data = torch.randn(2, 3)  # 创建2行3列张量
print(data)
 # 查看随机数种子
print('随机数种子:', torch.random.initial_seed())
 # 2. 随机数种子设置 
torch.random.manual_seed(100)
 data = torch.randn(2, 3)
 print(data)
 print('随机数种子:', torch.random.initial_seed())

1.4创建0-1的张量

  1. 创建全0张量

# 1. 创建指定形状全0张量
data = torch.zeros(2, 3)
print(data)
# 2. 根据张量形状创建全0张量
data = torch.zeros_like(data)
print(data)
  1. 创建全1张量

# 1. 创建指定形状全1张量
data = torch.ones(2, 3)
 print(data)
 # 2. 根据张量形状创建全1张量
data = torch.ones_like(data)
 print(data)
  1. 创建指定值的张量

# 1. 创建指定形状全1张量
data = torch.ones(2, 3)
 print(data)
 # 2. 根据张量形状创建全1张量
data = torch.ones_like(data)
 print(data)

1.4.1创建方式

直接创建,自己指定形状 根据已有的张量形状创建

 1. 创建指定形状指定值的张量
data = torch.full([2, 3], 10)
 print(data)
 # 2. 根据张量形状创建指定值的张量
data = torch.full_like(data, 20)
 print(data)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值