• TensorFlow实现神经网络推理


    1.如何用代码实现推理

    在烤咖啡豆时可以控制的两个参数是温度和加热时间,下图给出了不同温度和加热时间下咖啡豆的好坏示意图,其中红叉对应好咖啡,蓝圈对应坏咖啡。温度太低或时间太短或者温度过高,时间太长都不会烤出好的咖啡,只有在三角形内的点才对应好咖啡。 

    假设温度200加热时间17,我们如何推断出者是否为好咖啡。

    我们将x设置为两个数字的数组(200摄氏度和17分钟),创建第一个隐藏层(3个神经元,激活函数为sigmod),创建输出层(1个神经元,激活函数为sigmoid),最后输出结果大于0.5则为好咖啡。

     2.TensorFlow中的数据形式

    代码创建矩阵(二维向量)

    所以针对输入特征可以这样表示

     3.搭建一个神经网络 

    早期的搭建方法是:初始化输入x,创建第一层并计算,然后创建第二层并计算

     另一种搭建方法不需要手动获取数据并将其传递到下一层,我们可以将创建的两个层按顺序串联起来。

     4.单个网络层的前向传播

     输入为一维数组,下标1_1的意思是第一层第一个神经元的参数,计算过程如下图

    5.前向传播的一般实现

    定义一个神经网络单层的函数dense(),该函数的作用是通过输入并给定当前层参数经计算返回下一层的激活,以左边单层为例,W是一个2*3的矩阵,列数为3,所以units=3,a_out初始化为[0 0 0],然后通过for循环计算,第一次循环采用W、b、a_in的第一列进行第一个神经元的计算,通过循环三次,将三次(三个神经元)的激活值存到a_out中,也就得到了该层网络的激活值(输出)。

    依次将各层连接在一起,构建sequential()函数,实现前向传播。

  • 相关阅读:
    Java算法 异或^运算(找重复,交换值)
    离散卡尔曼滤波实现
    c语言:解决数组元素右旋问题,时间复杂度O(N)
    Java Executors类的9种创建线程池的方法及应用场景分析
    java获取当前日期并格式化
    Centos - DHCP 服务器搭建
    模糊PID之matlab模糊控制器配置
    Vue:组件缓存
    力扣刷题日志-Day2 (力扣151、43、14)
    数据结构--排序
  • 原文地址:https://blog.csdn.net/weixin_45949082/article/details/126090537