Tensorflow基础

发布时间 2023-07-02 17:48:46作者: sqsq

基础概念

  • tensor:张量(数据)
  • operation(op):专门运算的操作节点,所有操作都是一个op
  • grap:图,整个程序的结构
  • Session:会话,运算程序的图

Tensorflow属于计算密集型,大多是在cpu上进行计算。

图默认已经注册,一组表示tf.Operation计算单位的对象和tf.Tensor表示操作之间流动的数据单元的对象。

获取调用:

tf.get_default_graph()

op.sess或者tensor的graph的属性

import tensorflow as tf
import numpy as np
tf.compat.v1.disable_eager_execution()

#创建一张图,包含了op和tensor
g = tf.Graph()
print(g)
#新创建的图分配新的内存地址
with tf.compat.v1.Session() as sess:
    c = tf.constant(11.0)
    print(c.graph)

#这个sess下的图和下面sess下的图共用一个地址

a = tf.constant(5.0)
b = tf.constant(6.0)

sum1 = tf.add(a, b)

#默认的这张图,相当于是给程序分配一段内存
graph = tf.compat.v1.get_default_graph()

print(graph)
with tf.compat.v1.Session() as sess:
    print(sess.run(sum1))
    print(a.graph)
    print(sum1.graph)
    print(sess.graph)

输出

<tensorflow.python.framework.ops.Graph object at 0x0000000001529748>
<tensorflow.python.framework.ops.Graph object at 0x0000000041256888>
<tensorflow.python.framework.ops.Graph object at 0x0000000041256888>
11.0
<tensorflow.python.framework.ops.Graph object at 0x0000000041256888>
<tensorflow.python.framework.ops.Graph object at 0x0000000041256888>
<tensorflow.python.framework.ops.Graph object at 0x0000000041256888>

op

 op:只要使用tensorflow的API定义的函数都是op

tensor:知道的就是数据,进行运算,载体

会话

1.会话

前端系统:定义程序的图的结构(用API)

后端系统:运算图结构

会话:连接前端和后端,解析API进行运算。

作用:运行图结构;分配资源计算;掌握资源(变量,队列,线程)


tf.Session()
运行TensorFlow操作图的类,使用默认注册的图(可以指定运行图)
sess = tf.Session() #创建图
sess.run(...) #启动图
sess.close() #关闭图,资源释放
    使用上下文管理器,默认使用完关闭图
with tf.Session() as sess:
    sess.run(...)
一个图可以在多个sess中运行,一个sess也能运行多个图
2.会话的run方法
run(fetches,feed_dict=None,graph=None)
运行ops和计算tensor
feed_dict允许调用者覆盖图中制定张量的值,提供给placeholder使用

代码

import tensorflow as tf
import numpy as np
tf.compat.v1.disable_eager_execution()

a = tf.constant(5.0)
var = 2.0
sum2 = a + var
print(sum2)

with tf.compat.v1.Session() as sess:
    print(sess.run(sum2))
#也可以运行,var会被重载为tensor类型。

输出

Tensor("add:0", shape=(), dtype=float32)
7.0