刘二大人 Pytorch深度学习实践
文章平均质量分 75
李闪火
这个作者很懒,什么都没留下…
展开
-
刘二大人 《PyTorch深度学习实践》P11 卷积神经网络(高级篇)
GoogleNet常被用做基础主干网络,通过一些修改完成我们的需要。在GoogleNet中把相同的块封装成一个类来减少代码冗余,如图中红色圈出的一个部分称为Inception块。原创 2023-10-30 21:17:58 · 130 阅读 · 0 评论 -
刘二大人 《PyTorch深度学习实践》P10 卷积神经网络(基础篇)
*单通道:**从1 * 5 * 5 输入中拿出 3 * 3 框与核做卷积(数乘),对应元素相乘求和,得到第一个元素的结果,再将框移动,做相应的运算,以此类推。Output宽度 = Input宽度 - Kernel宽度 + 1。通过MaxPooling 最大池化层,默认stride=2。stride = 2:步长为2,有效降低图像的W H。输入和数据迁移,数据要放在同一块显卡上。把全连接网络改成卷积神经网络即可。原创 2023-10-30 20:47:20 · 108 阅读 · 0 评论 -
刘二大人 《PyTorch深度学习实践》P9 多分类问题
二分类问题的数据集分类为0和1。MNIST(手写数字识别)数据集有10个分类,可能会有矛盾,例如有yˉ=0.8,yˉ=0.8,yˉ=0.9,各输出之间没有抑制作用。神经网络希望输出之间是带有竞争性的,即所有概率之和为1,且所有概率均大于0,softmax可以实现这两点。绿色框中就是softmax的计算过程即:实例:有三个样本,两组预测,Y是真实值的索引,也就是one_hot向量里面1的索引会发现第一组与预测较为吻合因此损失值较小,而第二组与预测明显不吻合,因此损失值较大。原创 2023-10-30 20:16:27 · 116 阅读 · 0 评论 -
刘二大人 《PyTorch深度学习实践》P8 加载数据集
解决办法:使用mini-batch来均衡速度和性能上的需求。原创 2023-10-30 19:49:06 · 105 阅读 · 0 评论 -
刘二大人 《PyTorch深度学习实践》P7 处理多维特征的输入
二维记录在pytorch中,行为样本(sample)列为特征(feature)原创 2023-10-30 18:21:01 · 69 阅读 · 0 评论 -
刘二大人 《PyTorch深度学习实践》P6 逻辑回归Logistic Regression
总的来说,torch.tensor() 更像是一个函数式接口,接受数据并返回新的张量,而 torch.Tensor() 更像是一个构造函数,用于实例化张量对象,直接使用给定的数据创建张量。如果希望直接使用原始数据创建张量,并且希望修改原始数据会影响到张量的值,可以使用 torch.Tensor() 构造函数。名字叫回归,却是一种用于解决二分类问题的机器学习方法,逻辑回归是以线性回归为理论支持的,但是逻辑回归通过Sigmoid函数引入了非线性因素,因此可以轻松解决0/1问题。= 1时loss最小;原创 2023-10-30 18:07:03 · 58 阅读 · 0 评论 -
刘二大人 《PyTorch深度学习实践》P5 用PyTorch实现线性回归
torch.nn.Linear类实现了魔术方法__call()__,这使得该类的实例可以像函数一样被调用,通常forward()会被调用。print('__init__函数被调用了')pass# *args 可变长参数(无名参数) 把前面n个参数变成n元组# **kwargs 把参数变成词典词典 x=2, y=3 ==> {x:2, y:3}print('__call__函数被调用了')print('forward函数被调用了')__init__函数被调用了__call__函数被调用了。原创 2023-10-30 17:39:51 · 63 阅读 · 0 评论 -
刘二大人 《PyTorch深度学习实践》P4 反向传播
如果是非常复杂的网络,无法直接进行计算但是如果把网络看作图,通过图传播梯度,就能把梯度计算出来,即反向传播。e.g. x∈R, w∈R, b∈R矩阵计算书籍 Matricx cookbook https://www.math.uwaterloo.ca/~hwolkowi/matrixcookbook.pdf不管有多少层,最后统一成了y = WX+B,没有区别,因此为了增加网络复杂程度,对每一层的输出增加一个非线性函数。原创 2023-10-30 17:23:18 · 101 阅读 · 0 评论 -
刘二大人 《PyTorch深度学习实践》P3 梯度下降算法
存在的问题:当权重较多时,数据量会非常大分成四份,找16个点,找出其中比较小的块,再分成四分……存在的问题:如果是非凸函数可能会错过最优点优化问题:使目标函数最小的权重组合我们称之为优化问题梯度下降算法: 原来的权重 - cost对权重的导数乘以学习率梯度下降算法类似于贪心算法,用梯度下降算法可以得到局部最优点,但是没办法保证找到全局最优点目前梯度下降算法使用的很多,因为在实际应用过程中很难陷入局部最优点。但是鞍点成了最大的问题,即梯度为0,会导致算法无法继续迭代。原创 2023-10-30 16:31:38 · 63 阅读 · 0 评论 -
刘二大人 《PyTorch深度学习实践》P2 线性模型
由于模型过于复杂,模型学习能力过强,因此模型会去学习数据中隐含的噪声,导致模型学习不到数据集的真正分布。首先选择一个模型y = wx + b ==简化==> y = wx,对于参数一般开始是随机选择一个随机数。:通过训练已知数据集结果的模型进行训练,然后用训练好的模型来预测未知测试集的结果达到某一功能的过程。将训练集再进行划分,一份用来训练,另一份用来评估(成为开发集),之后再做测试,可以提高泛化能力。比较随机权重得到的y与实际的y的平方差,计算损失,取w使得损失最小。原创 2023-10-30 16:09:33 · 64 阅读 · 0 评论 -
刘二大人 《PyTorch深度学习实践》P1 Overview
神经网络来源于神经科学(哺乳动物获取特征的过程是分层的),深度学习来源于数学与工程学。(end to end / 端到端):简单特征,设计额外的层提取特征(监督学习),接入到学习器(多层神经网络),输出。感知机:信号加权求和输出(仿生学的算法)==》人工神经网络:其中最重要的一个算法是反向传播(求偏导)传统表示学习,特征提取器和学习器两者分开;,先进行正向计算(前馈),再通过链式求导法则计算损失函数对原子的偏导。:手工进行提取特征建立向量,与输出建立一个映射。:特征提取器,学习器,输出。原创 2023-10-30 15:41:57 · 51 阅读 · 0 评论