Tensor(张量),在Tensorflow中可以理解为多维数组。
Flow(流),指数据流动的过程。
在计算图中,每一个计算就是一个节点,数据从一个计算“流”入下一个计算,形成图。

为什么使用计算图?
这里我们引用tensorflow 中计算图理解的说法
推荐阅读:Tensorflow官方文档:Eager Execution
给出了大量eager excution的例子和解释
TensorFlow 的 Eager Execution 是一种命令式编程环境,可立即评估运算,无需构建计算图:运算会返回具体的值,而非构建供稍后运行的计算图。这样能使您轻松入门 TensorFlow 并调试模型,同时也减少了样板代码。
官方教程中给出的一个例子:
def fizzbuzz(max_num):counter = tf.constant(0)max_num = tf.convert_to_tensor(max_num)for num in range(1, max_num.numpy()+1):num = tf.constant(num)if int(num % 3) == 0 and int(num % 5) == 0:print('FizzBuzz')elif int(num % 3) == 0:print('Fizz')elif int(num % 5) == 0:print('Buzz')else:print(num.numpy())counter += 1
调用函数
fizzbuzz(15)
输出
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
在这一过程中,使用了依赖于张量值的条件语句,并会在运行时输出这些值,这在非eager模式下是不行的。
在不同框架中,自动微分实现原理各有不同:
推荐阅读Tensorflow2梯度带tape.Gradient的用法_(全面,深入)
举出多种例子,深入阐述了tape的各种形式
GradientTape是eager模式下进行梯度计算和跟踪的工具,支持嵌套和多目标跟踪。
通用入口点,主要的功能是:
用于接受从终端传入的命令行参数,例如模型名称、epoch、dropout等等。
加载过程
flags.DEFINE_string('model', 'graphsage_mean', 'model names.') # 加载一个字符串,名称为model,默认值为graphsage_mean,这个flag的解释为model names.
flags.DEFINE_float('learning_rate', 0.01, 'initial learning rate.') # 加载一个浮点数,名称为learning_rate,默认值为0.01,这个flag的解释为initial learning rate.
flags.DEFINE_integer('epochs', 10, 'number of epochs to train.') # 加载一个整数,名称为epochs,默认值为10,这个flag的解释为number of epochs to train.
使用
FLAGS = tf.app.flags.FLAGS
if FLAGS.model == 'graphsage_mean':# Create modelsampler = UniformNeighborSampler(adj_info)
推荐阅读tensorflow学习:tf.app.run()函数
tf.app.run()是tensorflow运行的入口,执行tf.app.run()时,首先加载flags参数项,然后执行用户定义的主函数(一般为main())。
例子:
def main(argv=None):print("Loading training data..")train_data = load_data(FLAGS.train_prefix)print("Done loading training data..")train(train_data)if __name__ == '__main__':tf.app.run()
当然,如果你所定义的主函数不是main(),而是叫test()那么也是可以的,那么启动语句需要写成tf.app.run(test())
def test(argv=None):print("Loading training data..")train_data = load_data(FLAGS.train_prefix)print("Done loading training data..")train(train_data)if __name__ == '__main__':tf.app.run(test)
上一篇:35_DMA基本原理