TensorFlow入门(十一、图的基本操作)

建立图

一个TensorFlow程序默认是建立一个图的,除了系统自动建图以外,还可以用tf.Graph()手动建立,并做一些其他的操作

如果想要获得程序一开始默认的图,可以使用tf.get_default_graph()函数

如果想要重新建立一张图代替原来的图,可以使用tf.reset_default_graph()函数

注意:在使用tf.reset_default_graph函数时必须保证当前图的资源已经全部释放,否则会报错。例如如果在当前图中使用tf.InteractiveSession函数建立了一个会话,在会话结束时却没有调用close进行关闭,那么再执行tf.reset_default_graph函数时,就会报错。

示例代码如下:

python 复制代码
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

var1 = tf.constant(8.0)
print("var1:",var1.graph)

mygraph = tf.Graph()
with mygraph.as_default():
    var2 = tf.constant(9.9)
    print("var2:",var2.graph)
    print("mygraph:",mygraph)
    
mygraph2 = tf.get_default_graph()
print("mygraph2:",mygraph2)

tf.reset_default_graph()
mygraph3 = tf.get_default_graph()
print("mygraph3:",mygraph3)

获取张量

在图里面可以通过名字得到其对应的元素,使用的是get_tensor_by_name()函数

示例代码如下:

python 复制代码
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

var1 = tf.constant(8.0)
print("var1:",var1.graph)

mygraph = tf.Graph()
with mygraph.as_default():
    var2 = tf.constant(9.9)
    print("var2:",var2.graph)
    print("mygraph:",mygraph)
    
mygraph2 = tf.get_default_graph()
print("mygraph2:",mygraph2)

tf.reset_default_graph()
mygraph3 = tf.get_default_graph()
print("mygraph3:",mygraph3)

t1 = mygraph.get_tensor_by_name(name = var2.name)
print(t1)

print("var2.name:",var2.name)

获取元素列表

如果想看一下图中的全部元素,可以使用get_operations()函数来实现。

示例代码如下:

python 复制代码
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

var1 = tf.constant(8.0)
print("var1:",var1.graph)

mygraph = tf.Graph()
with mygraph.as_default():
    var2 = tf.constant(9.9)
    var3 = tf.constant(11.9)
    print("var2:",var2.graph)
    print("mygraph:",mygraph)
    
mygraph2 = tf.get_default_graph()
print("mygraph2:",mygraph2)

tf.reset_default_graph()
mygraph3 = tf.get_default_graph()
print("mygraph3:",mygraph3)

t1 = mygraph.get_tensor_by_name(name = var2.name)
print(t1)

print("var2.name:",var2.name)

t2 = mygraph.get_operations()
print(t2)

获取对象

使用tf.Graph.as_graph_element(obj,allow_tensor = True,allow_operation = True)函数,可以根据对象来获取元素,即传入的是一个对象,返回一个张量或是一个OP。该函数具有验证和转换功能。

示例代码如下:

python 复制代码
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

var1 = tf.constant(8.0)
print("var1:",var1.graph)

mygraph = tf.Graph()
with mygraph.as_default():
    var2 = tf.constant(9.9)
    var3 = tf.constant(11.9)
    print("var2:",var2.graph)
    print("mygraph:",mygraph)
    
mygraph2 = tf.get_default_graph()
print("mygraph2:",mygraph2)

tf.reset_default_graph()
mygraph3 = tf.get_default_graph()
print("mygraph3:",mygraph3)

t1 = mygraph.get_tensor_by_name(name = var2.name)
print(t1)

print("var2.name:",var2.name)

t2 = mygraph.get_operations()
print(t2)

t3 = mygraph.as_graph_element(var2)
print(t3)

获取节点操作

使用get_operation_by_name()函数

示例代码如下:

python 复制代码
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

mygraph = tf.get_default_graph()

x1 = tf.constant([[2.3,6.6]])
x2 = tf.constant([[5.3],[9.6]])
tensor1 = tf.matmul(x1,x2,name = "op")

test2 = mygraph.get_operation_by_name(tensor1.op.name)
print(test2)
相关推荐
北辰alk4 分钟前
如何实现AI多轮对话功能及解决对话记忆持久化问题
人工智能
智驱力人工智能4 分钟前
极端高温下的智慧出行:危险检测与救援
人工智能·算法·安全·行为识别·智能巡航·高温预警·高温监测
Leo.yuan13 分钟前
数据分析师如何构建自己的底层逻辑?
大数据·数据仓库·人工智能·数据挖掘·数据分析
笑稀了的野生俊20 分钟前
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.32‘ not found
linux·人工智能·ubuntu·大模型·glibc·flash-attn
吕永强20 分钟前
意识边界的算法战争—脑机接口技术重构人类认知的颠覆性挑战
人工智能·科普
豌豆花下猫21 分钟前
Python 潮流周刊#110:JIT 编译器两年回顾,AI 智能体工具大爆发(摘要)
后端·python·ai
二二孚日41 分钟前
自用华为ICT云赛道AI第三章知识点-昇腾芯片硬件架构,昇腾芯片软件架构
人工智能·华为
June bug1 小时前
【Python基础】变量、运算与内存管理全解析
开发语言·python·职场和发展·测试
蹦蹦跳跳真可爱5891 小时前
Python----OpenCV(几何变换--图像平移、图像旋转、放射变换、图像缩放、透视变换)
开发语言·人工智能·python·opencv·计算机视觉
蹦蹦跳跳真可爱5892 小时前
Python----循环神经网络(Transformer ----Layer-Normalization(层归一化))
人工智能·python·rnn·transformer