Tensorflow 1-n的累加和(入门)

    科技2022-08-05  127

    导入tensorflow库

    import tensorflow as tf

    定义计算图

    变量以及操作定义:

    value1 = tf.Variable(0,tf.int8,name='value1') value2 = tf.Variable(0,tf.int8,name='value2') one = tf.constant(1) add_value1 = tf.add(one,value1,name='add1') add_value2 = tf.add(value1,value2,name='add2') updata_value1 = tf.assign(value1,add_value1,name='assgin1') updata_value2 = tf.assign(value2,add_value2,name='assgin2')

    tensorflow里每一个操作以及变量都是需要定义的

    变量初始化:

    # 对所有变量初始化 init = tf.global_variables_initializer()

    创建会话

    创建计算图只是建立静态计算模型,执行对话才能提供数据并获得结果。会话拥有并管理Tensorflow程序运行时的所有资源,当所有计算完成过后需要关闭会话帮助系统回收资源。

    可以通过以下语句创建:

    sess = tf.Session()

    创建完后,通过以下语句来运行结果:

    sess.run(result)

    但是请记住,使用完后,记得关闭会话:

    sess.close()

    实际代码中,上述过程有些繁琐,故一般使用python的with语句:

    with tf.Session() as sess: sess.run(rusult)

    如果有变量,要成功运行还需增加一个init初始化变量,并调用会话的run命令进行参数初始化

    tensorboard可视化

    更加直观感受变量的“流动”过程 首先,需要清除其它图形和节点:

    # 清除default graph以及不断增加的节点 tf.reset_default_graph()

    创建存储目录文件:

    # 日志文件存储位置设置 logdir = 'C:\\Users\一夜星尘\\tensorflow计算图' writer = tf.summary.FileWriter(logdir,tf.get_default_graph()) writer.close()

    例题

    1-n的累加和:

    import tensorflow as tf # 清除default graph以及不断增加的节点 tf.reset_default_graph() value1 = tf.Variable(0,tf.int8,name='value1') value2 = tf.Variable(0,tf.int8,name='value2') one = tf.constant(1) add_value1 = tf.add(one,value1,name='add1') add_value2 = tf.add(value1,value2,name='add2') updata_value1 = tf.assign(value1,add_value1,name='assign1') updata_value2 = tf.assign(value2,add_value2,name='assign2') # 对所有变量初始化 init = tf.global_variables_initializer() with tf.Session() as sess: sess.run(init) n = input('pless enter n:') for i in range(int(n)): # 注意这里的先后顺序 sess.run(updata_value1) sess.run(updata_value2) print('The cumulative sum of n is:',str(sess.run(value2))) # 日志文件存储位置设置 logdir = 'C:\\Users\一夜星尘\\tensorflow计算图' writer = tf.summary.FileWriter(logdir,tf.get_default_graph()) writer.close()

    结果显示:

    tensorboard中节点显示为:

    Processed: 0.027, SQL: 8