linear

深度学习 #01

不问归期 提交于 2020-02-14 21:38:40
# 线性回归的从零开始实现 In[6]: get_ipython().run_line_magic('matplotlib', 'inline') import torch from IPython import display from matplotlib import pyplot as plt import numpy as np import random ## 生成数据集 In[7]: num_inputs = 2 num_examples = 1000 true_w = [2, -3.4] true_b = 4.2 features = torch.randn(num_examples, num_inputs, dtype=torch.float32) labels = true_w[0] * features[:, 0] + true_w[1] * features[:, 1] + true_b labels += torch.tensor(np.random.normal(0, 0.01, size=labels.size()), dtype=torch.float32) In[8]: print(features[0], labels[0]) In[9]: def use_svg_display(): # 用矢量图显示 display.set

pytorch学习(六)快速搭建法

一个人想着一个人 提交于 2020-02-14 17:46:59
在前两次的学习中搭建一个网络分为了两部分。首先定义该网络中存在的各层,并设定好每层的参数,然后构建前向传播关系,这样才能形成一个有效的网络架构。例如下面这一简单的网络结构。 class Net(torch.nn.Module): def __init__(self, n_feature, n_hidden, n_output): super(Net, self).__init__() self.hidden = torch.nn.Linear(n_feature, n_hidden) # hidden layer self.out = torch.nn.Linear(n_hidden, n_output) # output layer def forward(self, x): x = F.relu(self.hidden(x)) # activation function for hidden layer x = self.out(x) return x 在这里将使用一种简单的搭建方法,可以将上述两部和起来,那就是使用Sequential,直接按照结构顺序排列每一层,并设定每层的参数,这样就会按照网络层的顺序构建一个网络。可以打印出来看一下。 net = torch.nn.Sequential( torch.nn.Linear(1, 10), torch.nn.ReLU(),

打卡(一)

懵懂的女人 提交于 2020-02-14 17:44:15
线性回归 从零开始 生成/准备数据集 读取数据集 初始化模型参数 正态分布初始化:np.random.normal(loc(均值),scale(标准差),size(输出形状)) 全零初始化:np.zeros() 定义模型 torch.mm(矩阵相乘) torch.mul(点乘) 定义损失函数 均方损失函数 交叉熵损失函数 定义优化函数 小批量随机梯度下降,参数-学习率*梯度/batch_size 训练 前向传播 求损失 反向传播 优化参数 梯度清零 pytorch简介实现 Dataloader使用 import torch.utils.data as Data batch_size = 10 # combine featues and labels of dataset dataset = Data.TensorDataset(features, labels) # put dataset into DataLoader data_iter = Data.DataLoader( dataset=dataset, # torch TensorDataset format batch_size=batch_size, # mini batch size shuffle=True, # whether shuffle the data or not num_workers=2, #

pytorch Model Linear实现线性回归CUDA版本

落花浮王杯 提交于 2020-02-12 20:21:20
实验代码 import torch import torch.nn as nn #y = wx + b class MyModel(nn.Module): def __init__(self): super(MyModel,self).__init__() #自定义代码 # self.w = torch.rand([500,1],requires_grad=True) # self.b = torch.tensor(0,dtype=torch.float,requires_grad=True) # self.lr = nn.Linear(1,1) self.lr1 = nn.Linear(1,10) # self.lr2 = nn.Linear(10,20) # self.lr3 = nn.Linear(20,1) def forward(self,x): #完成一次前项计算 # y_predict = x*self.w + self.b # return y_predict # return self.lr(x) out1 = self.lr1(x) # out2 = self.lr2(out1) # out = self.lr3(out2) return out1 if __name__ == '__main__': model = MyModel() # print

南瓜书《动手机器学习公益训练营》-lesson1

二次信任 提交于 2020-02-12 12:29:22
线性回归 主要内容包括: 1. 线性回归的基本要素 模型 为了简单起见,这里我们假设价格只取决于房屋状况的两个因素,即面积(平方米)和房龄(年)。接下来我们希望探索价格与这两个因素的具体关系。线性回归假设输出与各个输入之间是线性关系: p r i c e = w a r e a ⋅ a r e a + w a g e ⋅ a g e + b \mathrm{price} = w_{\mathrm{area}} \cdot \mathrm{area} + w_{\mathrm{age}} \cdot \mathrm{age} + b p r i c e = w a r e a ​ ⋅ a r e a + w a g e ​ ⋅ a g e + b 数据集 我们通常收集一系列的真实数据,例如多栋房屋的真实售出价格和它们对应的面积和房龄。我们希望在这个数据上面寻找模型参数来使模型的预测价格与真实价格的误差最小。在机器学习术语里,该数据集被称为训练数据集(training data set)或训练集(training set),一栋房屋被称为一个样本(sample),其真实售出价格叫作标签(label),用来预测标签的两个因素叫作特征(feature)。特征用来表征样本的特点。 损失函数 在模型训练中,我们需要衡量价格预测值与真实值之间的误差。通常我们会选取一个非负数作为误差

人工智能教程 - 数学基础课程1.2 - 数学分析(三)-3

