tensorflow实战google深度学习框架(第2版) 第三章 tensorflow入门

本文介绍了TensorFlow的核心概念,包括计算图、张量的使用和类型匹配,以及会话的执行。通过示例展示了张量的创建、计算和错误处理,强调了张量在构建计算图中的作用。此外,还探讨了特征提取、神经网络的前向传播算法,以及变量的初始化和管理,最后简述了训练神经网络模型的基本流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.tensorflow计算模型——计算图

tensorflow中所有的计算都会被转化为计算图上的节点。

tensorflow的名字说明了它最重要的两个概念——tensor和flow。

tensor就是张量,可以简单地理解为多维数组,表明了tensorflow的数据结构。

flow就是“流”,直观地表达了张量之间通过计算相互转化的过程,体现了tensorflow的计算模型。

 

一个简单的计算图,如下,

图中的每一个节点都是一个运算,而每一条边代表了计算之间的依赖关系。

如果一个运算的输入依赖于另一个运算的输出,那么这两个运算有依赖关系。

 

2.计算图的使用

tensorflow程序一般分为两个阶段:

第一个阶段:定义计算图中所有的计算

第二个阶段:执行计算

 

3.张量

在tensorflow程序中,所有的数据都通过张量的形式来表示。

从功能的角度上看,张量可以被简单理解为多维数组。

其中零阶张量表示标量(scalar),也就是一个数;第一阶张量为向量(vector),也就是一个一维数组;第n阶张量可以理解为一个n为数组。

张量在tensorflow中的实现并不是直接采用数组的形式,它只是对tensorflow中运算结果的引用,在张量中并没有真正保存数字,它保存的是如何得到这些数字的计算过程。

如下,

>>> import tensorflow as tf
>>> a = tf.constant([1., 2.], name='a')
>>> b = tf.constant([2., 3.], name='b')
>>> result = tf.add(a, b, name='add')
>>> result                                                              # 得到的是一个张量对象,它是计算结果的引用,而不是具体的值
<tf.Tensor 'add:0' shape=(2,) dtype=float32>
>>> a
<tf.Tensor 'a:0' shape=(2,) dtype=float32>
>>>

注意,张量计算时需要相同的数据类型,如果不同会报错,如下,

因为张量计算的不是一个具体的数值,而是一个数据结构(包括名字、维度和类型)

>>> import tensorflow as tf
>>> a2 = tf.constant([1, 2], name='a2')
>>> b2 = tf.constant([2., 3.], name='b2')
>>> result2 = a2 + b2
Traceback (most recent call last):
  File "D:\virtualenv\pylearn\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 510, in _apply_op_helper
    preferred_dtype=default_dtype)
  File "D:\virtualenv\pylearn\lib\site-packages\tensorflow\python\framework\ops.py", line 1146, in internal_convert_to_tensor
    ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref)
  File "D:\virtualenv\pylearn\lib\site-packages\tensorflow\python\framework\ops.py", line 983, in _TensorTensorConversionFunction
    (dtype.name, t.dtype.name, str(t)))
ValueError: Tensor conversion requested dtype int32 for Tensor with dtype float32: 'Tensor("b2:0", shape=(2,), dtype=float32)'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\virtualenv\pylearn\lib\site-packages\tensorflow\python\ops\math_ops.py", line 866, in binary_op_wrapper
    return func(x, y, name=name)
  File "D:\virtu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值