深度学习21:PyTorch:激活函数(Sigmoid,Tanh,ReLU,Softmax)
发布时间:2026/10/28 18:56:26 锦皓数字建站
`)
目录标题一、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)
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。