pyTorch深度学习多层感知机的实现

 更新时间:2021年09月30日 11:42:47   作者:算法菜鸟飞高高  
这篇文章主要为大家介绍了pyTorch深度学习多层感知机的实现,文中附含详细示例代码,有需要的朋友可以借鉴参考下,希望能够有所帮

激活函数

前两节实现的传送门

pyTorch深度学习softmax实现解析

pyTorch深入学习梯度和Linear Regression实现析

前两节实现的linear model 和 softmax model 是单层神经网络,只包含一个输入层和一个输出层,因为输入层不对数据进行transformation,所以只算一层输出层。

多层感知机(mutilayer preceptron)加入了隐藏层,将神经网络的层级加深,因为线性层的串联结果还是线性层,所以必须在每个隐藏层之后添加激活函数,即增加model的非线性能力,使得model的function set变大。

ReLU,Sigmoid, tanh是三个常见的激活函数,分别做出它们的函数图像以及导数图像。

#画图使用
def xyplot(x,y,name,size):
	plt.figure(figsize=size)
	plt.plot(x.detach().numpy(),y.detach().numpy())
	plt.xlabel('x')
	plt.ylabel(name+'(x)')
	plt.show()
#relu
x = torch.arange(-8,8,0.01,requires_grad=True)
y = x.relu()
xyplot(x,y,'relu')

在这里插入图片描述

y.sum().backward()
xyplot(x,x.grad,'grad of relu')

在这里插入图片描述

其它两个激活函数的图像画法类似,分别为x.sigmoid(),x.tanh()

多层感知机的PyTorch实现

实际上多层感知机不过是在linear变换之后添加relu操作,在output layer进行softmax操作

def relu(x):
	return torch.max(input=x,others,other=torch.tensor(0.0))

max这个方法除了返回tensor中的最大值,还有和maximum函数一样的作用,将input和other进行element-wise的比较,返回二者中的最大值,shape不变。

class MulPeceptron(nn.Module):
    def __init__(self,in_features,out_features):
        super().__init__()
        self.fc = nn.Linear(in_features=in_features,out_features=256)
        self.out = nn.Linear(in_features=256,out_features=out_features)
    def forward(self,t):
        t = t.flatten(start_dim=1)
        t = self.fc(t)
        t = F.relu(t)
        t = self.out(t)
        return t

这里就不从零开始实现了,因为softmax和linear model手写过以后,这个只是增加了一个矩阵乘法和一个ReLU操作

以上就是pytorch深度学习多层感知机的实现的详细内容,更多关于pytorch实现多层感知机的资料请关注脚本之家其它相关文章!

相关文章

  • python文件处理详解

    python文件处理详解

    这篇文章主要介绍了Python 处理文件的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-10-10
  • Python安装Numpy出现异常信息简单解决办法

    Python安装Numpy出现异常信息简单解决办法

    在安装Python的Numpy包时,可能会遇到路径警告或包源超时的问题,首先,如果出现包源超时,可以尝试更换为国内的镜像源,如清华大学镜像源,其次,如果在安装完成后提示将某个路径添加到PATH环境变量,按照提示操作即可消除异常,需要的朋友可以参考下
    2024-09-09
  • Pandas中DataFrame常用操作指南

    Pandas中DataFrame常用操作指南

    DataFrame是pandas最常用的对象,其类似于excel中的表格,完成数据读取后,数据就以DataFrame数据结构存储在内存中,下面这篇文章主要给大家介绍了关于Pandas中DataFrame常用操作的相关资料,需要的朋友可以参考下
    2022-06-06
  • 分享unittest单元测试框架中几种常用的用例加载方法

    分享unittest单元测试框架中几种常用的用例加载方法

    这篇文章主要介绍了unittest单元测试框架中常用的几种用例加载方法,帮助大家更好的理解和使用python的unittest测试模块,感兴趣的朋友可以了解下
    2020-12-12
  • Python3爬虫中pyspider的安装步骤

    Python3爬虫中pyspider的安装步骤

    在本篇内容里小编给大家整理的是一篇关于Python3爬虫中pyspider的安装步骤,需要的朋友们可以学习参考下。
    2020-07-07
  • python常量折叠基础知识点讲解

    python常量折叠基础知识点讲解

    在本篇文章里小编给大家整理的是一篇关于python常量折叠基础知识点讲解,对此有兴趣的朋友可以跟着学习下。
    2021-02-02
  • python groupby函数实现分组后选取最值

    python groupby函数实现分组后选取最值

    这篇文章主要介绍了python groupby函数实现分组后选取最值,文章围绕主题相关资料展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • scrapy框架中的items文件夹的用法详解

    scrapy框架中的items文件夹的用法详解

    这篇文章主要介绍了scrapy框架中的items文件夹的用法详解,在Scrapy框架中,items文件夹是用来存放定义数据模型的Item类的地方,Item类描述了要从网页中提取的数据的结构和字段,通过使用Item类,我们可以更方便地组织和处理爬取到的数据,需要的朋友可以参考下
    2023-10-10
  • 使用Python处理Excel表格的简单方法

    使用Python处理Excel表格的简单方法

    这篇文章主要介绍了使用Python处理Excel表格的简单方法,本文给大家介绍的非常详细,需要的朋友可以参考下
    2018-06-06
  • 分析机器学习之决策树Python实现

    分析机器学习之决策树Python实现

    决策树是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规则,并用树状图的结构来呈现这些规则,以解决分类和回归问题。决策树算法容易理解,适用各种数据,在解决各种问题时都有良好表现
    2021-06-06

最新评论