tensorflow基础(2)--会话 常量 占位符

会话

会话 拥有并管理tensorflow程序运行时的所有资源

记得计算完成之后要关闭会话帮助系统回收资源

with tf.Session() as  sess:
    
    print(sess.run(tens1)[1,1])#通过Python的上下文管理器来管理这个会话,上下文退出时会话关闭和资源释放也自动完成
#sess.close()
node1=tf.constant(3.0,tf.float32,name="node1")
node2=tf.constant(7.0,tf.float32,name="node2")
result=tf.add(node1,node2)

sess=tf.Session()
print(sess.run(result))
print(result.eval(session=sess))

结果:

10.0
10.0 

sess=tf.InteractiveSession()#自动将生成的会话注册为默认会话
print(result.eval())
sess.close()

2.常量constant

在运行过程中不会改变的单元,在tensorflow不需要初始化

创建语句:
 

node1=tf.constant(3.0,tf.float32,name="node1")

3.变量

在运行 过程中值会改变的单元,必须初始化,一般不需要人工赋值

,会自动调整权重

创建语句:
tf.Variable(value,name)

 所有变量初始化:
init_op=tf.global_variables_initializer()

import tensorflow as tf

node1=tf.constant(3.0,tf.float32,name="node1")
node2=tf.constant(7.0,tf.float32,name="node2")
result=tf.add(node1,node2)

sess=tf.Session()
init=tf.global_variables_initializer()
sess.run(init)#一定要运行以后才算初始化
print(sess.run(result))
#输出1-10
import tensorflow as tf

node1=tf.Variable(0,name="node1")
node2=tf.constant(1,name="node2")
result=tf.add(node1,node2)
data=tf.assign(node1,result)

init=tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init)  # 一定要运行以后才算初始化
    for _ in range(10):
        sess.run(data)
        print(sess.run(node1))

3.占位符 Placeholder

tf里面的变量,在定义的时候需要初始化,但是有些变量定义的时候并不知道其值,当真正开始 运行程序的时候,才知道其值,但要指明数据类型。

tf.placeholder(tf.float32,[2,3],name="name")#2行3列

feed提交数据

import tensorflow as tf

node1=tf.placeholder(tf.float32,name="node1")
node2=tf.placeholder(tf.float32,name="node2")
result=tf.multiply(node1,node2,name="c")


init=tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init)  # 一定要运行以后才算初始化
    result=sess.run(result,feed_dict={node1:[8.0,12.0],node2:[9.0,5.0]})
    print(result[0])
发布了35 篇原创文章 · 获赞 4 · 访问量 2338

猜你喜欢

转载自blog.csdn.net/devilangel2/article/details/104597812
今日推荐