神经网络层的搭建主要是两种方法,一种是使用类(继承torch.nn.Moudle),一种是使用torch.nn.Sequential来快速搭建。

1)首先我们先加载数据:

  1.  
  1. import torch
    import torch.nn.functional as F
  1. #回归问题
  2. x=torch.unsqueeze(torch.linspace(-1,1,100),dim=1)
  3. y=x.pow(2)+0.2*torch.rand(x.size())

2)两种方法的模板:

2.1: 类(class):这基本就是固定格式,init中定义每个神经层的神经元个数,和神经元层数,forward是继承nn.Moudle中函数,来实现前向反馈(加上激励函数)

  1. #method1
  2. class Net(torch.nn.Module):
  3. def __init__(self):
  4. super(Net, self).__init__()
  5. pass
  6. def forward(self,x):
  7. pass

比如:

  1. #method1
  2. class Net(torch.nn.Module):
  3. def __init__(self):
  4. super(Net, self).__init__()
  5. self.hidden=torch.nn.Linear(1,10)
  6. self.prediction=torch.nn.Linear(10,1)
  7. def forward(self,x):
  8. x=F.relu(self.hidden(x)) #使用relu作为激励函数
  9. x=self.prediction(x) #最后一个隐藏层到输出层没有使用激励函数,你也可以加上(一般不加)
  10. return x
  11. net=Net()
  12. print(net)
  13. '''
  14. #输出:
  15. Net(
  16. (hidden): Linear(in_features=1, out_features=10, bias=True) #hidden就是self.hidden,没有特殊意义,你自己可以命名别的
  17. (prediction): Linear(in_features=10, out_features=1, bias=True)
  18. )
  19. '''

2.2:快速搭建

   模板:

  1. net2=torch.nn.Sequential( )

比如:net2 = torch.nn.Sequential(

  1.  
  1. net2 = torch.nn.Sequential(
  1. torch.nn.Linear(1, 10),
  2. torch.nn.ReLU(),
  3. torch.nn.Linear(10, 1)
  4. )
    print(net2)
    '''
  1. Sequential (
  2. (0): Linear (1 -> 10)
  3. (1): ReLU ()
  4. (2): Linear (10 -> 1)
  5. )
  1. '''

两者大致相同,稍微有区别的地方就是在于快速搭建中激励函数(relu....)看做一个神经层。

pytorch神经网络层搭建方法的更多相关文章

  1. 深度学习之PyTorch实战(2)——神经网络模型搭建和参数优化

    上一篇博客先搭建了基础环境,并熟悉了基础知识,本节基于此,再进行深一步的学习. 接下来看看如何基于PyTorch深度学习框架用简单快捷的方式搭建出复杂的神经网络模型,同时让模型参数的优化方法趋于高效. ...

  2. 深度学习之TensorFlow构建神经网络层

    深度学习之TensorFlow构建神经网络层 基本法 深度神经网络是一个多层次的网络模型,包含了:输入层,隐藏层和输出层,其中隐藏层是最重要也是深度最多的,通过TensorFlow,python代码可 ...

  3. zz神经网络模型量化方法简介

    神经网络模型量化方法简介 https://chenrudan.github.io/blog/2018/10/02/networkquantization.html 2018-10-02 本文主要梳理了 ...

  4. Redis Cluster搭建方法简介22211111

    Redis Cluster搭建方法简介 (2013-05-29 17:08:57) 转载▼       Redis Cluster即Redis的分布式版本,将是Redis继支持Lua脚本之后的又一重磅 ...

  5. Springmvc+Spring+Hibernate搭建方法及实例

    Springmvc+Spring+Hibernate搭建方法及实例  

  6. Springmvc+Spring+Hibernate搭建方法

    Springmvc+Spring+Hibernate搭建方法及example 前面两篇文章,分别介绍了Springmvc和Spring的搭建方法,本文再搭建hibernate,并建立SSH最基本的代码 ...

  7. windows系统下ruby开发环境的搭建方法

    ruby是一种简单快捷的面向对象的脚本语言,非常直观.下面说一下windows系统下ruby开发环境的搭建方法. 工具/原料 rubyinstaller.exe 方法/步骤 1 到如下网站去下载最新的 ...

  8. 微软&中科大提出新型自动神经架构设计方法NAO

    近期,来自微软和中国科学技术大学的刘铁岩等人发表论文,介绍了一种新型自动神经架构设计方法 NAO,该方法由三个部分组成:编码器.预测器和解码器.实验证明,该方法所发现的架构在 CIFAR-10 上的图 ...

  9. HHvm建站环境搭建方法:Nginx,Mariadb,hhvm及lnmp/lamp安装部署

    HHVM起源于Facebook公司,是一个开源的PHP虚拟机,使用JIT的编译方式以及其他技术,让PHP代码的执行性能大幅提升.HHVM提升PHP性能的途径,采用的方式就是替代Zend引擎来生成和执行 ...

随机推荐

  1. linux编译esp8266

    编译工具是xtensa-lx106-elf-gcc,一般会在~/.bashrc文件下添加 export PATH="$HOME/esp-open-sdk/xtensa-lx106-elf/b ...

  2. Python3-os模块详解

    import os # 返回一个目录的名称 print(os.path.basename("d:/python")) # 返回一个目录的目录名 print(os.path.dirn ...

  3. ElementUI datepicker日期选择器时间选择范围限制

    ElementUI是饿了么推出的一套基于vue2.x的一个ui框架.官方文档也很详细,这里做一个element-ui日期插件的补充. 最近做项目用到了datepicker,需要对日期选择做一些限制, ...

  4. Redis和Memcache区别

    1. Redis和Memcache都是将数据存放在内存中,都是内存数据库.不过memcache还可用于缓存其他东西,例如图片.视频等等. 2.Redis不仅仅支持简单的k/v类型的数据,同时还提供li ...

  5. Ant自动编译打包android项目(转载)

      1.1   Ant安装 ant的安装比较简单,下载ant压缩包  http://ant.apache.org  (最新的为1.9.3版本),下载之后将其解压到某个目录(本人解压到E:\Progra ...

  6. EntityManager的merge()方法

    EntityManager的merge()方法相当于hibernate中session的saveOrUpdate()方法: 用于实体的插入和更新操作:

  7. JVM(三),JVM如何加载.class文件

    三.JVM如何加载.class文件 1.Java虚拟机的四个部分 2.通过类加载器(ClassLoader)加载.class

  8. P4981 父子 Cayley公式

    CayleyCayley公式的定义是这样的,对于n个不同的节点,能够组成的无根树(原来是无向连通图或者是有标志节点的树)的种数是n^(n-2)种.(这里让大家好理解一点,就写成了无根树,其实应该是一样 ...

  9. codevs 1501 二叉树最大宽度和高度x

                         题目描述 Description 给出一个二叉树,输出它的最大宽度和高度. 输入描述 Input Description 第一行一个整数n. 下面n行每行有两 ...

  10. selenium 入门(Java)

    官网:https://www.seleniumhq.org/ 下载地址:https://sites.google.com/a/chromium.org/chromedriver/downloads 华 ...