pytorch入门2.x构建回归模型系列:

pytorch入门2.0构建回归模型初体验(数据生成)

pytorch入门2.1构建回归模型初体验(模型构建)

pytorch入门2.2构建回归模型初体验(开始训练)

终于要构建模型啦。这里我们构建的是回归模型,是用神经网络构建的,基本结构是什么样的呢?

你肯定听说过,神经网络有输入层、隐藏层、输出层,一般结构如下图所示(图片来源于网络,侵删):



所以,对比我们之前生成的数据来说,形如x=3我们想得到的输出为y=8。分别对应了上面的输入层和输出层,所以,在此我们要构建中间的隐藏层来模拟那个看不见的函数(我们生成数据的函数,假设是未知的,因为如果是已知的,我们直接用这个函数式子来求输出啦。现在就是利用神经网络强大的对函数的拟合能力,来模拟这个函数)。

下面就来建立第一个模型吧:

class LinearRegression(nn.Module):  # 继承父类nn.Module,很多额外的、重要的东西就不用写了,只管自己做的事情就可以(你不是要建立回归模型么)
def __init__(self):
super(LinearRegression,self).__init__() # 调用父类的初始化函数
# 建立隐藏层,下面是三个隐藏层
self.linear = nn.Linear(1,10) # 输入是一个数,所以输出是1,中间建立10个隐藏层节点,此时,你输出的是10个数
self.linear2 = nn.Linear(10,6,bias=True) # 承接上一层的输入,10个数,此层在融合成6个数。这里加了个偏置参数。
self.linear3 = nn.Linear(6,1) # 输出层,承接上面6个数,最终输出一个数
# 至此网络的部件定义完毕 # 网络的部件定义好了,下面开始组装啦,设置数据如何在网络中流动,即前向传播
def forward(self,x): #输入的是x,就是指前面的输入层的输入
# 设置数据流动过程,如果网络非常复杂,此处要注意输入数据的维度,经过各层之后得到的数据维度。
x = F.relu(self.linear(x)) #首先经过一个线性层linear,然后经过一个激活函数relu
x = F.relu(self.linear2(x)) #同上
x = self.linear3(x) # 最终经过最后的线性层,得到结果,结果是1维的哦
return x # 返回最后得到的数据

经过上面之后,一个网络模型就定义完成了,动动脑筋想想我们构建的模型是怎么样的呢?就是形如上面那张图的样子,只是中间的节点数量会变化。

模型定义好了,当然我们用的时候要实例化,我们先实例化一下,打印出来看看模型啥样?

model = LinearRegression()
print(model)
'''
===output===
LinearRegression(
(linear): Linear(in_features=1, out_features=10, bias=True)
(linear2): Linear(in_features=10, out_features=6, bias=True)
(linear3): Linear(in_features=6, out_features=1, bias=True)
)
'''

可以看到模型的形状正如我们上面所介绍,网络模型是有三个线性层,这里把激活函数省略了。

下一节,我们继续介绍如何使用定义好的网络模型去做回归训练啦。

