tensorflow--图的基本操作

    xiaoxiao2025-04-21  7

    Graph()可以创建图,下面的c1和c的图不是同一个图,g2和c是同一个图

    import tensorflow as tf c = tf.constant(0.0) g = tf.Graph() with g.as_default(): c1 = tf.constant(0.0) print(c1.graph) print(g) print(c.graph) g2 = tf.get_default_graph() print(g2) # 重置图需要释放所有资源,否则会报错 tf.reset_default_graph() g3 = tf.get_default_graph() print(g3)

    重置默认图后,会重新创建一个默认图,g3和g2不相等

    <tensorflow.python.framework.ops.Graph object at 0x000001D96493F6D8> <tensorflow.python.framework.ops.Graph object at 0x000001D96493F6D8> W0526 18:46:41.901327 12760 deprecation_wrapper.py:119] From C:/projects/p520/p4.py:12: The name tf.get_default_graph is deprecated. Please use tf.compat.v1.get_default_graph instead. <tensorflow.python.framework.ops.Graph object at 0x000001D96492A940> <tensorflow.python.framework.ops.Graph object at 0x000001D96492A940> <tensorflow.python.framework.ops.Graph object at 0x000001D90BB17DA0>
    获取前面在图g中定义的张量
    # 通过名字获取图中的张量 print(c1.name) t = g.get_tensor_by_name("Const:0") print(t," -- ",t.name) Tensor("Const:0", shape=(), dtype=float32) -- Const:0
    获取图中的操作,通过名字
    a = tf.constant([[1.0,2.0]]) b = tf.constant([[1.0],[2.0]]) tensor1 = tf.matmul(a,b,name="exop") print(tensor1) test = g3.get_tensor_by_name("exop:0") print(test) tesop = g3.get_operation_by_name("exop") print(tesop) with tf.Session() as sess: test = sess.run(test) print(test) test = tf.get_default_graph().get_tensor_by_name("exop:0") print(test)

    获取图的所有操作:

    allops = g3.get_operations()

    可以看到,在图中声明常量也算一个操作

    [<tf.Operation 'c1' type=Const>, <tf.Operation 'c2' type=Const>, <tf.Operation 'exop' type=MatMul>]
    最新回复(0)