赞
踩
最近在学习神经网络,在了解了激活函数后在学长指导下用Origin和Spyder对各种激活函数图像进行了绘制,绘图之前也看了很多相关教程以及小tips,最后也是成功的完成绘制,下面就把用Origin绘图(特别是绘制复杂的自定义函数)的一些经验和步骤记录一下。
现在网上大多数使用Origin绘制函数的教程是使用软件自带的新建函数图以及直接设置x,y列值的功能。
首先是下面这个新建函数图的方法,由于他需要手动键入函数公式,所以它的好处是对于一些很简单的函数,例如一次函数二次函数有着较好的效果。但是较为复杂的公式会出现难以识别从而导致绘制出现很大误差的情况,对于复杂公式特别是一些激活函数很不友好。
其次是下面这种插入列值的方法,由于要先给行数(Row(i))一个范围,然后用公式来表达每一个x的值,例如说我把行数设置为1-10,每一行表达的x值为对应的行数Row(i) ×0.01。
他就会生成一下[0.01,0.1]的A(x)值
这种方法同样有一个缺点就是由于他的行数是从1开始向下排列,所以很难表示为负数的x值,即使是用行数乘以一个负数,也很难生成负数-0的这种排列,同时再用x值去生成对应的y值时,也要通过自己键入公式,会出现和上一种方法同样的难以表达复杂函数。
接下来在学长那学到一种简单高效的绘制方法。这种方法除了使用Origin之外,还需要用到一个软件Spyder。
Spyder是一个用于科学计算和数据分析的Python集成开发环境(IDE),旨在提供一个功能强大且易于使用的工具,帮助用户进行数据科学和数值计算工作。内含代码编辑器、变量浏览器、IPython控制台等多个功能,适用于各种数据分析任务,提供一个高效的工作环境。
Spyder安装只需正常点下一步,下载安装大概五分钟左右即可。
Spyder下载链接:https://mydown.yesky.com/pcsoft/413541388.html
备用链接:https://pan.baidu.com/s/15FvvC6DudVZKHD6h_dmouA
提取码:pyl6
Origin安装步骤需要的话可以私我。
Origin2022下载链接:https://pan.baidu.com/s/1FnGoxtzlPgZdHsWyTD62gA
提取码:pyl6
由于最近在学的是神经网络,所以我就拿一些在绘图上比较具有代表性的激活函数做一个例子来写这次绘图的经验。
Hard-sigmoid函数是一种常用的激活函数,它将sigmoid函数进行截断得到,同时也是将输入值通过线性变换得到一个值域在[0,1]区间内的输出,同时极大地缓解了sigmoid函数在神经网络中的梯度消失的问题。Hard-sigmoid公式如下:
H a r d − s i g m o i d ( x ) = m a x ( 0 , m i n ( 1 , 2 x + 1 ) ) Hard-sigmoid(x)=max(0,min(1,2x+1)) Hard−sigmoid(x)=max(0,min(1,2x+1))
import numpy as np
#Hard-sigmoid
def Hard_sigmoid(x):
y = np.minimum(1,(x + 1) / 2)
z = np.maximum(y,0)
return z
#Hard-sigmoid
Hard_sigmoid1 = lambda x:np.maximum(0,np.minimum(1,(x + 1) / 2))
首先打开Spyder,把上述代码复制到左侧新建文件区,并且分别给x,y设定范围以及公式。完整代码如下:
import numpy as np
#Hard-sigmoid
Hard_sigmoid = lambda x:np.maximum(0,np.minimum(1,(x + 1) / 2))
x = np.linspace(-5,5,100)
y = Hard_sigmoid(x)
这里我把x的范围设置为[-5,5],并且生成100个x值。然后F5或者点上面绿色小三角运行,运行后在右侧的变量菜单中可以找到对应生成的x值和y值。
双击打开其中一个,这里我打开的是x。选中其中一个值后全选(Ctrl+A)后复制(Ctrl+C)。
复制完成后回到Origin,把光标移到A(x)列‘1’行的位置粘贴。
同理我们回到Spyder中,复制y的值,并粘贴到B(Y)列。
生成之后同时选中A(X)和B(Y)两列,可以通过左下角快捷方式直接点击所需要的图进行生成相应的函数图,也可以通过上方菜单栏‘绘制’去选择相应的函数图,这里我直接通过左下角生成折线图。
经过上述操作,我们可以得到以下图像。
首先是对于y轴的调整,需要把它调节到零点重合的位置。
方法一:双击y轴坐标,找到上方菜单栏的‘轴线和刻度线’,在‘线条’里面找到‘轴位置’,并设置为%距离左轴,‘百分比/值’设置为-50点击右下角‘应用’即可。
调节效果如下图所示。
方法二:单击选中y轴后移动鼠标到x轴0点的位置,如果不太放心位置的准确性,可以在Ctrl+滚轮放大图像后,用方向键微调至零点处(简单粗暴)。
我们可以看到图像y轴最小值不为0,导致坐标轴零点未能重合,此时我们可以用上述坐标位置调节的方法,把y轴向负方向移动,但是由于图像最小值为0,所以我们这里我们只需要y>0的部分,即把y轴区间去掉小于0的部分即可。
首先我们双击需要调整的坐标轴(这里是y轴),找到上方菜单栏的‘刻度’,我们可以看到此时y轴区间为[-0.1,1.1],我们只需把-0.1改为0,点击应用即可。
调整后如下图所示。
双击函数图像弹出菜单栏,按照自己需求调整。这里我把图像宽度改为3,颜色设置为蓝色。
点击应用即可看到调整后的图像。
如果想要把坐标轴名称改为X 和Y,只需要双击A和B将其改为X和Y并鼠标拖动至相应的位置即可(在改变Y(B)轴名称的时候会出现名称翻转90度的情况,如果需要和X(A)轴名称一样的朝向,可以单击改变后的A轴名称复制粘贴至Y轴需要的位置,并将名称改为Y即可。)更改后的图像如下。
更改标签时,只需要双击右上方标签名称,即可进行相对应更改。如果需要去掉标签的边框,只需要选中边框在上方菜单栏将其颜色改为背景的颜色(这里是白色)即可。
为了使图像更为美观和官方,以便于后续加入到课件或者论文中,我们可以将背景加入网格。双击Y坐标轴打开菜单栏,点击上方的‘网格’,分别把‘主网格线’和‘次网格线’的‘显示’打勾即可。并且在‘主网格线’的‘样式’中把‘实线’改为和次网格线样式一样的‘划线’。这样更能凸显出函数图像。
最后打开上图箭头所指的‘垂直’处,按照和上一步一样的步骤一一对应设置,最后点击应用即可。效果图如下。
双击Y轴找到‘轴线和刻度线’,在‘线条’里面找到‘箭头’,在‘箭头位于末端’后打勾。然后在左侧菜单栏找到‘下轴’按照同样的步骤设置后应用即可。
调整后的效果图如下:
由于箭头段和刻度’6’有点重合,介意的话可以按照上述调整刻度的步骤,将x轴刻度扩大至[-6.5,6.5],调整后的效果图如下:
可看出图中公式分为三个,首先用一个分割线将不同位置分割开来。图中可看出只需要分割x=1的部分即可。
在左侧工具栏中找到直线工具,将他添加在对应位置。添加好后,双击直线进行微调。
双击出菜单栏后,首先打开‘线条’进行颜色和宽度的调节,这里推荐颜色为红色,宽度为2,类型设置为‘短划线’,易于分辨。这里可根据自己需要自行调节。
然后继续找到‘尺寸’,将‘终点’中的x位置调至和‘起点’中的x位置一致。点击应用即可得到以下效果图。
下面就是添加公式的步骤。
方法一:直接在word中键入自己需要的公式,然后复制到对应位置。但是这个方法有时候复制过来的并不是可识别的符号,如果不行的话可以使用方法二。
方法二:找到左侧菜单栏的‘插入公式’,点击‘插入公式’右侧三角下拉菜单,会出现‘插入对象’点击插入对象即可
在弹出来的对话框中找到‘WPS公式 3.0’点击确定。
在如上图的对话框中,键入自己需要的公式即可。下面是完成图。
由于本篇博客介绍的仅是Origin绘图一些经验和步骤,所以暂不涉及更多的激活函数,需要了解更多激活函数相关性质及函数图像可以移步学长@浩浩的科研笔记另一篇博客:常用的激活函数python代码-简洁版-想画好看的激活函数图的第一步。
ps:因为是自己的第一篇博客,所以略显粗糙,如有问题欢迎指正。
2024.02.25 对于添加公式的部分做了更详尽的描述,详情见| Origin绘图 | 在绘图和表格中插入公式
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。