TensorFlow入门

TensorFlow程序一般分为定义计算与执行计算两个阶段,任何TensorFlow程序在执行前都会先定义相应的计算图,然后执行定义的计算图。
计算图是TensorFlow最基本的概念,TensorFlow中每一个计算都会转化为计算图上的节点,而节点之间的边描述了计算之间的依赖关系。有以下程序
`
import tensorflow as tf
#定义常量,并命名为name_a
a=tf.constant([1,2],name=’name_a’)
b=tf.constant([3,4],name=’name_b’)
c=a+b

`
在tensorflow程序中,系统会自动维护一个默认的计算图,通过tf.get_default_graph函数可以获取当前默认的计算图。在上面的代码执行过程中,tensorflow会自动的将定义的节点a,b转化到计算图上。
除了默认的计算图,tensorflow还提供tf.Graph函数来生成新的计算图,不同的计算图上的张量和运算都不会共享。
这里就涉及到张量,张量是tensorflow中数据的形式,主要保存节点的名字、维度、类型三个属性,可以简单的理解为多维数组,但它并不直接采用数组的形式,只是对运算结果的引用,这样设计感觉是为了节省存储空间。
在定义常量的时候,例如a=tf.constant([1,2],name=’name_a’),其中tf.constant([1,2],name=’name_a’)只是在计算图上定义了一个常量计算节点,这个节点的名称命名为name_a,计算的结果为一个张量,将其计算过程保存在a中。
当执行
a=tf.constant([1,2],name=’name_a’)
print(a)
时,输出会是
Tensor(“name_a_1:0”, shape=(2,), dtype=int32)
其中”name_a_1:0”表示节点name_a输出的第一个结果(编号从0开始)
shape=(2,) 说明张量是一个一维数组,这个数据的长度为2
dtype=int32代表张量的数据的类型
要想输出具体的值,在会话中用进行

张量的引入也大大提高了代码的可读性,因为在神经网络中,会存在很多的中间计算,如果没有张量来保存中间结果,那么代码可读性将会变得很差。

定义好计算节点之后,用会话的方式运行定义的节点,常用的方式是
with tf.Session() as sess:
sess.run(…)
这种方式的优点是程序运行完毕自动关闭资源。

要想程序在指定的GPU上运行,或者打印日志等操作,可以在定义会话的时候,通过ConfigProto配置会话
例如config=tf.ConfigProto(allow_soft_placement=True,log_device_placement=True)
sess=tf.Session(config=config)
这样就配置了在GPU不能运行的运算自动放到CPU上运行,同时还能记录每个节点被安排到那个设备上计算了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TensorFlow是一个由Google开发的开源机器学习库,它被设计用于构建和部署各种类型的机器学习模型,包括深度学习网络。以下是TensorFlow入门的一些基本步骤: 1. **安装TensorFlow**:首先,你需要下载并安装TensorFlow。如果你是Python开发者,可以通过pip install tensorflow命令来安装最新版本。 2. **环境配置**:推荐使用Anaconda或Jupyter Notebook创建一个独立的虚拟环境,这有助于管理不同项目的依赖。 3. **基础概念**: - **张量(Tensors)**:是TensorFlow的基本数据结构,类似于NumPy中的数组,但支持GPU加速计算。 - **图(Graphs)**:TensorFlow的核心思想是基于图的数据流模型,每个节点代表一个操作,边则表示输入和输出。 4. **创建第一个会话(Session)**:Session是运行图形的地方,你需要用它来执行计算。 5. **代码示例**: - 使用`tf.placeholder`定义占位符,它是动态大小的输入变量。 - 创建常量(`tf.constant`),常数节点不参与图的计算过程。 - 定义运算(`tf.add`, `tf.matmul`等)并将其添加到图中。 - 使用`session.run`执行计算,并获取结果。 6. **实战练习**:尝试解决一些简单的问题,比如线性回归、卷积神经网络的基础应用等,通过实际项目来熟悉API和流程。 7. **官方文档**:查阅TensorFlow官方文档(https://tensorflow.org/)是很关键的,它提供了详细的教程、API参考和案例研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值