资讯详情

资讯详情

深度学习21:PyTorch:激活函数(Sigmoid,Tanh,ReLU,Softmax)

目录标题一、Sigmoid函数二、Tanh函数三、ReLU函数四、Softmax函数一、Sigmoid函数importtorchimportmatplotlib.pyplotasplt xtorch.linspace(-10,10,steps1000,requires_gradTrue)ytorch.sigmoid(x)# 画图fig,axplt.subplots(nrows1,ncols2,figsize(12,4))# 1. 原函数图像ax[0].plot(x.data,y.data,purple)ax[0].set_title(sigmoid(x))# 绘制参考线ax[0].axhline(y0.5,colorgray,alpha0.5,linewidth1)ax[0].axhline(y1,colorgray,alpha0.5,linewidth1)# 图的边框ax[0].spines[top].set_visible(False)ax[0].spines[right].set_visible(False)ax[0].spines[left].set_position(zero)ax[0].spines[bottom].set_position(zero)# 反向传播计算 x 的梯度y.sum().backward()# 2. 导数函数图像ax[1].plot(x.data,x.grad,purple)ax[1].set_title(sigmoid(x))# 图的边框ax[1].spines[top].set_visible(False)ax[1].spines[right].set_visible(False)ax[1].spines[left].set_position(zero)ax[1].spines[bottom].set_position(zero)# plt.show()plt.savefig(sigmoid_result.png)二、Tanh函数importtorchimportmatplotlib.pyplotasplt xtorch.linspace(-5,5,steps1000,requires_gradTrue)ytorch.tanh(x)# 画图fig,axplt.subplots(nrows1,ncols2,figsize(12,4))# 1. 原函数图像ax[0].plot(x.data,y.data,purple)ax[0].set_title(tanh(x))# 绘制参考线ax[0].axhline(y-1,colorgray,alpha0.5,linewidth1)ax[0].axhline(y1,colorgray,alpha0.5,linewidth1)# 图的边框ax[0].spines[top].set_visible(False)ax[0].spines[right].set_visible(False)ax[0].spines[left].set_position(zero)ax[0].spines[bottom].set_position(zero)# 反向传播计算 x 的梯度y.sum().backward()# 2. 导数函数图像ax[1].plot(x.data,x.grad,purple)ax[1].set_title(tanh(x))#图的边框ax[1].spines[top].set_visible(False)ax[1].spines[right].set_visible(False)ax[1].spines[left].set_position(zero)ax[1].spines[bottom].set_position(zero)# plt.show()plt.savefig(tanh_result.png)三、ReLU函数importtorchimportmatplotlib.pyplotasplt xtorch.linspace(-5,5,steps1000,requires_gradTrue)ytorch.relu(x)# 画图fig,axplt.subplots(nrows1,ncols2,figsize(12,4))# 1. 原函数图像ax[0].plot(x.data,y.data,purple)ax[0].set_title(relu(x))ax[0].spines[top].set_visible(False)ax[0].spines[right].set_visible(False)ax[0].spines[left].set_position(zero)ax[0].spines[bottom].set_position(zero)# 反向传播计算 x 的梯度y.sum().backward()# 2. 导数函数图像ax[1].plot(x.data,x.grad,purple)ax[1].set_title(relu(x))ax[1].spines[top].set_visible(False)ax[1].spines[right].set_visible(False)ax[1].spines[left].set_position(zero)ax[1].spines[bottom].set_position(zero)# plt.show()plt.savefig(relu_result.png)四、Softmax函数importtorch# n * m 3条样本5个特征项xtorch.randn(3,5)print(x)#指定是那个维度为分类概率(即一列是一条数据还是一行是一条数据)ytorch.softmax(x,dim1)print(y)
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →