TensorFlow有很多高级的机器学习API,tf.contrib.learn
就是其中之一。tf.contrib.learn
的出现让机器学习模型的建立、训练和评估变得十分的简单。本文介绍了用tf.contrib.learn
搭建神经网络分类器并对Iris数据集进行分类,我们的代码分为以下五步:
- 载入包含Iris训练数据和测试数据的CSV文件并保存为
Dataset
格式 - 构建神经网络分类器
- 用训练数据训练模型
- 评估模型的准确率
- 对新的样本进行分类
永远年轻 永远热泪盈眶
TensorFlow有很多高级的机器学习API,tf.contrib.learn
就是其中之一。tf.contrib.learn
的出现让机器学习模型的建立、训练和评估变得十分的简单。本文介绍了用tf.contrib.learn
搭建神经网络分类器并对Iris数据集进行分类,我们的代码分为以下五步:
Dataset
格式本文接上文,继续学习TensorFlow在CIFAR-10上的教程,该代码主要由以下五部分组成:
文件 | 作用 |
---|---|
cifar10_input.py |
读取原始的 CIFAR-10 二进制格式文件 |
cifar10.py |
建立 CIFAR-10 网络模型 |
cifar10_train.py |
在单块CPU或者GPU上训练 CIFAR-10 模型 |
cifar10_multi_gpu_train.py |
在多块GPU上训练 CIFAR-10 模型 |
cifar10_eval.py |
在测试集上评估 CIFAR-10 模型的表现 |
本次主要学习cifar10_train.py
和cifar10_eval.py
两个文件,内容分别为训练模型和评估模型,并最终给出实验过程。
TensorFlow官方网站关于卷积神经网络的教程有具体实例,该实例在CIFAR-10数据集上实现,我对这部分代码进行了学习,该代码主要由以下五部分组成:
文件 | 作用 |
---|---|
cifar10_input.py |
读取原始的 CIFAR-10 二进制格式文件 |
cifar10.py |
建立 CIFAR-10 网络模型 |
cifar10_train.py |
在单块CPU或者GPU上训练 CIFAR-10 模型 |
cifar10_multi_gpu_train.py |
在多块GPU上训练 CIFAR-10 模型 |
cifar10_eval.py |
在测试集上评估 CIFAR-10 模型的表现 |
本次只对单GPU情况进行学习,对多GPU不做学习。本次学习分上下两部分,本文首先介绍cifar10_input.py
、cifar10.py
两个函数,内容分别为数据的获取和模型的建立,同时我们还介绍了本次教程的重点和CIFAR-10数据集。
本文整理了TensorFlow中张量(Tensor)相关的一些概念:
TensorFlow用张量这种数据结构来表示所有的数据,我们可以把一个张量想象成一个n维的数组或列表。
本文整理了TensorFlow中的数据读取方法,在TensorFlow中主要有三种方法读取数据:
本文介绍了TensorFlow的线程和队列。在使用TensorFlow进行异步计算时,队列是一种强大的机制。正如TensorFlow中的其他组件一样,队列就是TensorFlow图中的节点。这是一种有状态的节点,就像变量一样:其他节点可以修改它的内容。具体来说,其他节点可以把新元素插入到队列后端(rear),也可以把队列前端(front)的元素删除。
在神经网络的训练过程中,学习率(learning rate)控制着参数的更新速度,tf.train
类下面的五种不同的学习速率的衰减方法。
tf.train.exponential_decay
tf.train.inverse_time_decay
tf.train.natural_exp_decay
tf.train.piecewise_constant
tf.train.polynomial_decay
本文只对exponential_decay
做整理。
本文记录了TensorFlow训练模型过程中对参数的滑动平均(moving average)的计算,在测试数据上评估模型性能时用这些平均值总会提升预测结果表现,用到的类主要为tf.train.ExponentialMovingAverage
。
本文学习了TensorFlow的一些常用的基础函数,主要为以下几种:
同时介绍了训练过程中的模型保存和恢复方法,主要用到tf.train.Saver
类。
本文对TensorFlow的重要可视化工具TensorBoard进行学习。
当我们训练庞大且复杂的神经网络时,为了便于我们理解和调试TensorFlow程序,可视化工具显得尤为重要。而TensorFlow有一个很方便的可视化工具名为TensorBoard,我们可以利用它来可视化我们的graph
以及训练的细节。