tensorflow的理解
Tensorflow是一种机器学习框架,如果我们有大量的数据,我们可以利用他协助医生检查糖尿病性视网膜病变来预防患者失明等应用
- 新版本中一个有趣的功能是 eager execution,允许用户在不创建图形的情况下运行tensorflow代码,一种动态图机制
它是一个命令式、由运行定义的接口,一旦从 Python 被调用,其操作立即被执行。这使得入门 TensorFlow 变的更简单,也使研发更直观。
Eager Execution 的优点如下:
快速调试即刻的运行错误并通过 Python 工具进行整合
借助易于使用的 Python 控制流支持动态模型
为自定义和高阶梯度提供强大支持
适用于几乎所有可用的 TensorFlow 运算
它的使用示例:当你启动 Eager Execution 时,运算会即刻执行,无需 Session.run() 就可以把它们的值返回到 Python。比如,要想使两个矩阵相乘,我们这样写代码:
import tensorflow as tf
import tensorflow.contrib.eager as tfe
tfe.enable_eager_execution()
x = [[2. ]]
m = tf.matmul(x, x)
接下来使用 print 或者 Python 调试器检查中间结果
print(m)
# The 1x1 matrix [[4.]]
重点-理解: tensorflow是一种利用数据流图进行数值计算的过程,整个框架分为两部分:(1)构建阶段:创建图,用来训练神经网络(2)执行阶段:利用session来执行图中的节点的计算,需要重复执行一系列训练操作。
其中tensorflow的数据是以tensor的数据结构来表示的,在python中是numpy ndarray ,一个tensor就是一个多维数组,在tensorflow中是利用variable来记录状态信息的,利用feed和fetches来填充和抓取相关操作结果
- 关于训练数据:
TensorFlow建议使用二进制的TFRecords格式,这样可以支持QueuRunner和Coordinator进行多线程数据读取,并且可以通过batch size和epoch参数来控制训练时单次batch的大小和对样本文件迭代训练多少轮。如果直接读取CSV文件,需要在代码中记录下一次读取数据的指针,而且在样本无法全部加载到内存时使用非常不便。 - 关于接受命令行参数
TensorFlow底层使用了python-g