IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> tensorflow基本结构 -> 正文阅读

[人工智能]tensorflow基本结构

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

导入模块(要兼容低版本)

import os
import tensorflow.compat.v1 as tf   # 兼容低版本
tf.disable_v2_behavior()
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'  # 去警告

一、TensorFlow结构

TensorFlow程序通常被组织成一个构件图阶段和一个执行图阶段。在构建阶段,数据与操作的执行步骤被描述为一个图; 在执行阶段,使用会话执行构建好的图中的操作

术语介绍:

图:TensorFlow将计算表示为指令之间的依赖关系的一种表示方法
会话:TensorFlow跨一个或多个本地或远程设备运行数据流图的机制
张量:TensorFlow中的基本数据对象
节点:提供图当中执行的操作

二、图

1.图结构

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

图一般分为默认图和自定义图

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

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

def graph():
    a = tf.constant(2)
    b = tf.constant(3)
    c = a + b
    print("c=",c)

    # 查看默认图
    g = tf.get_default_graph()
    print("g=", g)

    # 查看属性
    print("a:", a.graph)
    print("b:", b.graph)

    # 开启会话
    with tf.Session() as sess:
        c_val = sess.run(c)
        print("c_val :", c_val)
        print("sess:", sess.graph)
'''
c= Tensor("add:0", shape=(), dtype=int32)
g= <tensorflow.python.framework.ops.Graph object at 0x000001474F6A03D0>
a: <tensorflow.python.framework.ops.Graph object at 0x000001474F6A03D0>
b: <tensorflow.python.framework.ops.Graph object at 0x000001474F6A03D0>
c_val : 5
sess: <tensorflow.python.framework.ops.Graph object at 0x000001474F6A03D0>

'''

可以通过tf.Graph()自定义创建图 , 如果要在这张图中创建OP,典型用法是使用tf.Graph.as_default()上下文管理器

a = tf.constant(2)
    b = tf.constant(3)
    c = a + b
    # 自定义图
    new_g = tf.Graph()
    # 定义数据和操作
    with new_g.as_default():
        a_new = tf.constant(20)
        b_new = tf.constant(80)
        c_new = a_new + b_new
        print("a_new:", a_new.graph)
        print("b_new:", b_new.graph)

    with tf.Session(graph=new_g) as new_sess:
        c_val = new_sess.run(c_new)
        print("c:", c_val)
        print("new_sess", new_sess.graph)
'''
a_new: <tensorf
low.python.framework.ops.Graph object at 0x0000025737982AF0>
b_new: <tensorflow.python.framework.ops.Graph object at 0x0000025737982AF0>
c: 100
new_sess <tensorflow.python.framework.ops.Graph object at 0x0000025737982AF0>
'''

2.TensorBoard

tensorflow用于训练大规模深度神经网络所需的计算,为了更方便tensorflow程序的理解、调试与优化,tensorflow提供了TensorBoard可视化工具

实现程序可视化过程

(1)实现程序可视化过程

TensorBoard通过读取TensorFlow的事件文件来运行,需要将数据生成一个序列化的Summary protobuf对象

tf.summary.FileWriter(path, graph=sess.graph)

(2)启动TensorBoard

tensorboard --logdir=path
def graph():
    a = tf.constant(2)
    b = tf.constant(3)
    c = a + b
    print("c=",c)

    # 查看默认图
    g = tf.get_default_graph()
    print("g=", g)

    # 查看属性
    print("a:", a.graph)
    print("b:", b.graph)

    # 开启会话
    with tf.Session() as sess:
        c_val = sess.run(c)
        print("c_val :", c_val)
        print("sess:", sess.graph)
        # 将图写如本地生成events文件
        tf.summary.FileWriter("summary", graph=sess.graph)

运行后终端执行tensorboard --logdir=path,出现如图
在这里插入图片描述
打开网址即可

三、会话(Session)

Session允许执行图形或部分图形,为此分配资源并保存中间结果和变量的实际值

tf.Session:用于完整的程序当中
tf.InteractiveSession:用于交互式上下文中的TensorFlow,如shell

由上面知道创建一个图形,如下代码

	 # 自定义图
    new_g = tf.Graph()
    # 定义数据和操作
    with new_g.as_default():
        a_new = tf.constant(20)
        b_new = tf.constant(80)
        c_new = a_new + b_new
        print("a_new:", a_new.graph)
        print("b_new:", b_new.graph)

要为该 Graph(图形)创建一个Session(会话),会话还将分配内存来存储变量的当前值

with tf.Session() as sess:
	sess.run(sth)

target:如果将此参数留空(默认设置),会话将仅使用本地计算机中的设备。可以指定grpc://网址,以便指定TensorFlow服务器的地址,这使得会话可以访问该服务器控制的计算机上的所有设备
graph:默认情况下,新的tf.Session将绑定到当前的默认图
config:此参数允许您指定一个tf.ConfigProto以便控制会话的行为。例如,ConfigProto协议用于打印设备使用信息


总结

提示:这里对文章进行总结:

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-13 12:48:58  更:2021-12-13 12:49:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 0:19:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码