pytorch搭建神经网络是很简单明了的,这里介绍两种自己常用的搭建模式:

import torch

import torch.nn as nn

first:

class NN(nn.Module):

def __init__(self):

super(NN,self).__init__()

self.model=nn.Sequential(

nn.Linear(30,40),

nn.ReLU(),

nn.Linear(40,60),

nn.Tanh(),

nn.Linear(60,10),

nn.Softmax()

)

self.model[0].weight.data.uniform_(-3e-3, 3e-3)

self.model[0].bias.data.uniform(-1,1)

def forward(self,states):

return self.model(states)

这一种是将整个网络写在一个Sequential中,网络参数设置可以在网络搭建好后单独设置:self.model[0].weight.data.uniform_(-3e-3,3e-3),这是设置第一个linear的权重是(-3e-3,3e-3)之间的均匀分布,bias是-1至1之间的均匀分布。

second:

class NN1(nn.Module):

def __init__(self):

super(NN1,self).__init__()

self.Linear1=nn.Linear(30,40)

self.Linear1.weight.data.fill_(-0.1)

#self.Linear1.weight.data.uniform_(-3e-3,3e-3)

self.Linear1.bias.data.fill_(-0.1)

self.layer1=nn.Sequential(self.Linear1,nn.ReLU())

self.Linear2=nn.Linear(40,60)

self.layer2=nn.Sequential(self.Linear2,nn.Tanh())

self.Linear3=nn.Linear(60,10)

self.layer3=nn.Sequential(self.Linear3,nn.Softmax())

def forward(self,states):

return self.model(states)

网络参数的设置可以在定义完线性层之后直接设置如这里对于第一个线性层是这样设置:self.Linear1.weight.data.fill_(-0.1),self.Linear1.bias.data.fill_(-0.1)。

你可以看一下这样定义完的参数的效果:

Net=NN()

print("0:",Net.model[0])

print("weight:",type(Net.model[0].weight))

print("weight:",type(Net.model[0].weight.data))

print("bias",Net.model[0].bias.data)

print('1:',Net.model[1])

#print("weight:",Net.model[1].weight.data)

print('2:',Net.model[2])

print('3:',Net.model[3])

#print(Net.model[-1])

Net1=NN1()

print(Net1.Linear1.weight.data)

输出:

0: Linear (30 -> 40)

weight:

weight:

bias

-0.6287

-0.6573

-0.0452

0.9594

-0.7477

0.1363

-0.1594

-0.1586

0.0360

0.7375

0.2501

-0.1371

0.8359

-0.9684

-0.3886

0.7200

-0.3906

0.4911

0.8081

-0.5449

0.9872

0.2004

0.0969

-0.9712

0.0873

0.4562

-0.4857

-0.6013

0.1651

0.3315

-0.7033

-0.7440

0.6487

0.9802

-0.5977

0.3245

0.7563

0.5596

0.2303

-0.3836

[torch.FloatTensor of size 40]

1: ReLU ()

2: Linear (40 -> 60)

3: Tanh ()

-0.1000 -0.1000 -0.1000 ... -0.1000 -0.1000 -0.1000

-0.1000 -0.1000 -0.1000 ... -0.1000 -0.1000 -0.1000

-0.1000 -0.1000 -0.1000 ... -0.1000 -0.1000 -0.1000

... ⋱ ...

-0.1000 -0.1000 -0.1000 ... -0.1000 -0.1000 -0.1000

-0.1000 -0.1000 -0.1000 ... -0.1000 -0.1000 -0.1000

-0.1000 -0.1000 -0.1000 ... -0.1000 -0.1000 -0.1000

[torch.FloatTensor of size 40x30]

Process finished with exit code 0

这里要注意self.Linear1.weight的类型是网络的parameter。而self.Linear1.weight.data是FloatTensor。

以上这篇关于pytorch中全连接神经网络搭建两种模式详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

