scikit-learn有两个子集:一个用于训练,另一个用于测试。我的建议就是,你不应该看测试数据,因为这会在创建模型的时候会干涉你的选择。你当然不想创建一个模型来预测这个特定的测试数据,而是需要创建一个具有良好的泛化性能的模型。 加载数据集: 训练模型 在神经网络术语中, 一次epoch=一个向前传递(得到输出值)和一个向后传递(更新权重)。 需要记住tf.Session.run()方法么?我们来仔细地瞧一瞧吧。 在本文开始的数据流图操作中,你使用的是和操作,但是我们也可以通过一系列的事情来运行。在整个神经网络运行,你要传递两件事:损失计算和优化步骤。 这个feed_dict参数是我们每一次运行步骤中用来传递数据的,为了传递这些数据我们需要定义tf.placeholders(为feed_dict提供供给)。 正如TensorFlow文件中说的那样: “一个占位符存在的唯一理由就是作为供给的目标,这不是初始化也不包含数据。” 所以,你可以这样定义定位符: 你需要分批次地训练数据: “如果使用占位符进行输入,则可以通过使用tf.placeholder(...,shape = [None,...])创建占位符来指定变量批量维度。该形状的“None”元素对应于可变大小的维度” 在测试模型的时候,我们用一个更大的批次来供给,这就是为什么你需要定义一个变量批维度。 这个get_batches()函数可以为我们提供文本的数量与批量的大小,现在我们可以运行这个模式(点图放大): 现在你有了这个训练好的模型。要测试它,你还需要创建图形元素,我们将测量模型的准确性,所以你需要预报值的索引和正确值的索引(因为我们使用的是一个独热编码),检查他们是否相等,并计算所有的测试数据集的平均值(点图放大): 就是它!你使用神经网络创建了一个模型来对文本进行类别分类。恭喜你! 你可以在这里看到最终代码 https://github.com/dmesquita/understanding_tensorflow_nn 提示:修改我们定义的值,以查看不同更改对训练时间和模型精度的影响。 原文链接: https://medium.freecodecamp.com/big-picture-machine-learning-classifying-text-with-neural-networks-and-tensorflow-d94036ac2274 (责任编辑:本港台直播) |