PyTorch
框架学习
xiongyuqing
看见我请叫我学英语
展开
-
PyTorch学习-卷积神经网络(高级篇)
GoogLeNet观察具有相同结构的块,用函数封装起来,减少代码冗余。Inception :电影《盗梦空间》,重用Concatenate :拼接Average Pooling:设置Padding,stride保证输入输出大小相同1×11\times 11×1 Conv :融合了不同通道相同位置的信息C×W×H=>1×W×HC\times W \times H => 1 \times W \times HC×W×H=>1×W×H作用:减少运算量使用5×55\times 55原创 2020-08-24 16:01:57 · 723 阅读 · 0 评论 -
PyTorch学习-卷积神经网络(CNN)
Convolutional Neural Network全连接会丧失空间信息,卷积神经网络可以保留空间信息卷积过程中输入的通道数,长宽高会改变Feature Extraction : 特征提取器Classification : 分类器(全连接网络)图像:栅格图像,RGB显示(三通道,Channel)Channel×H×WChannel \times H \times WChannel×H×WInput Channel : Red Green BlueKernel : 卷积核卷积过程:对应数原创 2020-08-14 23:03:38 · 541 阅读 · 0 评论 -
PyTorch学习-多分类问题
输出属于某个类别的概率,希望输出之间有关系,相互影响,即输出一个分布做一个softmax层,使得输出大于0,和为1计算公式: P(y=i)=ezi∑j=0k−1ezjP(y=i)=\cfrac{e^{z_i}}{\sum_{j=0}^{k-1}{e^{z_j}}}P(y=i)=∑j=0k−1ezjeziLoss function-Cross Entropy: Loss(Y^,Y)=−YlogY^Loss(\hat{Y},Y)=-Ylog\hat{Y}Loss(Y^,Y)=−YlogY^Tor原创 2020-08-11 23:29:07 · 3183 阅读 · 0 评论 -
PyTorch学习-加载数据集
需要定义DiabetesDataset做为加载数据集diabetes的类, 继承自Dataset,Dataset是抽象类,需要实现其中的三个方法,__ init , getitem , len __import torchfrom torch.utils.data import Dataset # 抽象类from torch.utils.data import DataLoaderimport numpy as npclass DiabetesDataset(Dataset): # 继承自Dat原创 2020-08-11 12:43:38 · 345 阅读 · 0 评论 -
PyTorch学习-多维特征输入
对糖尿病病人的病情进行预测,预测未来是否会加重。输入有8个指标,也就是8个维度,输出只有一个维度即是否加重病情。维度的变化其实就是线性代数中矩阵乘法的作用:[m×n]⋅[n×k]=[m×k][m\times n]\cdot [n\times k]=[m\times k][m×n]⋅[n×k]=[m×k]import numpy as npimport torchxy = np.loadtxt('diabetes.csv.gz', delimiter = ',', dtype = np.float3原创 2020-07-31 22:38:49 · 1294 阅读 · 0 评论 -
PyTorch学习-逻辑斯蒂回归
Logistic regression线性回归输出的是实数,分类问题没有大小之分,输出的是属于某一类的概率将输出的实数映射到0~1的区间,饱和函数sigmoidsigmoidsigmoid 函数:σ(x)=11+e−x\sigma(x)=\cfrac{1}{1+e^{-x}}σ(x)=1+e−x1函数图像:Sigmoid Function有很多,例如 tanh(x)… …对于二分类的损失函数:y的取值为0、1表示两个类别BCE loss:loss=−(ylogy^+(1−y)log(1−y原创 2020-07-29 17:04:30 · 524 阅读 · 0 评论 -
PyTorch学习-实现线性回归
步骤:数据准备设计模型,计算 y^\hat yy^构建损失函数和优化器训练周期,更新参数模型:y^=w⋅x+b\hat{y}=w\cdot x + by^=w⋅x+b数据集:(x1,y1)、(x2,y2)、(x3,y3)(x1,y1)、(x2,y2)、(x3,y3)(x1,y1)、(x2,y2)、(x3,y3)y1^=wx1+b\hat{y_1}=wx_1+by1^=wx1+by2^=wx2+b\hat{y_2}=wx_2+by2^=wx2+by3^=wx3+b\hat原创 2020-07-29 14:51:14 · 296 阅读 · 0 评论 -
PyTorch学习-反向传播
反向传播链式法则,计算梯度(导数)。计算Loss对参数(权重)的偏导,便于利用梯度下降算法,更新权重和偏置的值,使得损失函数的值最小。PyTorch的Tensor基本数据类型成员:Tensor,可以是标量,向量,矩阵。包含两个数据成员:data:权重本身的值grad:损失函数对权重的导数构建模型就是构建计算图代码import numpy as npimport torchimport matplotlib.pyplot as pltx_data = [1.0, 2.0, 3..原创 2020-07-29 02:57:42 · 871 阅读 · 0 评论 -
PyTorch学习-梯度下降算法
分治方法:先分成nn个点进行搜索,选择最低的点,对最低的点再分成nn份再次进行搜索,选择最小的值,反复如此,找到最小值。但是这对于凸函数是较为有用的,对于不规则的函数,可能搜索到的是极小值点(局部最优点),而不是最小值点(全局最优点)。Gradient Descent Algorithm : 梯度下降算法(贪心思想,局部最优)Gradient : 梯度,梯度大于0上升,梯度小于0下降,所以参数向梯度的反方向更新。w=w−xg′(w)w=w-xg'(w)w=w−xg′(w)x:学习率损失函数的局部最原创 2020-07-27 01:32:00 · 862 阅读 · 0 评论 -
PyTorch学习-线性模型
将数据分为训练集、验证集(x,y)和测试集(x)。注意过拟合,提高模型的泛化能力。线性模型(Linear Model):y′=x∗w+by'=x*w+by′=x∗w+b,x,w,bx,w,bx,w,b 往往是矩阵目的就是求w,bw,bw,b的值假设 loss=(y′−y)2=(x∗w−y)2loss = (y'-y)^{2}=(x*w-y)^2loss=(y′−y)2=(x∗w−y)2要使 losslossloss的值最小平均平方误差(Mean Square Error, MSE) : cost=原创 2020-07-25 23:14:25 · 529 阅读 · 0 评论