1. minist数据库——一个大型的手写图片数据库
2. 特征、标签、样本
3. 模型与训练、神经网络
我们需要选择将要进行训练的模型类型。模型类型极其多,选择理想的类型需要经验。我们选择了一个神经网络来解决鸢尾花问题。神经网络可以发现特征与标签之间的复杂关系。神经网络是一个高度结构化的图,其中包含一个或多个隐藏层。每个隐藏层都包含一个或多个神经元。神经网络存在多个类别。我们将使用全连接神经网络,这意味着一个层中的神经元将从上一层中的每个神经元获取输入。例如,下图显示了包含三个隐藏层的全连接神经网络:
- 第一个隐藏层包含四个神经元。
- 第二个隐藏层包含三个神经元。
- 第三个隐藏层包含两个神经元。
隐藏层和神经元的理想数量取决于问题和数据集。与机器学习的多个方面一样,选择理想的神经网络形状需要一定的知识水平和实验基础。一般来说,增加隐藏层和神经元的数量通常会产生更强大的模型,而这需要更多数据才能有效地进行训练。
4. tensorflow的编程堆栈
- Estimator:代表一个完整的模型。Estimator API 提供一些方法来训练模型、判断模型的准确率并生成预测。(估计-模型)
- 数据集:构建数据输入管道。Dataset API 提供一些方法来加载和操作数据,并将数据馈送到您的模型中。Dataset API 与 Estimator API 合作无间。
Estimator 是 TensorFlow 对完整模型的高级表示。它会处理初始化、日志记录、保存和恢复等细节部分,并具有很多其他功能,以便您可以专注于模型。有关更多详情,请参阅 Estimator。
Estimator 是从
tf.estimator.Estimator
衍生而来的任何类。TensorFlow 提供一组预创建的 Estimator(例如LinearRegressor
)来实现常见的机器学习算法。除此之外,您可以编写自己的自定义 Estimator。我们建议在刚开始使用 TensorFlow 时使用预创建的 Estimator。在掌握预创建的 Estimator 的专业知识之后,我们建议通过创建自己的自定义 Estimator 来优化模型。要根据预创建的 Estimator 编写 TensorFlow 程序,您必须执行下列任务:
- 创建一个或多个输入函数。
- 定义模型的特征列。
- 实例化 Estimator,指定特征列和各种超参数。
- 在 Estimator 对象上调用一个或多个方法,传递适当的输入函数作为数据的来源。
最后进行模型的训练、评估以及使用。
结论:
官网或社区有一些简单的教程以及API手册:http://www.tensorfly.cn/tfdoc/how_tos/overview.html