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

深度学习介绍

(1)介绍:

深度学习,如深度神经网络、卷积神经网络和递归神经网络已被应用
计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域
并获取了极好的效果。

(2)深度学习框架
在这里插入图片描述

Tensorflow

(1)认识Tensorflow
在这里插入图片描述
(2)Tensorflow特点

  1. 真正的可移植性
    引入各种计算设备的支持包括CPU/GPU/TPU,以及能够很好地运行在移动端,
    如安卓设备、ios、树莓派等等
  2. 多语言支持
    Tensorflow 有一个合理的c++使用界面,也有一个易用的python使用界面来构建和
    执行你的graphs,你可以直接写python/c++程序。
  3. 高度的灵活性与效率
    TensorFlow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库
    能够灵活进行组装图,执行图。随着开发的进展,Tensorflow的效率不算在提高
  4. 支持 TensorFlow 由谷歌提供支持,谷歌投入了大量精力开发 TensorFlow,它希望 TensorFlow 成为机器学习研究人员和开发人员的通用语言

(3)tensorflow安装

  1. conda创建一个新的python环境conda create -n name python==3.6
  2. 激活环境activate name
  3. 在该环境下下载tensorflowconda install -n name tensorflow==1.15.0
  4. pycharm下使用该环境即可

(4)tensorflow初体验

tensorflow实现加法运算:

import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
import tensorflow as tf

# 实现一个加法运算
a = tf.constant(5.0)
b = tf.constant(6.0)
sum1 = tf.add(a,b)
print(sum1)  # Tensor("Add:0", shape=(), dtype=float32)

with tf.Session() as sess:
    print(sess.run(sum1))  # 11.0

运行结果:
在这里插入图片描述
(5)分析

  1. 数据流图:
    在这里插入图片描述
    其中:
    tensor:张量【一种数据类型】
    operation(op):专门运算的操作节点,所有操作都是一个op
    graph(图):你的整个程序的结构
    在这里插入图片描述
    (6)tensorflow进阶
    1、图
    2、会话
    3、张量
    4、变量
    5、模型保存和加载
    6、自定义命令行参数

1、图(op+tensor)

默认已经注册,一组表示 tf.Operation计算单位的对象和tf.Tensor
表示操作之间流动的数据单元的对象

(1)获取调用

1、tf.get_default_graph()
2、op、sess或者tensor 的graph属性

(2)图的创建

tf.Graph()

使用新创建的图

g = tf.Graph() 
with g.as_default(): 
    a = tf.constant(1.0) 
    assert c.graph is g

(3)哪些是op
在这里插入图片描述
(4)举例

import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
import tensorflow as tf
# 创建一张图包含了一组op和tensor,上下文环境
# op:只要使用tensorflow的API定义的函数都是op
# 张量:就指代的是数据
g = tf.Graph()
print(g) # <tensorflow.python.framework.ops.Graph object at 0x00000157B6CDB470>
with g.as_default():
    c = tf.constant(11.0)
    print(c.graph) # <tensorflow.python.framework.ops.Graph object at 0x00000157B6CDB470>
# 实现一个加法运算
a = tf.constant(5.0)
b = tf.constant(6.0)
sum1 = tf.add(a,b)
# print(sum1)  # Tensor("Add:0", shape=(), dtype=float32)
# 默认的这张图,相当于是给程序分配一段内存
graph = tf.get_default_graph()
print(graph)  # <tensorflow.python.framework.ops.Graph object at 0x00000157B6CF8860>
with tf.Session() as sess:
    print(sess.run(sum1))  # 11.0
    print(a.graph)
    print(sum1.graph)
    print(sess.graph) # <tensorflow.python.framework.ops.Graph object at 0x00000157B6CF8860>
    # 这些都是一张图,都在一个地址

2、会话

(1)作用:

  1. 运行图的结构
  2. 分配资源计算
  3. 掌控资源(变量的资源,队列,线程)

(2)使用:

# 只能运行一个图,可以在会话当中指定图去运行
with tf.Session(graph=g) as sess:
    print(sess.run(c))  # 11.0

运行TensorFlow操作图的类,使用默认注册的图(可以指定运行图)