不羁岁月 提交于 2020-02-07 02:13:41
一阶线性 First-order linear a ( x ) y ′ + b ( x ) y = c ( x ) a(x)y'+b(x)y=c(x) a ( x ) y ′ + b ( x ) y = c ( x ) linear: a y 1 + b y 2 = c ay_1+by_2=c a y 1 ​ + b y 2 ​ = c 齐次(homogeneous) (c=0) Standard linear from y’+ p(x)y = q(x) Models 温度-浓度模型 mixing Decay, bank some motion 传导(Conducion) Newton cooling law: d T d t = k ( T e − T ) \frac{dT}{dt}=k(T_e-T) d t d T ​ = k ( T e ​ − T ) k>0 <— conductivity T(0) = T 0 T_0 T 0 ​ 扩散(Diffusion) C = salt concentration inside C e C_e C e ​ = salt conc. outside 半透明膜(membrare wall) d C d t = k 1 ( C e − C ) \frac{dC}{dt}=k_1(C_e-C) d t d C ​ = k 1 ​ ( C e

css3实现转轴展开照片列表

♀尐吖头ヾ 提交于 2020-02-05 02:28:50
* { margin : 0 ; padding : 0 ; } ul { list - style : none ; } . wrap { width : 100 vw ; height : 100 vh ; background - color : black ; display : flex ; /* x轴居中 */ justify - content : center ; /* y居中 */ align - items : center ; } . wrap ul { width : 80 % ; height : 80 % ; /* background-color: white; */ /* border: 1px solid white; */ /* 弹性盒模型 */ display : flex ; /* 两端对齐 */ justify - content : space - between ; align - items : center ; } . wrap li { width : 16 % ; height : 100 % ; background : # 333 ; border - radius : 20 px ; overflow : hidden ; transition : width 0.5 s linear , height 0.5 s

纯CSS实现枫叶下落

可紊 提交于 2020-01-21 00:57:41
纯CSS实现枫叶下落 教程地址 : 原文地址(YouTube) B站教程 : 原文转载(bilibili) 两个视频的内容相同,第二个为转载 效果图 代码区 以下代码为本人填写,转载请注明教程地址和本贴地址 html <!DOCTYPE html> < html lang = " en " > < head > < meta charset = " UTF-8 " > < meta name = " viewport " content = " width=device-width, initial-scale=1.0 " > < meta http-equiv = " X-UA-Compatible " content = " ie=edge " > < title > Document </ title > < link rel = " stylesheet " href = " css/style.css " > </ head > < body > < section > < h2 > Autumn leaves </ h2 > < div class = " set " > <!-- 中 --> < div > < img src = " img/f1.png " > </ div > < div > < img src = " img/f2.png " > </ div

Python - 线性回归(Linear Regression) 的 Python 实现

淺唱寂寞╮ 提交于 2020-01-14 07:52:29
背景 学习 Linear Regression in Python – Real Python ,前面几篇文章分别讲了“regression怎么理解“,”线性回归怎么理解“,现在该是实现的时候了。 线性回归的 Python 实现:基本思路 导入 Python 包: 有哪些包推荐呢? Numpy :数据源 scikit-learn :ML statsmodels : 比 scikit-learn 功能更强大 准备数据 建模拟合 验证模型的拟合度 预测:用模型来预测新的数据 实现细节 以最简单的线性回归为例,代码参考的是原文。 重点是掌握基本思路,以及关键的几个函数。影响拟合度的因素很多,数据源首当其冲,模型的选择也是关键,这些在实际应用中具体讨论,这里就简单的对应前面的基本思路将 sample 代码及运行结果贴一下,稍加解释。 安装并导入包 根据自己的需要导入 pip install scikit-learn pip install numpy pip install statsmodels from sklearn.preprocessing import PolynomialFeatures import numpy as np from sklearn.linear_model import LinearRegression import statsmodels.api as

从负无穷学习机器学习(五)支持向量机SVM

天大地大妈咪最大 提交于 2020-01-13 14:15:18
文章目录 一、支持向量机 二、支持向量机的核函数 (一)、线性(linear)内核的SVM的分类器 (二)、RBF内核的SVM的分类器 三、SVM核函数和参数选择 (一)、不同核函数的对比 (二)、不同参数的对比 四、SVM示例——波士顿房价回归分析 (一)、查看数据集 (二)、使用SVR建模 一、支持向量机 如果样本数据是线性不可分的,之前的分类器处理这类数据效果不太好,而SVM(Support Vector Machine)是一种专门处理线性不可分数据的算法。 SVM算法中,训练模型的过程实际上是对每个数据点对于 数据分类决定边界的重要性 进行判断。也就是说在训练数据集中, 只有一部分数据对于边界的确定是有作用的 ,而这些数据点 正好在决定边界上 ,这些数据被称为“ 支持向量 ”。 二、支持向量机的核函数 SVM可以将 二维数据 (2 Dimension)转变成 三维数据 (3 Dimension),这称为 将数据投射至高维空间 。 这正是SVM算法的核函数(kernel trick)功能,用的最普遍的用于将数据投射到高维空间的方法是 多项式内核 (Polynomial kernel)和 径向基内核 (Radial Basis Function kernel,RBF)多项式内核就是 将不同的特征乘方处理 。而RBF内核也称为 高斯内核 (Gaussian kernel)