Tensorflow基础

TensorFlow 简介

TensorFlow 是一个使用数据流图进行数值计算的开放源代码软件库。图中的节点代表数学运算而图中的边则代表在这些节点之间传递的多维数组(张量)。借助这种灵活的架构,可以通过一个 API 将计算工作部署到桌面设备、服务器或移动设备中的一个或多个 CPU 或 GPU。TensorFlow 最初是由 Google Brain 团队(隶属于 Google 机器智能研究部门)中的研究人员和工程师开发的,旨在用于进行机器学习和深度神经网络研究。但该系统具有很好的通用性,还可以应用于众多其他领域。

tensorflow是通过计算图的形式来表达计算的编程系统,计算图也叫数据流图,可把计算图看做一个有向图,tensorflow中的每个计算都是计算图上的一个节点,节点之间的边描述了计算之间的依赖关系。
为了理解Tensorflow,首先要明确以下几点:

  • 使用图 (graph) 来表示计算任务.
  • 在被称之为 会话 (Session) 的上下文 (context) 中执行图.
  • 使用 tensor 表示数据.
  • 通过 变量 (Variable) 维护状态.

数据流图 Data Flow Graphs

Tensorflow将计算与执行分离开来:

  1. 创建一张图,定义好图中的计算
  2. 使用session(会话)去执行图中的计算
    在这里插入图片描述

什么是tensor

tensor 看作是一个 n 维的数组或列表.

0-d tensor: scalar(number)
1-d tensor: vector
2-d tensor: matrix

and so on

实例理解数据流图

执行下面并不会输出8,而是输出tensor相关信息

import tensorflow as tf
a = tf.add(3, 5)
print(a)

output:

Tensor("Add:0", shape=(), dtype=int32)

在这里插入图片描述
需要创建一个session,然后在session计算图,取出a的值

import tensorflow as tf
a = tf.add(3, 5)
# create a session, assign it to variable sess so we can call it later
sess = tf.Session()
# within the session,evaluate the graph to fetch the value of a
print(sess.run(a))
sess.close()

output:

8

在这里插入图片描述
为了取回操作的输出内容, 可以在使用 Session 对象的 run() 调用 执行图时, 传入一些 tensor, 这些 tensor 会帮助你取回结果. 在之前的例子里, 我们只取回了单个节点 state, 但是你也可以取回多个 tensor:

input1 = tf.constant(3.0)
input2 = tf.constant(2.0)
input3 = tf.constant(5.0)

intermed = tf.add(input2, input3)
mul = tf.multiply(input1, intermed)

with tf.Session() as sess:
    result = sess.run([mul, intermed])
    print(result)

output:

[21.0, 7.0]

需要获取的多个 tensor 值,在图中的节点op(operation 的缩写)的.一次运行中一起获得(而不是逐个去获取 tensor)

tf.Session().run()函数参数

run(fetches, feed_dict=None, options=None, run_metadata=None)

tf.Session().run() 执行 fetches 中的操作,计算 fetches 中的张量值。

这个函数执行一步 TensorFlow 运算,通过运行必要的图块来执行每一个操作,并且计算每一个 fetches 中的张量的值,用相关的输入变量替换 feed_dict 中的值。

fetches 参数可能是一个单一图元素,或者任意嵌套列表,元组,namedtuple,字典,或者有序字典在叶子中包含图元素。

返回值为fetches的执行结果。
如果fetches是一个元素就返回一个值;若fetches是一个list,则返回list的值,若fetches是一个字典类型,则返回和fetches同keys的字典。

参考文献:https://www.jianshu.com/p/c2692590e00f

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tensorflow是一个开源的机器学习框架,由Google开发。它被广泛应用于深度学习、神经网络和其他机器学习算法的开发和部署。 以下是Tensorflow基础训练的步骤: 1. 安装Tensorflow Tensorflow可以通过pip命令安装。在命令行中输入以下命令即可: pip install tensorflow 2. 创建TensorflowTensorflow中,是指一系列的操作。创建的第一步是创建一个空白的,然后向其中添加操作。在Tensorflow中,所有的操作都是节点,它们可以接受输入并产生输出。以下是创建一个简单的的示例: import tensorflow as tf # 创建一个空白的 graph = tf.Graph() # 向中添加节点 with graph.as_default(): a = tf.constant(5) b = tf.constant(2) c = tf.add(a, b) 3. 运行TensorflowTensorflow中,我们需要创建一个会话来运行。会话是Tensorflow中用于执行的对象。我们可以使用会话执行中的操作,并获取它们的输出。以下是运行上面创建的的示例: import tensorflow as tf # 创建一个 graph = tf.Graph() # 向中添加节点 with graph.as_default(): a = tf.constant(5) b = tf.constant(2) c = tf.add(a, b) # 创建一个会话 with tf.Session(graph=graph) as session: # 运行中的操作 result = session.run(c) print(result) 输出结果为: 7 4. 使用Tensorflow变量 在Tensorflow中,变量是指可以在中持久化存储的值。我们可以使用变量来存储模型的参数。以下是创建和使用Tensorflow变量的示例: import tensorflow as tf # 创建一个变量 x = tf.Variable(0, name='counter') # 创建一个操作 increment_op = tf.assign(x, x+1) # 创建一个会话 with tf.Session() as session: # 初始化变量 session.run(tf.global_variables_initializer()) # 运行操作 print(session.run(increment_op)) print(session.run(increment_op)) print(session.run(increment_op)) 输出结果为: 1 2 3 5. 保存和加载Tensorflow模型 在Tensorflow中,我们可以使用Saver对象将模型保存到磁盘上,并在需要时加载它们。以下是保存和加载Tensorflow模型的示例: import tensorflow as tf # 创建一个变量 x = tf.Variable(0, name='counter') # 创建一个操作 increment_op = tf.assign(x, x+1) # 创建一个Saver对象 saver = tf.train.Saver() # 创建一个会话 with tf.Session() as session: # 初始化变量 session.run(tf.global_variables_initializer()) # 运行操作 print(session.run(increment_op)) print(session.run(increment_op)) print(session.run(increment_op)) # 保存模型 saver.save(session, 'my-model') # 加载模型 with tf.Session() as session: # 加载模型 saver.restore(session, 'my-model') # 运行操作 print(session.run(increment_op)) print(session.run(increment_op)) print(session.run(increment_op)) 输出结果为: 1 2 3 4 5 6 以上就是Tensorflow基础训练的步骤。Tensorflow是一个非常强大的机器学习框架,它提供了丰富的工具和函数库,可以帮助我们开发和部署各种机器学习模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值