1、什么是深度学习

深度学习是实现机器学习的一种方法等同于是实现人工智能的一种途径

1.1、深度学习的优点

优点:1、自动提取特征

           2、通用性强

           3、能处理图像、视频等高纬度的学习

           4、数据越大模型越强

1.2、深度学习的缺点

缺点:1、数据量需求大

           2、算力需求大

           3、可解释性弱 模型的隐藏层不容易知道

           4、不擅长数据量少的数据

1.3    pytorch张量环境搭建

        可以看第二个博客

1.4、深度学习的特点

        1、深度学习具有多层结构(输入层、隐藏层、输出层)里面的隐藏层有会分为深、浅分

        2、自动提取特征:把数据传入后特征提取自动在隐藏层提取

        3、大数据需求和计算能力:需要数据量很大的标注数据还有数据间的计算能力

        4、可解释性差:模型的内部运作处于隐藏层,制作者不知道模型到底是那些步骤让模型好

2、pytorch初识2.1、

2.1:什么是pytorch

        pytorch 他是基于python语言的深度学习的框架,主要是将数据转换成张量的数据、主要用于深度学习的框架搭建、部署也包含了机器学习上面的

2.2:什么是张量

        pytorch里面的张量就是元素为同一种类型的多维矩阵,张量的各种运算、处理的方法都在类中

        张量可以被GPU计算

数据类型

        标量: 0维-单个数字-torch.tensor(3.14)   常量

        矢量: 1维-一列一行-torch.tensor([1,2,3,4])

        矩阵: 2维-多列多行-torch.tensor([[1,2,3,4],[5,6,7,8]])

        矩阵组:>2维-多个二维 - torch.tensor([[[1,2,3],[4,5,6],[7,8,9]]])

2.3:为什么深度学习要使用张量

        张量因可以很好的表示像图片、视频、音频等类型的数据并且具有方便计算和GPU可以提升其计算的效率的特点导致深度学习要使用张量

2.4:张量的创建

        2.4.1 根据指定数据创建张量

                torch.tensor(3.14)   # 创建标量的张量

                torch.tensor([1,2,3])   # 创建矢量的张量

                torch.Tensor() # 根据形状创建张量

                torch.IntTensor() #创建整数型的张量

                torch.FlaatTensor() # 创建浮点数的张量

                tips:创建这些张量如果自己写的数据和创建的张量不一样  那么创建的过程中会自己转成自己特定类型

                torch.arange()   

         # 创建线性张量 使用arange(start,end,stap) 这个staop 代表的是步长的意思

                torch.linespace() 

         # 使用linspace(start,end,staps) 这个steps 是代表的是指定开始和结束数值之间创建多少个指定的数

        torch.rand() # 创建随机浮点类型张量 这个里面每个数据的出现概率一致

        torch.randn() # 创建随机浮点类型张量 这个是创建的正太分布的数据 

        torch.randint() # 创建随机整数类型张量
print(f"创建随机浮点数张量{torch.randn(5,5)}") # 这个是创建的标桩正太分布 防止数据梯度爆炸和数据梯度消失 用于模拟数据噪声
print(f"创建随机浮点数张量{torch.rand(5,10)}") # 数据归一化前的数据采样 一般是随机采样 每个数值出现的概率相同

        print(f"固定随机种子{torch.manual_seed(24)}")
        print(f"初始化随机向量{torch.rand(5,5)}")
        print(f"随机种子初始化{torch.initial_seed()}")

                创建全1张量

                print(f"创建全1张量{torch.ones(5,5)}数据类型是浮点数")

                创建全0张量

        print(f"创建全0张量{torch.zeros(5,5)}数据类型是浮点数")
        print(f"创建全0张量{torch.zeros(5,5,dtype=torch.float)}数据类型是整数")
        print(f"创建全0张量{torch.zeros_like(data)}")

                创建全指定张量

                print(f"创建全指定的张量{torch.full((5,5),5.)}数据类型默认谁根据指定的数据类型一样")

2.4   张量类型转换

        data =torch.tensor([[1,2,3,4],[4,5,6,7]])
        print(f"张量类型转换{data.type(torch.float)}")
        print(f"张量类型转换方法调用{data.int()}优点是调用方法更加好用")

        """
        张量转换成nmpy
        不需要GPU的时候使用
        :return:
        """
        data = torch.tensor([[1,2,3,4],[5,6,7,8]])
        data_numpy = data.numpy()
        print(f"将张量转换成numpy{data_numpy}")

                

        """
        一般是需要是用GPU的时候使用 最开始模型数据使用的时候
        将numpy转换成tensor张量
        转换后的数都是共享内存 相当于浅拷贝
        需要使用copy将数据做一下深拷贝
        """
        data  = np.array([[1,2,3,4],[5,6,7,8]])
        data_tensor = torch.from_numpy(data)
        print(f"将numpy转换成tensor张量{data_tensor}")
        ####  上面内存地址是共享的
        data_tensor1 = torch.tensor(data)
        print(f"将numpy转换成tensor不共享内存{data_tensor1}")

2.5  标量数值提起

        """         

        取出张量里面的数值         

        :return:       

          """        

         data = torch.Tensor([1])         

        print(f"张量的数值{data}")

        print(f"取出张量的数值{data.item()}")

更多推荐