机器学习(ML)和深度学习(DL)的关系和区别

  • 深度学习属于机器学习,是机器学习的一部分

深度学习的特点

  • 深层非线性(可以加入激活函数)
  • 自动提取特征
  • 大数据和计算能力
  • 解释性比较弱

DL的常用模型

  • CNN,RNN

什么是张量

  • 张量就是pytorch中的元素为同一种数据类型的多维矩阵
  • pytorch对张量的大量支持,例如:数值计算,矩阵操作,自动求导(自动微分)
  • pytorch支持各种张量子类型
  • 标量(0维张量)
  • 矢量(1维张量)
  • 矩阵(2维张量)
  • 矩阵数组(3维张量)
  • ...

张量的创建方式

  • torch.tensor
  • torch.Tensor
  • torch.IntTensor, torch.FloatTensor

import torch
import numpy as np


def demo_1():

    # 场景1 标量张量
    t1 = torch.tensor(10)
    print(f't1: {t1}, type: {type(t1)}')
    print('-' * 30)

    # 场景2 二维列表 -> 张量
    data = [[1, 2, 3],[4, 5, 6]]
    t2 = torch.tensor(data)
    print(f't1: {t2}, type: {type(t2)}')
    print('-' * 30)


    # 场景3 numpy的nd数组也能转为 张量
    data = np.random.randint(0, 10, (2,3))
    t3 = torch.tensor(data)
    print(f't1: {t3}, type: {type(t3)}')
    print('-' * 30)


def demo_2():

    # 场景1 标量张量
    t1 = torch.Tensor(10)
    print(f't1: {t1}, type: {type(t1)}')
    print('-' * 30)

    # 场景2 二维列表 -> 张量
    data = [[1, 2, 3],[4, 5, 6]]
    t2 = torch.Tensor(data)
    print(f't2: {t2}, type: {type(t2)}')
    print('-' * 30)


    # 场景3 numpy的nd数组也能转为 张量
    data = np.random.randint(0, 10, (2,3))
    t3 = torch.Tensor(data)
    print(f't3: {t3}, type: {type(t3)}')
    print('-' * 30)

    # 场景4 按照形状创建张量
    t4 = torch.Tensor(2,3)
    print(f't4: {t4}, type: {type(t4)}')
    print('-' * 30)


if __name__ == '__main__':
    # demo_1()
    demo_2()

总结:

  • torch.Tensor的功能更加强大,还可以直接根据性质创建张量,例如torch.Tensor(2,3)

更多推荐