精华内容
下载资源
问答
  • 基于Pythonsigmoid函数FPGA实现刘毅飞【摘要】sigmoid函数是人工神经网络中通常采用的传递函数,采用基于Python的软硬件协同设计方法,在FPGA上实现了定点sigmoid函数。实验结果表明采用基于Python的软硬件协同...

    基于

    Python

    sigmoid

    函数

    FPGA

    实现

    刘毅飞

    【摘

    要】

    sigmoid

    函数是人工神经网络中通常采用的传递函数,采用基于

    Python

    的软硬件协同设计方法,在

    FPGA

    上实现了定点

    sigmoid

    函数。实验

    结果表明采用基于

    Python

    的软硬件协同设计方法,可以利用

    Python

    上大量

    的包和模块从而大幅度提高系统设计、仿真和校验的效率,并且能将软件算法

    快速有效地转换为硬件实现,在整个软硬件设计过程中仅采用

    Python

    语言,

    解决了当前系统设计中软硬件设计者分别采用不同设计语言存在的沟通问题。

    【期刊名称】

    微处理机

    【年

    (

    ),

    期】

    2014(035)001

    【总页数】

    3

    【关键词】

    Python

    语言;现场可编程门阵列;

    sigmoid

    函数;软硬件协同设

    计;神经网络

    1

    人工神经网络在模式识别、分类、人工智能领域有着广泛应用。在人工神经网

    络中,

    sigmoid

    函数是人工神经网络中常用的一种传递函数,在嵌入式应用中,

    sigmoid

    函数通常可以在

    DSP

    FPGA

    上实现。

    FPGA

    作为一种可编程逻辑器

    件,具有功耗低、可以在上面实时实现大量的算法。目前在

    FPGA

    上面有许多

    神经网络和

    sigmoid

    函数的实现方案,在这些方案中普遍采用

    Verilog

    VHDL

    语言进行硬件设计,而软件设计通常采用其他高级语言比如

    C

    语言,

    Python

    语言等,由于这种设计方法硬件设计者和软件设计者之间采用不同的

    设计语言,存在着仿真和校验效率低、软硬件设计者之间沟通较为困难等问题,

    展开全文
  • I am trying to implement a simple neural network for XOR function.The activation function I am using is Sigmoid function.The code for the sigmoid function is:def ActivationFunction(a)e = 2.671 ...

    1586010002-jmsa.png

    I am trying to implement a simple neural network for XOR function.

    The activation function I am using is Sigmoid function.

    The code for the sigmoid function is:

    def ActivationFunction(a)

    e = 2.671 # Sigmoid Function

    expo = e ** a

    val = expo / (1 + expo)

    return val

    My problem is that this function is always returning a value between 0.7 and 0.8. This problem is showing a major effect in the output process.

    Any suggestions would be appriciated.

    解决方案

    Your function is implemented correctly, however, the value of e is incorrect.

    I'd recommend importing math and using the predefined e constant from there.

    import math

    def sigmoid(x):

    return 1 / (1 + math.e ** -x) # mathematically equivalent, but simpler

    And, accordingly, the derivative:

    def sigmoid_derivative(a):

    return a * (1 - a)

    Where a is the hidden activation from the forward pass.

    Besides this, I see nothing wrong with your implementation. So if you're still getting values you don't expect after the fix, the cause of the trouble lies elsewhere.

    展开全文
  • python实现并绘制 sigmoid函数,tanh函数,ReLU函数,PReLU函数# -*- coding:utf-8 -*-from matplotlib import pyplot as pltimport numpy as npimport mpl_toolkits.axisartist as axisartistdef sigmoid(x):return...

    python实现并绘制 sigmoid函数,tanh函数,ReLU函数,PReLU函数

    # -*- coding:utf-8 -*-

    from matplotlib import pyplot as plt

    import numpy as np

    import mpl_toolkits.axisartist as axisartist

    def sigmoid(x):

    return 1. / (1 + np.exp(-x))

    def tanh(x):

    return (np.exp(x) - np.exp(-x)) / (np.exp(x) + np.exp(-x))

    def relu(x):

    return np.where(x<0,0,x)

    def prelu(x):

    return np.where(x<0,0.5*x,x)

    def plot_sigmoid():

    x = np.arange(-10, 10, 0.1)

    y = sigmoid(x)

    fig = plt.figure()

    # ax = fig.add_subplot(111)

    ax = axisartist.Subplot(fig,111)

    ax.spines[‘top‘].set_color(‘none‘)

    ax.spines[‘right‘].set_color(‘none‘)

    # ax.spines[‘bottom‘].set_color(‘none‘)

    # ax.spines[‘left‘].set_color(‘none‘)

    ax.axis[‘bottom‘].set_axisline_style("-|>",size=1.5)

    ax.spines[‘left‘].set_position((‘data‘, 0))

    ax.plot(x, y)

    plt.xlim([-10.05, 10.05])

    plt.ylim([-0.02, 1.02])

    plt.tight_layout()

    plt.savefig("sigmoid.png")

    plt.show()

    def plot_tanh():

    x = np.arange(-10, 10, 0.1)

    y = tanh(x)

    fig = plt.figure()

    ax = fig.add_subplot(111)

    ax.spines[‘top‘].set_color(‘none‘)

    ax.spines[‘right‘].set_color(‘none‘)

    # ax.spines[‘bottom‘].set_color(‘none‘)

    # ax.spines[‘left‘].set_color(‘none‘)

    ax.spines[‘left‘].set_position((‘data‘, 0))

    ax.spines[‘bottom‘].set_position((‘data‘, 0))

    ax.plot(x, y)

    plt.xlim([-10.05, 10.05])

    plt.ylim([-1.02, 1.02])

    ax.set_yticks([-1.0, -0.5, 0.5, 1.0])

    ax.set_xticks([-10, -5, 5, 10])

    plt.tight_layout()

    plt.savefig("tanh.png")

    plt.show()

    def plot_relu():

    x = np.arange(-10, 10, 0.1)

    y = relu(x)

    fig = plt.figure()

    ax = fig.add_subplot(111)

    ax.spines[‘top‘].set_color(‘none‘)

    ax.spines[‘right‘].set_color(‘none‘)

    # ax.spines[‘bottom‘].set_color(‘none‘)

    # ax.spines[‘left‘].set_color(‘none‘)

    ax.spines[‘left‘].set_position((‘data‘, 0))

    ax.plot(x, y)

    plt.xlim([-10.05, 10.05])

    plt.ylim([0, 10.02])

    ax.set_yticks([2, 4, 6, 8, 10])

    plt.tight_layout()

    plt.savefig("relu.png")

    plt.show()

    def plot_prelu():

    x = np.arange(-10, 10, 0.1)

    y = prelu(x)

    fig = plt.figure()

    ax = fig.add_subplot(111)

    ax.spines[‘top‘].set_color(‘none‘)

    ax.spines[‘right‘].set_color(‘none‘)

    # ax.spines[‘bottom‘].set_color(‘none‘)

    # ax.spines[‘left‘].set_color(‘none‘)

    ax.spines[‘left‘].set_position((‘data‘, 0))

    ax.spines[‘bottom‘].set_position((‘data‘, 0))

    ax.plot(x, y)

    plt.xticks([])

    plt.yticks([])

    plt.tight_layout()

    plt.savefig("prelu.png")

    plt.show()

    if __name__ == "__main__":

    plot_sigmoid()

    plot_tanh()

    plot_relu()

    plot_prelu()

    展开全文
  • 讨论范围:二分类问题只有 2 个分类的情况,...1. Python Sigmoid 函数的图像import numpy as npimport matplotlib.pyplot as plt%matplotlib inlinedef sigmoid(x):return 1/(1+np.exp(-x))x = np.arange(-5.,...

    讨论范围:二分类问题

    只有 2 个分类的情况,logistic 曲线可以简化为

    又叫 sigmoid 函数。

    1. Python 画 Sigmoid 函数的图像

    import numpy as np

    import matplotlib.pyplot as plt

    %matplotlib inline

    def sigmoid(x):

    return 1/(1+np.exp(-x))

    x = np.arange(-5., 5., 0.2)

    y = sigmoid(x)

    plt.plot(x, y)

    2. 非数学的理解

    作为对比,选择

    这条直线。

    判断一个对象的分类时,很难做到 100% 的把握,需要算概率。

    横坐标是测量值,纵坐标是概率。

    p 越大,属于 1 的概率越高,否则属于 0.

    p = 0.5 是分界线,无法判断属于哪一个分类。

    从 0.5 变到 0.6,基本可以认为属于分类 1,质的飞跃,虽然把握不大。

    0.6 -> 0.7, 非常重要的改进。

    从 0.9 变到 1,因为把握已经很大了,所以实际的帮助有限。

    相对于

    或者其他曲线,

    Sigmoid 曲线更完美的阐述了这种变化。

    3. 数学解释

    作用域:将一个 (−∞ ,+∞ ) 之内的实数值变换到区间 [0,1]

    测量值 X 的取值区间是 (−∞ ,+∞ ) ,概率 P 的取值区间是 [0,1]。

    sigmoid函数,单调增,定义域是(−∞ ,+∞ ),值域是(0,1)。

    虽然在 0 和 1 两个点上,不是闭区间。但也近乎完美的满足需求。

    正因为单调递增,不套用 sigmoid(logistic) 函数,直接比较 X 的大小,也是不影响结果的。

    所以,虽然 logistic 模型不是直线,但依旧属于线性分类器。

    是否套用 sigmoid 函数,会影响 Loss 的计算。

    展开全文
  • 写毕业论文时候了激活函数函数图,也是参考别人的代码做的,我将格式统一了一些,现在分享出来。 2、代码 2.1 sigmoid和tanh import math import matplotlib.pyplot as plt import numpy as np import ...
  • 1.质跃函数 import numpy as np import matplotlib.pyplot as plt def step_fun(x): #先把array转为int return np.array(x>0,dtype=np.int) x=np.arange(-5.0,5.0,0.1) y=step_fun(x) plt.plot(x,y) plt.ylim...
  • In [1]: from scipy.stats import logisticIn [2]: logistic.cdf(0.458)Out[2]: 0.61253961344091512这只是另一个scipy函数的昂贵包装(因为它允许您缩放和转换logistic函数):In [3]: from scipy.special import ...
  • 原文链接:https://www.ivdone.cn/article/54.html
  • sigmoid: def sigmoid(x): return 1. / (1. + np.exp(-x)) def plot_sigmoid(): x = np.arange(-10, -10, 0.1) y = sigmoid(x) plt.plot(x, y) plt.show() tanh: def tanh(x): return...
  • 前文提到了神经网络中的Sigmoid函数,实际上在反向传播中还会用到Sigmoid的导数,形式很简单: s(x)*(1-s(x)),但是我想把这个过程自己推导一次,顺便复习一下导数和微分。Derivative(导数)和Differential(微分)首先...
  • python画Sigmoid与tanh激活函数,并保存为s.png图片。 代码: “”" Created on Mon Jan 18 16:21:57 2021 @author: Administrator “”" import math import matplotlib.pyplot as plt import numpy as np import...
  • python画出激活函数 sigmoid,tanh,Relu,prelu # -*- coding:utf-8 -*- from matplotlib import pyplot as plt import numpy as np import mpl_toolkits.axisartist as axisartist def sigmoid(x): return 1 / ...
  • python语言Sigmoid,Tanh,RuLe函数图像,实现图像的可视化
  • import matplotlib.pyplot as plt #导入matplotlib库 ...def sigmoid(): # 创建画布 fig = plt.figure(figsize=(6, 4)) # 使用axisartist.Subplot方法创建一个绘图区对象ax ax = axisartist.Subplot(fi
  • python画函数图像

    2020-12-18 22:40:41
    画sigmoid激活函数: import numpy as np import matplotlib.pylab as plt def sigmoid(x): return 1/(1+np.exp(-x)) # sigmoid函数 x = np.arange(-6.0,6.0,0.1) # 限定x的范围,给什么区间画出来的就是在哪个...
  • 有些坐标轴没处理好,看到这个博客的还不错,在x值那里修改了一下,使得曲线更光滑,记录一下。 # -*- coding: utf-8 -*- import matplotlib.pyplot as plt import numpy as np # 绘制ReLU函数 fig = plt....
  • 相对来说,python完全免费,只需要安装一个解释器,并且有很多科学计算库可以调用,所以后来就一直使用python曲线,记录下最近的几条曲线。环境:mac、pycharm、anaconda1.sigmoid曲线sigmoid曲线公式如下,可...
  • 最近在看数据挖掘关于“逻辑回归”的知识,认识了sigmoid函数。在讨论损失函数的时候,提到了对于Logistic Regression算法,我们要用对数损失(Log Loss)函数,而非平方损失函数(Square Loss)。下面截图里也提到...
  • 因此参考CSDN博客资料,自己出来用于论文书写。 import math import numpy as np import matplotlib.pyplot as plt # set x's range x = np.arange(-10, 10, 0.1) y1 = 1 / (1 + math.e ** (-x)) # sigmoid # y...

空空如也

空空如也

1 2 3
收藏数 48
精华内容 19
关键字:

python画sigmoid函数

python 订阅