sess = tf.Session()     
sess.run(...)      # 会话的启用,启动整个图 
sess.close()        # 进行资源释放

使用上下文管理器:(默认结束时运行sess.close())

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

打印设备:

config=tf.ConfigProto(log_device_placement=True)
with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:
    print(sess.run(sum1))  # 11.0

在这里插入图片描述
交互式:tf.InteractiveSession()

sess.run(sum1)  ==  sum1.eval()
# 只要有会话的上下文环境,就可以使用方便的eval()

(3)会话里的run()方法(会话的启动)

run(fetches, feed_dict=None,graph=None)

其中:

  1. fetches:嵌套列表,元组,namedtuple,dict或OrderedDict(重载的运算符也能运行)
# 不是op不能放入会话的run方法运行
var1 = 1
var2 = 3
sum2 = var1+var2

# 有重载的机制,默认会给运算符重载成op类型
sum3 = var1+a # 呗重载成op类型
with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:
	print(sess.run([sum1,a,b]))  # op元组类型
    print(sess.run(sum2))  # 报错,不是op类型
    print(sess.run(sum3))
  1. feed_dict:允许调用者覆盖图中指定张量的值,提供给placeholder使用(语法:placeholder提供占位符,run时候通过feed_dict指定参数)
    意义:在程序执行的时候,不确定输入的是什么,提前“占个坑”
# 训练模型
# 实时的提供数据进行训练
# placeholder是一个占位符,feed_dict一个字典
plt = tf.placeholder(tf.float32,[None,3])
print(plt)
with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:
    print(sess.run(plt,feed_dict={plt:[[1,2,3],[4,5,6]]}))
  1. graph:指定图去运行
# 只能运行一个图,可以在会话当中指定图去运行
with tf.Session(graph=g) as sess:
    print(sess.run(c))  # 11.0
  1. 返回值异常:
    RuntimeError:如果它Session处于无效状态(例如已关闭)。
    TypeError:如果fetches或feed_dict键是不合适的类型。
    ValueError:如果fetches或feed_dict键无效或引用 Tensor不存在

3、张量

张量:相当于numpy中的ndarray数组

(1)张量的阶(维度)
(2)张量的数据类型
在这里插入图片描述
(3)张量的属性

  1. graph : 张量所属的默认图
  2. op :张量的操作名
  3. name : 张量的字符串描述
  4. shape : 张量形状
with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:
    print(sess.run(plt,feed_dict={plt:[[1,2,3],[4,5,6]]}))
    print(a.graph)
    print("---------")
    print(a.shape)
    print(plt.shape)
    print("--------")
    print(a.name)
    print("-------")
    print(a.op)

在这里插入图片描述
(4)张量的动态形状与静态形状

区别:在于有没有生成一个新的张量数据

TensorFlow中,张量具有静态形状和动态形状

静态形状
创建一个张量或者由操作推导出一个张量时,初始状态的形状
tf.Tensor.get_shape:获取静态形状
tf.Tensor.set_shape():更新Tensor对象的静态形状,通常用于在不能直接推断的情况下

注意:对于静态形状来说,一旦张量形状固定了,不能再次设置静态形状,不能跨维度修改 1D->1D,2D->2D

动态形状
一种描述原始张量在执行过程中的一种形状
tf.reshape:创建一个具有不同动态形状的新张量

注意:动态形状可以去创建一个新的张量,改变时候一定要注意元素数量要匹配 1D->2D,1D->3D

要点:1、转换静态形状的时候,1-D到1-D,2-D到2-D,不能跨阶数改变形状
2、 对于已经固定或者设置静态形状的张量/变量,不能再次设置静态形状
3、tf.reshape()动态创建新张量时,元素个数不能不匹配

plt = tf.placeholder(tf.float32,[None,2])
print(plt)
plt.set_shape([3,2])
print(plt)
# plt.set_shape([4,2])  # 不能再次修改
plt_reshape = tf.reshape(plt,[2,3])
print(plt_reshape)

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-19 07:59:01  更:2021-09-19 08:00:25 
 
开发: 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 14:32:57-

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