本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

wzatv:【组图】神经网络和TensorFlow如何快速入门?此文就够啦(3)

时间:2017-04-22 18:43来源:118论坛 作者:j2开奖直播 点击:
想知道网络是不是在学习,你需要比较输出值(z)与预期值(expected)。我们如何计算这种差异(loss)?有许多方法可以实现这一点,因为我们正在与一

  想知道网络是不是在学习,你需要比较输出值(z)与预期值(expected)。我们如何计算这种差异(loss)?有许多方法可以实现这一点,因为我们正在与一个分类任务协同工作,最好的衡量损失最好的方法就是“交叉熵代价函数(cross-entropy error)”。

  詹姆斯D?麦卡弗里给出了一个出色的解释,解释了为什么这是这种任务的最好的方法。(交叉熵代价函数)

  在TensorFlow中你会使用tf.nn.softmax_cross_entropy_with_logits()来计算交叉熵误差(这是softmax激活函数)并计算平均误差(tf.reduced_mean())。

wzatv:【j2开奖】神经网络和TensorFlow如何快速入门?此文就够啦

  你当然想找到最好的权重值和偏差,以最小化输出误差(我们得到的值和正确的值之间的区别)。为了做到这一点,你需要使用梯度下降法,更具体地说,你将使用随机梯度下降法。

wzatv:【j2开奖】神经网络和TensorFlow如何快速入门?此文就够啦

  梯度下降法

  来源: https://sebastianraschka.com/faq/docs/closed-form-vs-gd.html

  也有很多算法来计算梯度下降,你需要使用自适应估计方法(Adam),在TensorFlow中使用这个算法需要通过learning_rate值,它决定增量步的值来找到最好的权重值。

  tf.train.AdamOptimizer(learning_rate).minimize(loss)是一种语法糖(syntactic sugar),它做两件事:

  1.计算梯度(loss, <list of variables>)

  2.运用梯度(<list of variables>)

  这种方法用新值来更新所有的tf.Variables,所以我们不需要传递变量的列表。现在你有训练网络的代码(点图放大):

wzatv:【j2开奖】神经网络和TensorFlow如何快速入门?此文就够啦

  数据操作

  你将使用的数据集会有许多英文文字,那么我们需要操纵这些数据使它们通过神经网络。这样做的话你需要做两件事:

  为每个单词创建索引

  为每个文本创建一个矩阵,如果字在文本中值为1,否则的话为0

  让我们看看代码理解这个过程(点图放大):

wzatv:【j2开奖】神经网络和TensorFlow如何快速入门?此文就够啦

  在上面的示例中,文本内容是‘Hi from Brazil’,矩阵是[1,1,1],那么如果文本内容是‘Hi’呢?

wzatv:【j2开奖】神经网络和TensorFlow如何快速入门?此文就够啦

  现在你将要使用到独热编码:

wzatv:【j2开奖】神经网络和TensorFlow如何快速入门?此文就够啦

  运行图表并得到结果

  这是最有意思的部分:从模型中得到结果,首先让我们仔细看看输入数据集。

  ★数据集

  你需要使用20新闻组、约20主题的18000帖子的数据集,为了加载这个数据集,j2直播,你将使用scikit-learn图书馆(scikit-learn图书馆),我们只使用到其中3类:comp.graphics、sci.space和rec.sport.baseball。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容