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


    建立图

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

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

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

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

    示例代码如下:

    1. import tensorflow.compat.v1 as tf
    2. tf.disable_v2_behavior()
    3. var1 = tf.constant(8.0)
    4. print("var1:",var1.graph)
    5. mygraph = tf.Graph()
    6. with mygraph.as_default():
    7. var2 = tf.constant(9.9)
    8. print("var2:",var2.graph)
    9. print("mygraph:",mygraph)
    10. mygraph2 = tf.get_default_graph()
    11. print("mygraph2:",mygraph2)
    12. tf.reset_default_graph()
    13. mygraph3 = tf.get_default_graph()
    14. print("mygraph3:",mygraph3)

    获取张量

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

    示例代码如下:

    1. import tensorflow.compat.v1 as tf
    2. tf.disable_v2_behavior()
    3. var1 = tf.constant(8.0)
    4. print("var1:",var1.graph)
    5. mygraph = tf.Graph()
    6. with mygraph.as_default():
    7. var2 = tf.constant(9.9)
    8. print("var2:",var2.graph)
    9. print("mygraph:",mygraph)
    10. mygraph2 = tf.get_default_graph()
    11. print("mygraph2:",mygraph2)
    12. tf.reset_default_graph()
    13. mygraph3 = tf.get_default_graph()
    14. print("mygraph3:",mygraph3)
    15. t1 = mygraph.get_tensor_by_name(name = var2.name)
    16. print(t1)
    17. print("var2.name:",var2.name)

    获取元素列表

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

    示例代码如下:

    1. import tensorflow.compat.v1 as tf
    2. tf.disable_v2_behavior()
    3. var1 = tf.constant(8.0)
    4. print("var1:",var1.graph)
    5. mygraph = tf.Graph()
    6. with mygraph.as_default():
    7. var2 = tf.constant(9.9)
    8. var3 = tf.constant(11.9)
    9. print("var2:",var2.graph)
    10. print("mygraph:",mygraph)
    11. mygraph2 = tf.get_default_graph()
    12. print("mygraph2:",mygraph2)
    13. tf.reset_default_graph()
    14. mygraph3 = tf.get_default_graph()
    15. print("mygraph3:",mygraph3)
    16. t1 = mygraph.get_tensor_by_name(name = var2.name)
    17. print(t1)
    18. print("var2.name:",var2.name)
    19. t2 = mygraph.get_operations()
    20. print(t2)

    获取对象

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

    示例代码如下:

    1. import tensorflow.compat.v1 as tf
    2. tf.disable_v2_behavior()
    3. var1 = tf.constant(8.0)
    4. print("var1:",var1.graph)
    5. mygraph = tf.Graph()
    6. with mygraph.as_default():
    7. var2 = tf.constant(9.9)
    8. var3 = tf.constant(11.9)
    9. print("var2:",var2.graph)
    10. print("mygraph:",mygraph)
    11. mygraph2 = tf.get_default_graph()
    12. print("mygraph2:",mygraph2)
    13. tf.reset_default_graph()
    14. mygraph3 = tf.get_default_graph()
    15. print("mygraph3:",mygraph3)
    16. t1 = mygraph.get_tensor_by_name(name = var2.name)
    17. print(t1)
    18. print("var2.name:",var2.name)
    19. t2 = mygraph.get_operations()
    20. print(t2)
    21. t3 = mygraph.as_graph_element(var2)
    22. print(t3)

    获取节点操作

            使用get_operation_by_name()函数

    示例代码如下:

    1. import tensorflow.compat.v1 as tf
    2. tf.disable_v2_behavior()
    3. mygraph = tf.get_default_graph()
    4. x1 = tf.constant([[2.3,6.6]])
    5. x2 = tf.constant([[5.3],[9.6]])
    6. tensor1 = tf.matmul(x1,x2,name = "op")
    7. test2 = mygraph.get_operation_by_name(tensor1.op.name)
    8. print(test2)

  • 相关阅读:
    三层架构图解
    纯虚函数和抽象类
    java计算机毕业设计基于安卓Android的校园单车租赁App(源码+系统+mysql数据库+Lw文档)
    基于 ActionFilters 的限流库DotNetRateLimiter使用
    Mybatis-Plus+Nacos配置中心和服务发现保姆级教程
    计网第六章(应用层)(三)(文件传输协议FTP)
    软件测试/测试开发 | AI大模型应用开发实训营来啦~ 大模型学习资料免费领
    Go语言:通过TDD测试驱动开发学习 Mocking (模拟)的思想
    机器学习7:pytorch的逻辑回归
    Leetcode 2911. Minimum Changes to Make K Semi-palindromes
  • 原文地址:https://blog.csdn.net/Victor_Li_/article/details/133677522