TensorFlow实现算法的一般流程

1. TensorFlow算法的一般流程

  • 导入或生成数据集
  • 转换和归一化数据
  • 将数据集划分为训练集,测试和验证集
  • 设置算法参数(超参数)
  • 初始化变量和占位符
  • 定义模型结构
  • 声明损失函数
  • 初始化和训练模型
  • 评估模型
  • 调整超参数
  • 部署/预测新结果
  • 参考文献

2. 导入或生成数据集:

我们所有的机器学习算法将依赖于数据集。 在本书中,我们将生成数据或使用外部数据集源。 有时最好依靠生成的数据,因为我们只想知道预期的结果。 大多数情况下,我们将访问给的公共数据集,有关访问这些信息的详细信息,请参见本章第8节。

3. 转换和归一化数据:

通常,输入数据集不会以TensorFlow的形式出现,因此我们需要将TensorFlow转换为接受的形状。 数据通常不在我们的算法期望的正确维度或类型。 我们将不得不转换我们的数据,然后才能使用它。 大多数算法也期望归一化数据,我们也将在这里做。 TensorFlow具有内置函数,可以为您规范数据,如下所示:

data = tf.nn.batch_norm_with_global_normalization(...)

4. 将数据集划分为训练集,测试和验证集:

我们通常希望在我们接受过培训的不同集上测试我们的算法。 此外,许多算法需要超参数调整,因此我们放置一个验证集来确定最佳的超参数集。

5. 设置算法参数(超参数):

我们的算法通常具有一组在整个过程中保持不变的参数。 例如,这可以是我们选择的迭代次数,学习率或其他有效参数。 将这些一起初始化是很好的形式,因此读者或用户可以很容易地找到它们,如下所示:

learning_rate = 0.01  
batch_size = 100  
iterations = 1000  

6. 初始化变量和占位符:

TensorFlow取决于知道它可以和不能修改什么。 TensorFlow将在优化期间修改/调整变量和权重/偏差,以最大限度地减少损失函数。 为了实现这一点,我们通过占位符来提供数据。 我们需要初始化这两个变量和占位符的大小和类型,以便TensorFlow知道预期。 TensorFlow还需要知道要预期的数据类型:对于本书的大部分,我们将使用float32。 TensorFlow还提供了float64和float16。 请注意,精度较高的字节会导致较慢的算法,但是我们使用的结果越少,精度越低。 请参阅以下代码:

a_var = tf.constant(42)  
x_input = tf.placeholder(tf.float32, [None, input_size])  
y_input = tf.placeholder(tf.float32, [None, num_classes])  

7. 定义模型结构:

在我们拥有数据并初始化了变量和占位符后,我们必须对模型进行定义。 这是通过构建计算图来完成的。 TensorFlow选择哪些操作和价值必须是变量和占位符来达到我们的模型结果。 我们在第2章“TensorFlow方法”中的计算图中的运算中的计算图更详细地讨论了TensorFlow Way。 我们这个例子的模型将是一个线性模型:

y_pred = tf.add(tf.mul(x_input, weight_matrix), b_matrix)  

8. 声明损失函数:

在定义模型之后,我们必须能够评估输出。 这是我们声明损失函数的地方。 损失函数非常重要,因为它告诉我们我们的预测与实际值有多远。 不同类型的损失函数将在第2章“TensorFlow方法”中的“实施反向传播配方”中进行了详细的探讨。

loss = tf.reduce_mean(tf.square(y_actual – y_pred))  

9. 初始化和训练模型:

现在我们已经有了一切,我们需要创建一个图表的实例,通过占位符提供数据,并让TensorFlow更改变量以更好地预测我们的训练数据。 这是初始化计算图的一种方法:

with tf.Session(graph=graph) as session:  
       ...  
       session.run(...)  
       ...  
#Note that we can also initiate our graph with:  
       session = tf.Session(graph=graph)  
       session.run(...)  

10. 评估模型:

一旦我们建立并训练了模型,我们就应该通过一些具体的标准来评估新模型的效果。 我们对训练和测试集进行评估,这些评估将使我们看到该模型是否在t或以上。 我们将在以后的食谱中解决这些问题。

11. 调整超参数:

大多数情况下,我们将根据模型性能返回并更改一些超级参数。 然后,我们用不同的超参数重复上述步骤,并对验证集进行评估。

12. 部署/预测新结果:

了解如何对新的,未见的数据进行预测也很重要。

13. 参考文献:

Tensorow Python API文档网址为https://www.tensorflow.org/api_docs/python/

All symbols in TensorFlow  |  TensorFlow

01 TensorFlow入门(1) - 小鹏的专栏 - 博客频道 - CSDN.NET

tensorflow基础篇

书籍:TensorFlow Machine Learning Cookbook.pdf

代码:https://github.com/nfmcclure/tensorflow_cookbook

相关文章:

tensorflow_cookbook - 小鹏的专栏- 博客频道 - CSDN.NET


技术交流学习,请加QQ微信:631531977
目录