python的神经网络模块接法图解_关于pytorch中全连接神经网络搭建两种模式详解...相关推荐

  1. python的神经网络模块接法图解_图神经网络库PyTorch geometric

    如何快速理解gcn的在文章<一文读懂图卷积GCN>中已经有比较详细的说明,建议没有任何基础的小伙伴先读下理论入门. 我们不能做思想上的巨人,行动上的矮子,因此来学习下如何利用现有的库快速跑 ...

  2. 运用python的方式_对Python使用mfcc的两种方式详解

    1.Librosa import librosa filepath = "/Users/birenjianmo/Desktop/learn/librosa/mp3/in.wav" ...

  3. 站长在线Python精讲:在Python中格式化字符串的两种方法详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中格式化字符串的两种方法详解>.本知识点主要内容有:使用%操作符格式化字符串和使用format()方法格式化字 ...

  4. python——tensorflow使用和两层全连接神经网络搭建

    一.Tensorflow使用 1.Tensorflow简介 TensorFlow是一个软件库,封装了建构神经网络的API,类似于MatLab的神经网络工具箱,是Google于2015年推出的深度学习框 ...

  5. python3库_对python3中pathlib库的Path类的使用详解

    用了很久的os.path,今天发现竟然还有这么好用的库,记录下来以便使用. 1.调用库 from pathlib import 2.创建Path对象 p = Path('D:/python/1.py' ...

  6. python匹配文本中全角符号的两种方法

    在对文本进行处理的时候经常会遇见要对括号和标点进行匹配 常见的英文(半角)符号如( ) 直接用正则匹配即可 但是遇见全角字符(中文括号.标点),直接用正则匹配会存在问题: 因为编码通常为为utf8,若 ...

  7. python连接mysql三种方式_用 Python 连接 MySQL 的几种方式详解

    每个学 Python 的都有必要学好一门数据库,不管你是做数据分析,还是网络爬虫,Web 开发.亦或是机器学习,你都离不开要和数据库打交道,而 MySQL 又是最流行的一种数据库,这篇文章介绍 Pyt ...

  8. python杨辉三角两种写法详解

    一般写杨辉三角都是用二维数组,通过二维数组的下标,可以非常容易的计算出下一行结果. [1] [1, 1] [1, 2, 1] [1, 3, 3, 1] [1, 4, 6, 4, 1] [1, 5, 1 ...

  9. python从后向前匹配_python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解...

    前言 在许多的情况下,很多要匹配内容是一起出现,或者一起不出现的.比如<>,< >,这样的括号,不存在使用半个的情况.因此,在正则表达式里也有一致性的判断,要么两个尖括号一起出 ...

  10. 融云发送自定义消息_数据源管理 | Kafka集群环境搭建,消息存储机制详解

    一.Kafka集群环境 1.环境版本 版本:kafka2.11,zookeeper3.4 注意:这里zookeeper3.4也是基于集群模式部署. 2.解压重命名 tar -zxvf kafka_2. ...

最新文章

  1. python在教育领域可以干什么_学了Python一般可以用来干什么呢?
  2. Office 2010 Multi-language Pack download
  3. Android控件-GridView
  4. 【python图像处理】两幅图像的合成一幅图像(blending two images)
  5. 有关Non-cacheable,,Cacheable, non-shareable,inner-shareable,outer-shareable的理解
  6. 【中间件】大数据之分布式消息队列Kafka
  7. windows XP系统下oracle完整卸载过程
  8. java judgefilecode_VScode出现无法打开“X”: 找不到文件(file:///XXXX) 的解决办法
  9. 最全JavaScript基础总结~建议收藏
  10. OpenCV-Laplacian边缘检测
  11. mac vscode debug安装调试moodle
  12. urlrewrite java_Java中URL重写(urlrewrite+Maven)
  13. 如何删除电脑计算机用户账户,怎么删除电脑账户密码 如何删除电脑开机账户密码...
  14. stackoverflow热门问题(二)- 如何确定C的数组的大小
  15. mysql主从配置duxi_MySQL 8.0主从(Master-Slave)配置
  16. C#+Appium+Nunit demo
  17. Docker容器的数据卷(volumes)
  18. html5论文答辩,论文答辩5分钟自述
  19. linux shell 快速掌握
  20. 如何使用纯JS过掉淘宝滑块

热门文章

  1. R语言 面板数据分析 plm包实现(三)——面板数据与面板模型的检验
  2. 计算机专业英语 背单词,几个背英语单词的app,好用的,我亲自用过
  3. IE提示“Internet Explorer无法打开站点XX,已终止操作”的解决办法
  4. 做前端网页需要用网页框架吗
  5. 利用java图形用户界面实现后台管理系统
  6. PHP+经贸时间轴 毕业设计-附源码211617
  7. canvas橡皮擦功能
  8. python 基础 Number String List Tuple Diction nary
  9. 如何迅速提升网站流量
  10. 抖音 iOS 推荐 Feed 容器化总结