敲开TensorFlow的大门

本文最后更新于:2017年4月14日 凌晨

目前的AI还处在比较低级的阶段,但是像TensorFlow的出现,极大的推进了AI的进程,使得各类应用可以以最低的成本最快的的时间接入AI,今天我们就通过一个简单的模型训练来敲开TensorFlow的大门。

AI的模型训练其实就是: 对模型变量的值进行不断调整,直到训练模型对所有可能的变量求出的结果都无限接近目标值,而我们要做的工作就是给足够的数据进行训练,以及不断优化训练算法

I. macOS Sierra中配置运行环境

官方教程地址: https://www.tensorflow.org/install/install_mac#installing_with_virtualenv

一共有四种方式,根据官方推荐,我采用的是virtualenv

由于我的MBP没有NVIDIA CUDA GPU,因此这里我没有配GPU

由于我的Python是2.7.10版本,并且没有支持GPU,因此执行:

如果是其他情况的请参照官方教程

验证安装

官方地址: https://www.tensorflow.org/install/install_mac#ValidateYourInstallation

II. 训练模型案例

该案例来自官方的入门案例

该次模型训练的性能决定因素是: 优化器选择、精度选择、训练数据

通过高级的接口快速的实现上面的模型训练

当然我们也可以通过tf.contrib.learn.Estimator这个高级接口,再使用低级接口来定制Linear Regressor算法模型(实际上内置的tf.contrib.learn.LinearRegressor也是继承自tf.contrib.learn.Estimator的)。当然我们不是通过继承,是通过提供model_fn来告诉他训练的步骤、如果评估等:

III. 常见的API

具体API可以参看官网文档

  • 定义常量: tf.constant(value, type),如tf.constant(3.0, tf.float32),当type没有给定的时候,会根据所给value定义
  • 定义变量: tf.placeholder(type), 如tf.placeholder(tf.float32)
  • 定义训练模型: tf.Variable([value], type], 如tf.Variable([.3], tf.float32)
  • 计算结果: 通过tf.Session()run去计算
  • 初始化训练模型: tf.global_variables_initializer(),对其进行复位运行起对象即可,如Session对象是sees,初始化模型对象是init时: sess.run(init)
  • 对模型重新赋值: 如对W模型重新赋值: fixW = tf.assign(W, [-1.])
  • 求平方: tf.square(value)
  • 求和: tf.reduce_sum(value)

欢迎阅读另一篇文章训练识别数字图片的模型,进一步的了解TensorFlow的使用。




敲开TensorFlow的大门
https://blog.dreamtobe.cn/tensorflow-sample/
作者
Jacksgong
发布于
2017年3月17日
更新于
2017年4月14日
许可协议