您现在的位置是:首页 >其他 >pytorch深度学习框架—torch.nn模块(二)网站首页其他

pytorch深度学习框架—torch.nn模块(二)

程序小旭 2024-10-19 00:01:10
简介pytorch深度学习框架—torch.nn模块(二)

pytorch深度学习框架—torch.nn模块(二)

激活函数

pytorch中提供了十几种激活函数,常见的激活函数通常为S形激活函数(Sigmoid)双曲正切激活函数(Tanh) 和线性修正单元(ReLu)激活函数等

层对应的类功能
torch.nn.Sigmoid激活函数
torch.nn. Tanh激活函数
torch.nn.ReLu激活函数

torch.nn.Sigmoid激活函数也叫logistics激活韩式计算公式为:
在这里插入图片描述

torch.nn. Tanh双曲正切函数的公式:

在这里插入图片描述
torch.nn.ReLu激活函数的计算公式为:
在这里插入图片描述

可视化激活函数

下面使用pytorch结合matplotlib可视化激活函数

Sigmoid激活函数

# 激活函数可视化 
x = torch.linspace(-6,6,100)
sigmoid = nn.Sigmoid()
ysigmoid = sigmoid(x)
plt.figure(figsize=(14,3))
plt.subplot(1,4,1)
plt.plot(x.data.numpy(),ysigmoid.data.numpy(),"r-")
plt.title("Sigmoid")
plt.grid()
plt.show()

在这里插入图片描述
Tanh激活函数

# 激活函数可视化 
x = torch.linspace(-6,6,100)
tanh = nn.Tanh()
ytanh = tanh(x)
plt.figure(figsize=(14,3))
plt.subplot(1,4,1)
plt.plot(x.data.numpy(),ytanh.data.numpy(),"r-")
plt.title("Tanh")
plt.grid()
plt.show()

在这里插入图片描述

ReLu激活函数

# 激活函数可视化 
x = torch.linspace(-6,6,100)
relu = nn.ReLU()
yrelu = relu(x)
plt.figure(figsize=(14,3))
plt.subplot(1,4,1)
plt.plot(x.data.numpy(),yrelu.data.numpy(),"r-")
plt.title("RELU")
plt.grid()
plt.show()

在这里插入图片描述

对于整个torch.nn模块下的激活函数部分介绍完成

循环层

pytorch中提供了三种循环层的实现,如图表所示

层对应的类功能
torch.nn.RNN多层RNN单元
torch.nn.RNN多层长短期记忆LSTM单元
torch.nn.GRU多层门限循环GRU单元

torch.nn.RNN()输入一个多层的Elaman Rnn进行学习

下面以torch.nn.RNN()为例介绍循环层的参数、输入、输出
参数说明如下

  • input_size:输入x的特征数量
  • hidden_size隐层的特征数量
  • num_layers:RNN网络的层数
  • nonlinearity:指定非线性函数使用Tanh还是ReLu默认tanh
  • bias:默认为True 如果为False则不会使用偏置权重
  • batch_first:
  • dropout:如果值非0则除了最后一层以外,其他的RNN层的输出都会套上一个dropout层默认为0。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。