深度学习基础之《TensorFlow框架(2)—图》

一、什么是图结构

1、图包含了一组tf.Operation代表的计算单元对象和tf.Tensor代表的计算单元之间流动的数据

图结构:数据(Tensor) + 操作(Operation)

二、图相关操作

1、默认图

通常TensorFlow会默认帮我们创建一张图

查看默认图的两种方法:

(1)通过调用tf.compat.v1.get_default_graph()访问,要将操作添加到默认图形中,直接创建OP即可

(2)op、sess都含有graph属性,默认都在一张图中

注:2.x版本(使用默认图)不支持调用属性,会报错"AttributeError: Tensor.graph is meaningless when eager execution is enabled."

python 复制代码
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
import tensorflow as tf

def tensorflow_demo():
    """
    TensorFlow的基本结构
    """

    # TensorFlow实现加减法运算
    a_t = tf.constant(2)
    b_t = tf.constant(3)
    c_t = a_t + b_t
    print("TensorFlow加法运算结果:\n", c_t)
    print(c_t.numpy())

    # 2.0版本不需要开启会话,已经没有会话模块了

    return None

def graph_demo():
    """
    图的演示
    """
    # TensorFlow实现加减法运算
    a_t = tf.constant(2)
    b_t = tf.constant(3)
    c_t = a_t + b_t
    print("TensorFlow加法运算结果:\n", c_t)
    print(c_t.numpy())

    # 查看默认图
    # 方法1:调用方法
    default_g = tf.compat.v1.get_default_graph()
    print("default_g:\n", default_g)

    # 方法2:查看属性
    # print("a_t的图属性:\n", a_t.graph)
    # print("c_t的图属性:\n", c_t.graph)

    return None

if __name__ == "__main__":
    # 代码1:TensorFlow的基本结构
    # tensorflow_demo()
    # 代码2:图的演示
    graph_demo()
bash 复制代码
python3 day01_deeplearning.py

TensorFlow加法运算结果:
 tf.Tensor(5, shape=(), dtype=int32)
5
default_g:
 <tensorflow.python.framework.ops.Graph object at 0x7f27651b5be0>

2、创建图

(1)可以通过tf.Graph()自定义创建图

(2)如果要在这张图中创建OP,典型用法是使用tf.Graph.as_default()上下文管理器

python 复制代码
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
import tensorflow as tf

def tensorflow_demo():
    """
    TensorFlow的基本结构
    """

    # TensorFlow实现加减法运算
    a_t = tf.constant(2)
    b_t = tf.constant(3)
    c_t = a_t + b_t
    print("TensorFlow加法运算结果:\n", c_t)
    print(c_t.numpy())

    # 2.0版本不需要开启会话,已经没有会话模块了

    return None

def graph_demo():
    """
    图的演示
    """
    # TensorFlow实现加减法运算
    a_t = tf.constant(2)
    b_t = tf.constant(3)
    c_t = a_t + b_t
    print("TensorFlow加法运算结果:\n", c_t)
    print(c_t.numpy())

    # 查看默认图
    # 方法1:调用方法
    default_g = tf.compat.v1.get_default_graph()
    print("default_g:\n", default_g)

    # 方法2:查看属性
    # print("a_t的图属性:\n", a_t.graph)
    # print("c_t的图属性:\n", c_t.graph)

    # 自定义图
    new_g = tf.Graph()
    # 在自己的图中定义数据和操作
    with new_g.as_default():
        a_new = tf.constant(20)
        b_new = tf.constant(30)
        c_new = a_new + b_new
        print("c_new:\n", c_new)
        print("a_new的图属性:\n", a_new.graph)
        print("b_new的图属性:\n", b_new.graph)

    # 开启new_g的会话
    with tf.compat.v1.Session(graph=new_g) as sess:
        c_new_value = sess.run(c_new)
        print("c_new_value:\n", c_new_value)
        print("我们自己创建的图为:\n", sess.graph)
    return None

if __name__ == "__main__":
    # 代码1:TensorFlow的基本结构
    # tensorflow_demo()
    # 代码2:图的演示
    graph_demo()
bash 复制代码
python3 day01_deeplearning.py

TensorFlow加法运算结果:
 tf.Tensor(5, shape=(), dtype=int32)
5
default_g:
 <tensorflow.python.framework.ops.Graph object at 0x7f19806c4d68>
c_new:
 Tensor("add:0", shape=(), dtype=int32)
a_new的图属性:
 <tensorflow.python.framework.ops.Graph object at 0x7f19809f5748>
b_new的图属性:
 <tensorflow.python.framework.ops.Graph object at 0x7f19809f5748>
c_new_value:
 50
我们自己创建的图为:
 <tensorflow.python.framework.ops.Graph object at 0x7f19809f5748>

说明:

(1)默认图执行结果是tf.Tensor(5, shape=(), dtype=int32)

(2)自定义图执行结果是Tensor("add:0", shape=(), dtype=int32)

(3)自定义图没有即时执行,需要开启Session指定图来执行

(4)可以看到默认图地址为0x7f19806c4d68,自定义图地址为0x7f19809f5748

相关推荐
是翎5 分钟前
OpenAI 官方 GPT-Image 2.5 提示词指南与示例
大数据·人工智能·gpt·深度学习·自然语言处理·知识图谱
运维全栈笔记16 分钟前
Windows 本地部署 Codex 全攻略:CC Switch 接入 DeepSeek 与模型自由切换
windows·深度学习·机器学习·chatgpt
DogDaoDao2 小时前
MotionWAM 深度解析:让视频世界模型跑进实时人形机器人全身控制
深度学习·机器人·大模型·音视频·人形机器人·视频大模型·motionwam
X54先生(人文科技)2 小时前
《元创力》纪实录 · 卷宗 3.5-C《协议的形状——ELR体系第一份商业合同的形成全记录》
人工智能·深度学习·架构·ai写作·开源协议
打不了嗝 ᥬ᭄3 小时前
神经网络基础与整体架构
人工智能·深度学习·神经网络
LaughingZhu3 小时前
Product Hunt 每日热榜 | 2026-09-11
人工智能·深度学习·神经网络·搜索引擎·百度
纪伊路上盛名在3 小时前
PLACER 局部预测蛋白 - 配体构象集合
深度学习·生成式模型·对接·蛋白构象·蛋白-配体·局部·se3
X54先生(人文科技)3 小时前
《元创力》纪实录 · 桥段 3.5-D《第一次协议的遗址》
人工智能·深度学习·架构·开源·ai写作
TAN-90°-3 小时前
Deep Learning for Computer Vision——Large Scale Distributed Training
人工智能·深度学习·神经网络·算法·机器学习·计算机视觉·语言模型
ForDreamMusk15 小时前
序列学习任务
深度学习