pytorch入门2.1构建回归模型初体验(模型构建)的更多相关文章

  1. pytorch入门2.2构建回归模型初体验(开始训练)

    pytorch入门2.x构建回归模型系列: pytorch入门2.0构建回归模型初体验(数据生成) pytorch入门2.1构建回归模型初体验(模型构建) pytorch入门2.2构建回归模型初体验( ...

  2. pytorch入门2.0构建回归模型初体验(数据生成)

    pytorch入门2.x构建回归模型系列: pytorch入门2.0构建回归模型初体验(数据生成) pytorch入门2.1构建回归模型初体验(模型构建) pytorch入门2.2构建回归模型初体验( ...

  3. cucumber java从入门到精通(1)初体验

    cucumber java从入门到精通(1)初体验 cucumber在ruby环境下表现让人惊叹,作为BDD框架的先驱,cucumber后来被移植到了多平台,有cucumber-js以及我们今天要介绍 ...

  4. python--爬虫入门(七)urllib库初体验以及中文编码问题的探讨

    python系列均基于python3.4环境 ---------@_@? --------------------------------------------------------------- ...

  5. 2,turicreate入门 - 一个简单的回归模型

    turicreate入门系列文章目录 1,turicreate入门 - jupyter & turicreate安装 2,turicreate入门 - 一个简单的回归模型 3,turicrea ...

  6. pytorch 入门指南

    两类深度学习框架的优缺点 动态图(PyTorch) 计算图的进行与代码的运行时同时进行的. 静态图(Tensorflow <2.0) 自建命名体系 自建时序控制 难以介入 使用深度学习框架的优点 ...

  7. PyTorch专栏(六): 混合前端的seq2seq模型部署

    欢迎关注磐创博客资源汇总站: http://docs.panchuang.net/ 欢迎关注PyTorch官方中文教程站: http://pytorch.panchuang.net/ 专栏目录: 第一 ...

  8. Pytorch入门——手把手教你MNIST手写数字识别

    MNIST手写数字识别教程 要开始带组内的小朋友了,特意出一个Pytorch教程来指导一下 [!] 这里是实战教程,默认读者已经学会了部分深度学习原理,若有不懂的地方可以先停下来查查资料 目录 MNI ...

  9. grunt 构建工具(build tool)初体验

    操作环境:win8 系统,建议使用 git bash (window下的命令行工具) 1,安装node.js 官网下载:https://nodejs.org/  直接点击install ,会根据你的操 ...

随机推荐

  1. 【雕爷学编程】Arduino动手做(51)---触摸按键模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备 ...

  2. 马兴德201771010117《面向对象程序设计(java)》第一周学习总结

    第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.com 挽歌朽年 程序设计评测:https://pintia.cn/ 791683057@qq ...

  3. Istio-架构

    读书笔记整理 工作机制:分为控制面和数据面 控制面:Pilot, Mixer(接收来自Envoy上报的数据), Citadel(证书和密钥管理) 数据面:Envoy 工作流程: 自动注入 应用程序启动 ...

  4. 用jquery写一个上拉加载

    /*可加载页面吗*/function canLoadMore() { return $('.loadin').length < 1;}/*移除正在加载字样*/function removeMor ...

  5. 微信小程序开发 -- 通过云函数下载任意文件

    微信小程序开发 -- 通过云函数下载任意文件 1.云开发介绍 ​ 微信小程序开发者众所周知,小程序开发拥有许多限制,当我还是一个菜鸟入门的时候,第一关就卡在了没有备案域名的HTTP请求上面,那时候云开 ...

  6. Python每日一练(1)

    这两天在做Python的每日一练,感觉收获颇丰,所以来记录分享一下,一共做了三个,涉及socket,PIL,pymysql三个库,另外终于开始了Flask框架的学习,后续也会做出一些分析 第一个是一个 ...

  7. Druid数据库连接池的使用

    Druid  阿里提供的数据库连接池,集以上连接池优点于一身,开发使用此连接池 使用配置文件方式获取Druid数据库连接池 TestDruid package com.aff.connection; ...

  8. java类的方法的使用

    类的方法:提供某种功能的实现: 实例:public void eat (){ } public String  getName(){ } public void  setName(String n){ ...

  9. Netty学习笔记(二) - ChannelPipeline和ChannelHandler

    ChannelPipeline 和 ChannelHandler 是 Netty 重要的组件之一,通过这篇文章,重点了解这些组件是如何驱动数据流动和处理的. 一.ChannelHandler 在上一篇 ...

  10. C#/WPF/WinForm/.NET程序代码实现软件程序开机自动启动的两种常用方法的示例与源码下载带详细注释-源码代码-注册表方式-启动目录快捷方式

    C#/WPF/WinForm/.NET程序代码实现软件程序开机自动启动的两种常用方法的示例与源码下载带详细注释-源码代码-注册表方式-启动目录快捷方式 C#实现自动启动的方法-两种方法 源码下载地址: ...