作家
登录

神经网络求解新思路:OpenAI用线性网络计算非线性问题

作者: 来源: 2017-10-09 13:05:56 阅读 我要评论

  •  
  • w3 = tf . Variable ( np . random . normal ( scale = np . sqrt ( 2. / 512 ), size =[ 512 , 10 ]). astype ( np . float32 )) 
  •  
  • b3 = tf . Variable ( np . zeros ( 10 , dtype = np . float32 )) 
  •  
  • params = [ w1 , b1 , w2 , b2 , w3 , b3 ] 
  •  
  • nr_params = sum ([ np . prod ( p . get_shape (). as_list ()) for p in params ]) 
  •  
  • scaling = 2 ** 125 
  •  
  • def get_logits ( par ): 
  •  
  • h1 = tf . nn . bias_add ( tf . matmul ( x , par [ 0 ]), par [ 1 ]) / scaling 
  •  
  • h2 = tf . nn . bias_add ( tf . matmul ( h1 , par [ 2 ]) , par [ 3 ] / scaling ) 
  •  
  • o = tf . nn . bias_add ( tf . matmul ( h2 , par [ 4 ]), par [ 5 ]/ scaling )* scaling 
  •  
  • return o 
  • 在膳绫擎的代铝闼楝我们可以看出该收集一共 4 层,第一层为 784(28*28)个输入神经元,这个数量必须和 MNIST 数据集中单张图片所包含像素点数雷同。第二层与第三层都为隐蔽层且每层有 512 个神经元,最后一层为输出的 10 个分类类别。个中每两层之间的全连接权重为服大年夜正态分布的随机初始化值。nr_params 为加和所有参数的累乘。下面定义一个 get_logist() 函数,该函数的输入变量 par 应当可所以膳绫擎定义的 nr_params,因为定义添加偏置项的索引为 1、3、5,这个正好和前面定义的 nr_params 相符,但 OpenAI并没有给出该函数的调用过程。该函数第一个表达式计算第一层和第二层之间的前向传播结不雅,即计算输入 x 与 w1 之间的乘积再加上缩放后的偏置项(前面 b1、b2、b3 都定义为零向量)。后面两步的计算也基本相似,最后返回的 o 应当是图片识其余类别。不过 OpenAI 只给出了收集架构,而并没有给出优化办法和损掉函数等内容。

    【编辑推荐】

    1. 30行JavaScript代码,教你分分钟创建神经收集
    2. 安闲大年夜神经收集,测试比较TensorFlow、MXNet、CNTK、Theano四个框架
    3. 初学者指南:神经统??天然说话处理中的应用
    4. 神经收集练习中,傻傻分不清Epoch、Batch Size和迭代
    5. 应用反向传播练习独裁神经收集的道理
    【义务编辑:武晓燕 TEL:(010)68476606】

      推荐阅读

      安卓10岁了:这些消失的经典App你还记得吗?

    然而,限制移动用户这招,也让飞信和互联网开放的精力格格不入,飞信持续不断被微信攻占了大年夜量市场份额。 不知不觉,安卓体系已经迈入到第十个岁首了。在很多老网友的印象中,iOS和安卓>>>详细阅读


    本文标题:神经网络求解新思路:OpenAI用线性网络计算非线性问题

    地址:http://www.17bianji.com/lsqh/37728.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)