【深度学习】初识TensorFlow

一、认识深度学习

深度学习使用场景:

● 图像理解

● 语音识别

● 自然语言处理

● 机器自主(无人驾驶)

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

深度学习在人工智能领域的地位:

深度学习框架:

二、认识Tensorflow

● Google Brain计划产物

● 应用于Alpha GO,Gmail,Google Maps等1000多个产品

● 于2015年11月开源,2017年2月发布1.0版本。2019年10月发布2.0版本

● 架构师Jeff Deam

   ● 领导实现MapReduce、BigTable、Spanner

三、TensorFlow特点

1、真正的可移植性

引入各种计算设备的支持,包括:CPU/GPU/TPU,以及能够很好地运行在移动端,如安卓设备、io、树莓派等等。

2、多语言支持

Tensorflow有一个合理的C++使用界面,也有一个易用的python使用界面来构建和执行你的graphs,你可以直接写python/c++程序。

3、高度的灵活性和效率

TensorFlow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库能够灵活进行组装图,执行图。随着开发的进展,TensorFlow的效率在不断的提高。

4、支持

TensorFlow由谷歌提供支持,谷歌投入了大量精力开发TensorFlow,它希望TensorFlow成为机器学习研究人员和开发人员的通用语言。

谷歌数千种产品使用了TensorFlow:

无数公司也用了TensorFlow:

四、TensorFlow基础

通过案例来了解分析TensorFlow的整个结构

常规加法运算:

# coding:utf-8


def add(a, b):
    return a + b


a = 1
b = 2
c = add(1, 2)
print(c)

TensorFlow加法运算:

# coding:utf-8
import tensorflow as tf

tf.compat.v1.disable_eager_execution()
# 实现一个加法算法
a = tf.constant(5.0)
b = tf.constant(6.0)
sum1 = tf.add(a, b)
sess = tf.compat.v1.Session()
print(sess.run(sum1))

TensorFlow数据流图:

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

● 获取调用

     1.tf.get_default_graph

     2.op、sess或者tensor的graph属性

图的创建

● tf.Graph()

● 使用新创建的图

          g = tf.Graph()

          with g.as_default():

                 a = tf.constant(1.0)

                 assert c.graph is g

代码:

# coding:utf-8
import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

# 创建一张图,上下文环境
g = tf.Graph()
print(g)
with g.as_default():
    c = tf.constant(11.0)
    print(c.graph)

# 实现一个加法运算
tf.compat.v1.disable_eager_execution()
# 实现一个加法算法
a = tf.constant(5.0)
b = tf.constant(6.0)
sum1 = tf.add(a, b)
sess = tf.compat.v1.Session()
print(sess.run(sum1))
print(a.graph)
print(sum1.graph)
print(sess.graph)

输出:

<tensorflow.python.framework.ops.Graph object at 0x000002AA4ADEC908>
<tensorflow.python.framework.ops.Graph object at 0x000002AA4ADEC908>
11.0
<tensorflow.python.framework.ops.Graph object at 0x000002AA52A1EA48>
<tensorflow.python.framework.ops.Graph object at 0x000002AA52A1EA48>
<tensorflow.python.framework.ops.Graph object at 0x000002AA52A1EA48>

哪些是op

会话

● tf.Session()

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

● 会话资源

会话可能拥有很多资源,如tf.Variable,tf.QueueBase和tf.ReaderBase,会话结束后需要进行资源释放

1.sess = tf.Session()         sess.run(...)         tf.QueueBase

2.使用上下文管理器

with tf.Session() as sess:

               sess.run(...)

● config = tf.ConfigProto(log_device_placement=True)

● 交互式:tf.InteractiveSession()

会话的run()方法

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

          运行ops和计算tensor

   ● 嵌套列表,元祖,

   namedtuple,dict或OrderedDict(重载的运算符也能运行

● feed_dict允许调用者覆盖图中指定张量的值,提供给placeholder使用

● 返回值异常

      RuntimeError:如果它Session处于无效状态(例如已关闭)。

      TypeErrror:如果feches或feed_dict键是不合适的类型。

       ValueError:如果feches或feed_dict键无效或引起Tensor不存在。

代码:

# coding:utf-8
import tensorflow.compat.v1 as tf
tf.disable_eager_execution()

# 训练模型
# 实时地提供数据去训练

# placeholder是一个占位符,feed_dict一个字典
plt = tf.placeholder(dtype=tf.float32, shape=[None, 3])
sess = tf.Session()
print(sess.run(plt, feed_dict={plt: [[1, 2, 3], [4, 5, 36]]}))

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值