TF demo学习笔记
@[TensorFlow]
官方的demo有两个,一个是鸢尾花品种判断,一个是看图识数字,看图识数在中文社区上,原版官网现在是鸢尾,我不知道是否之前是看图识数,但是在今年的TF大会上确实见到它作为示例。
鸢尾阅读笔记:
基本概念
1. 数据集
120行鸢尾数据,包括萼片长宽、花瓣长宽以及品种信息。Demo数据集中一共只有三种鸢尾。
2. Model
、Model指的是特性(feature)和标签(label)的关系,我们根据数据的特性给它打标签。在这个demo里特性指的就是萼片长宽、花瓣长宽,标签就是品种信息。
1.1 By the way
什么是ML?
你能否找到萼片长宽、花瓣长宽和鸢尾品种之间的关系?你能否通过萼片长宽、花瓣长宽判定鸢尾品种?通过传统的 if else 或者 switch 去进行条件判定吗?(traditional programming techniques)。
However, a good machine learning approach determines the model for you. That is, if you feed enough representative examples into the right machine learning model type, the program will determine the relationship between sepals, petals, and species.
一个优秀的ML程序,就是你不需要知道怎么去找到特性和标签之间的关系,它会通过自己的学习和尝试去找到难以用传统函数表达的关系,只要你给它足够的数据进行训练。
这就是ML的迷人之处。
3. Training
训练对于机械学习来说非常重要。在这个阶段它通过数据集不断调整自身的预测,优化自身
The TensorFlow programming stack

作为初学者主要关注以下两个方面的高层API:
- Estimators
- Datasets
ML主要步骤
通常一个ML程序主要包括以下几个步骤:
- 导入数据,解析数据
- 创建特性(feature)列去描述数据
- 选择AI模型,如神经网络
- 训练模型
- 评估模型
- 使用模型预测结果
鸢尾官方项目源码地址:https://github.com/tensorflow/models/tree/master/samples/core/get_started
1. 导入数据,解析数据
训练集,也就是用来训练AI的数据集,通常来说这部分数据我们是预先知道它的标签的。
测试集,用来测试AI训练程度的数据集,通过AI的准确度判定AI学习是否有效。
# Fetch the data
(train_features, train_label), (test_features, test_label) = iris_data.load_data()
首先载入数据:数据集和测试集。这里会用到一个Pandas库,它里面存储的是一个带表头的二维数组,叫DataFrame。
可视形式如下:
SepalLength SepalWidth PetalLength PetalWidth
0 5.9 3.0 4.2 1.5
1 6.9 3.1 5.4 2.1
2 5.1 3.3 1.7 0.5
...
27 6.7 3.1 4.7 1.5
28 6.7 3.3 5.7 2.5
29 6.4 2.9 4.3 1.3
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html
2. 创建特性(feature)列去描述数据
特性列,在这里就是字面量的数字。
实际上很多数据集很多特性都是非数字的。具体看Feature Columns。

3. 选择AI模型,如神经网络
模型会影响到AI的学习速度和准确度,选择合适的AI模型需要一定的经验,这里用的是神经网络。神经网络可以找到特性和标签之间复杂的关系。
4. 训练模型
让数据集“flow through it”。
5. 评估模型
用测试集评估模型预测的有效性。
6. 使用模型预测结果
用已经训练并测试过的模型去预测不知道标签的数据。
Because
premade_estimators.py
relies on high-level APIs, much of the mathematical complexity in machine learning is hidden.
网友评论