tensorflow学习一:基本使用

tensorflow1.5.0在线安装 Tensorflow的安装可连接互联网1.安装python这里通过Anaconda 3来进行安装。从Anaconda官网下载安装包来进行安装。系统自带安装了python3.6.1。随后可以通过cmd键入python -V来查询。C:\>python -V 执行结果如下:Python 3.6.1 :: Anaconda 4.4.0(64-bit) 如果系统显示无法执行,或者不认识python.... 阅读详情

明白tensorflow:

使用图(graph)来表示计算任务;

在被称为会话(Session)的上下文(context)中执行图;

使用tensor表示数据;

通过变量(Variable)维护状态;

使用feed和fetch可以为任意的操作(arbitrary operation)赋值或者从中获取数据。

综述:

TensorFlow 是一个编程系统, 使用图来表示计算任务. 图中的节点被称之为 op (operation 的缩写). 一个 op 获得 0 个或多个 Tensor, 执行计算, 产生 0 个或多个 Tensor. 每个 Tensor 是一个类型化的多维数组. 例如, 你可以将一小组图像集表示为一个四维浮点数数组, 这四个维度分别是 [batch, height, width, channels].

一个 TensorFlow 图描述了计算的过程. 为了进行计算, 图必须在 会话 里被启动. 会话 将图的 op 分发到诸如 CPU 或 GPU 之类的 设备 上, 同时提供执行 op 的方法. 这些方法执行后, 将产生的 tensor 返回. 在 Python 语言中, 返回的 tensor 是 numpy ndarray 对象; 在 C 和 C++ 语言中, 返回的 tensor 是tensorflow::Tensor 实例.

计算图:

TensorFlow 程序通常被组织成一个构建阶段和一个执行阶段. 在构建阶段, op 的执行步骤 被描述成一个图. 在执行阶段, 使用会话执行执行图中的 op.

例如, 通常在构建阶段创建一个图来表示和训练神经网络, 然后在执行阶段反复执行图中的训练 op.

TensorFlow 支持 C, C++, Python 编程语言. 目前, TensorFlow 的 Python 库更加易用, 它提供了大量的辅助函数来简化构建图的工作, 这些函数尚未被 C 和 C++ 库支持.

三种语言的会话库 (session libraries) 是一致的

构建图:

构建图的第一步, 是创建源 op (source op). 源 op 不需要任何输入, 例如 常量 (Constant). 源 op 的输出被传递给其它 op 做运算.

Python 库中, op 构造器的返回值代表被构造出的 op 的输出, 这些返回值可以传递给其它 op 构造器作为输入.

TensorFlow Python 库有一个默认图 (default graph), op 构造器可以为其增加节点. 这个默认图对 许多程序来说已经足够用了. 阅读 graph类 文档 来了解如何管理多个图.

import tensorflow as tf

# 创建一个常量 op, 产生一个 1x2 矩阵. 这个 op 被作为一个节点
# 加到默认图中.
#
# 构造器的返回值代表该常量 op 的返回值.
matrix1 = tf.constant([[3., 3.]])

# 创建另外一个常量 op, 产生一个 2x1 矩阵.
matrix2 = tf.constant([[2.],[2.]])

# 创建一个矩阵乘法 matmul op , 把 'matrix1' 和 'matrix2' 作为输入.
# 返回值 'product' 代表矩阵乘法的结果.
product = tf.matmul(matrix1, matrix2)

默认图现在有三个节点, 两个 constant() op, 和一个matmul() op. 为了真正进行矩阵相乘运算, 并得到矩阵乘法的 结果, 你必须在会话里启动这个图.

在一个绘画中启动图:

构造阶段完成后, 才能启动图. 启动图的第一步是创建一个 Session 对象, 如果无任何创建参数, 会话构造器将启动默认图.

欲了解完整的会话 API, 请阅读Session 类.

# 启动默认图.
sess = tf.Session()

# 调用 sess 的 'run()' 方法来执行矩阵乘法 op, 传入 'product' 作为该方法的参数. 
# 上面提到, 'product' 代表了矩阵乘法 op 的输出, 传入它是向方法表明, 我们希望取回
# 矩阵乘法 op 的输出.
#
# 整个执行过程是自动化的, 会话负责传递 op 所需的全部输入. op 通常是并发执行的.
# 
# 函数调用 'run(product)' 触发了图中三个 op (两个常量 op 和一个矩阵乘法 op) 的执行.
#
# 返回值 'result' 是一个 numpy `ndarray` 对象.
result = sess.run(product)
print result
# ==> [[ 12.]]

# 任务完成, 关闭会话.
sess.close()

Session 对象在使用完后需要关闭以释放资源. 除了显式调用 close 外, 也可以使用 "with" 代码块 来自动完成关闭动作.

with tf.Session() as sess:
  result = sess.run([product])
  print result

在实现上, TensorFlow 将图形定义转换成分布式执行的操作, 以充分利用可用的计算资源(如 CPU 或 GPU). 一般你不需要显式指定使用 CPU 还是 GPU, TensorFlow 能自动检测. 如果检测到 GPU, TensorFlow 会尽可能地利用找到的第一个 GPU 来执行操作.

如果机器上有超过一个可用的 GPU, 除第一个外的其它 GPU 默认是不参与计算的. 为了让 TensorFlow 使用这些 GPU, 你必须将 op 明确指派给它们执行. with...Device 语句用来指派特定的 CPU 或 GPU 执行操作:

with tf.Session() as sess:
  with tf.device("/gpu:1"):
    matrix1 = tf.constant([[3., 3.]])
    matrix2 = tf.constant([[2.],[2.]])
    product = tf.matmul(matrix1, matrix2)
    ...

设备用字符串进行标识. 目前支持的设备包括:

  • "/cpu:0": 机器的 CPU.
  • "/gpu:0": 机器的第一个 GPU, 如果有的话.
  • "/gpu:1": 机器的第二个 GPU, 以此类推.

阅读使用GPU章节, 了解 TensorFlow GPU 使用的更多信息.

交互式使用:

文档中的 Python 示例使用一个会话 Session 来 启动图, 并调用 Session.run() 方法执行操作.

为了便于使用诸如 IPython 之类的 Python 交互环境, 可以使用 InteractiveSession 代替 Session 类, 使用 Tensor.eval() 和 Operation.run() 方法代替 Session.run(). 这样可以避免使用一个变量来持有会话.

# 进入一个交互式 TensorFlow 会话.
import tensorflow as tf
sess = tf.InteractiveSession()

x = tf.Variable([1.0, 2.0])
a = tf.constant([3.0, 3.0])

# 使用初始化器 initializer op 的 run() 方法初始化 'x' 
x.initializer.run()

# 增加一个减法 sub op, 从 'x' 减去 'a'. 运行减法 op, 输出结果 
sub = tf.sub(x, a)
print sub.eval()
# ==> [-2. -1.]

Tensor:

TensorFlow 程序使用 tensor 数据结构来代表所有的数据, 计算图中, 操作间传递的数据都是 tensor. 你可以把 TensorFlow tensor 看作是一个 n 维的数组或列表. 一个 tensor 包含一个静态类型 rank, 和 一个 shape. 想了解 TensorFlow 是如何处理这些概念的, 参见 Rank, Shape, 和 Type.

变量:

变量维护图执行过程中的状态信息. 下面的例子演示了如何使用变量实现一个简单的计数器. 参见变量章节了解更多细节.

# 创建一个变量, 初始化为标量 0.
state = tf.Variable(0, name="counter")

# 创建一个 op, 其作用是使 state 增加 1

one = tf.constant(1)
new_value = tf.add(state, one)
update = tf.assign(state, new_value)

# 启动图后, 变量必须先经过`初始化` (init) op 初始化,
# 首先必须增加一个`初始化` op 到图中.
init_op = tf.initialize_all_variables()

# 启动图, 运行 op
with tf.Session() as sess:
  # 运行 'init' op
  sess.run(init_op)
  # 打印 'state' 的初始值
  print sess.run(state)
  # 运行 op, 更新 'state', 并打印 'state'
  for _ in range(3):
    sess.run(update)
    print sess.run(state)

# 输出:

# 0
# 1
# 2
# 3

代码中 assign() 操作是图所描绘的表达式的一部分, 正如 add() 操作一样. 所以在调用 run() 执行表达式之前, 它并不会真正执行赋值操作.

通常会将一个统计模型中的参数表示为一组变量. 例如, 你可以将一个神经网络的权重作为某个变量存储在一个 tensor 中. 在训练过程中, 通过重复运行训练图, 更新这个 tensor.

Fetch:

为了取回操作的输出内容, 可以在使用 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.mul(input1, intermed)

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

# 输出:
# [array([ 21.], dtype=float32), array([ 7.], dtype=float32)]

需要获取的多个 tensor 值,在 op 的一次运行中一起获得(而不是逐个去获取 tensor)。

feed:

上述示例在计算图中引入了 tensor, 以常量或变量的形式存储. TensorFlow 还提供了 feed 机制, 该机制 可以临时替代图中的任意操作中的 tensor 可以对图中任何操作提交补丁, 直接插入一个 tensor.

feed 使用一个 tensor 值临时替换一个操作的输出结果. 你可以提供 feed 数据作为 run() 调用的参数. feed 只在调用它的方法内有效, 方法结束, feed 就会消失. 最常见的用例是将某些特殊的操作指定为 "feed" 操作, 标记的方法是使用 tf.placeholder() 为这些操作创建占位符.

input1 = tf.placeholder(tf.types.float32)
input2 = tf.placeholder(tf.types.float32)
output = tf.mul(input1, input2)

with tf.Session() as sess:
  print sess.run([output], feed_dict={input1:[7.], input2:[2.]})

# 输出:
# [array([ 14.], dtype=float32)]
如果没有正确提供 feed,  placeholder()  操作将会产生错误. MNIST 全连通 feed 教程 (source code) 给出了一个更大规模的使用 feed 的例子.

win10 Anaconda创建Tensorflow1.5虚拟环境 想在笔记本win10上安装Tensorflow并搭建Faster R-CNN环境 本来看了B站北大公开课的教程安装一路顺畅https://blog.youkuaiyun.com/qq_40728302/article/details/105347188,结果安装好才发现github上的代码是tf1版本的,我却安装了tf2,只好全部删除,重来一遍。 配置环境:win10 + cuda9.0 + VS2015... 阅读详情

相关推荐

TensorFlow学习笔记(一)

最近致力于深度学习,希望在移动领域能够找出更多的应用点.其中TensorFlow作为目前的一个热点值得我们重点关注.

Floating Cat 4万+

Tensorflow基本介绍

本文转自:TensorFlow 官方文档中文版 基本使用 使用 TensorFlow, 你必须明白 TensorFlow: 使用图 (graph) 来表示计算任务.在被称之为 会话 (Session) 的上下文 (context) 中执行图.使用 tensor 表示数据.通过 变量 (Variable) 维护状态.使用 feed 和 fetch 可以为任意的操作(arbitrar

u010385646的专栏 1万+

【入门教程】必看!TensorFlow中文教程:机器学习从零到一

我们在 2018 年就创建了 TensorFlow 的 YT 频道,同时也在将视频同步在了 Youku、Bilibili、腾讯视频等平台上,我们始终有一个愿景,让全世界的更多开发者能够了解与学习机器学习的相关知识。 我们推出了如 Coding TensorFlow 系列,向开发者们展示如何使用 TensorFlow;Made with TensorFlow 系列,展示开发者们使用 TensorFlow 实现的一些奇思妙想,希望鼓励更多开发者创新……同时,我们的内容形式也在不断发展…… 我们始终知道,想要更.

tensorflowforum的博客 3483

Tensorflow卸载安装,和各安装包版本匹配

Tensorflow卸载安装,和各安装包版本匹配 一、Tensorflow卸载 1.前提 由于网上很多神经网络的学习代码都是在1.X版本下运行的,2.X版本会报错。由于无法最终调试成功,所以卸载2.5.0版本的,转而安装1.5.0版本 2.卸载时遇到的问题 使用Anaconda Prompt输入命令pip uninstall tensorflow卸载,但总是会报错:无法访问 3.卸载方法 由于无法妥善解决该问题,故选择卸载高版本的Python3.8.6,安装Python3.6.0,安装方法可参考http

HCHHC的博客 3825

tensorflow1.5基于anaconda环境的创建及简单使用

一、tensorflow环境穿建 1、设置anaconda环境变量 2、进入anaconda启动目录C:\Program Files\ProgramData\Anaconda3\Scripts,打开cmd 3、创建tensorflow沙箱 conda create –n tensorflow python=3.6 或打开anaconda创建 4、激活沙箱 activate tensorflow...

yeyiboy的博客 701

避开ego_planner仿真的第一个坑:深度相机、点云与odom话题配置全指南

本文详细解析了ego_planner仿真中深度相机、点云与odom话题配置的关键问题,帮助开发者避开常见陷阱。从数据流架构到具体配置细节,包括深度相机的内外参匹配、点云数据规范要求以及odom话题的验证方法,提供了全面的实战指南和优化建议。

weixin_30335575的博客 493

TensorFlow 学习(一) 基本介绍

主要应用于:图像识别、聊天对话系统、自然语言处理等。 机器学习:监督学习、无监督学习。算法:分类、回归。线性等 深度学习:神经网络,卷积神经网络(主要图像),循环神经网络(主要自然语言处理)等 TensorFlow 是深度学习框架,其他的比如 caffe 、Pytorch等。 Google brain计划的产物。应用于 AlphaGo,Gmail,等1000多个产品。 于 2015年11...

qq_35200479的博客 538

深信服AF设置安全防护策略

防火墙设置安全防护策略,禁止用户访问指定网站

m0_64423407的博客 4842

TensorFlow学习笔记(一)

TensorFlow学习笔记(一) TensorFlow是利用人工智能神经网络来分析和处理复杂数据结构的系统,是一种支持深度学习的开源软件库,可以实现卷积神经网络(CNN)、循环神经网络(RNN)和深度神经网络(DNN)等经典算法,并在语音识别、自然语言理解、计算机视觉等方面得到了广泛的应用。 TensorFlow借助其灵活的架构,用户可以轻松地将计算工作部署到多种平台(CPU、GPU、TPU)和...

MclarenSenna的博客 612

CTS实战:如何用set_sense优化时钟树平衡(附ICC2避坑指南)

本文深入探讨了在时钟树综合(CTS)中,如何正确使用`set_sense`命令优化时钟树平衡,并对比了其与`set_disable_timing`的本质区别。通过实战案例详细解析了`-stop_propagation`和`-clock_leaf`参数的应用场景,并提供了ICC2工具中的关键避坑指南,帮助后端工程师精准控制时钟拓扑,避免时序分析漏洞。

weixin_28933797的博客 459

AES128加密算法开发(含源码)

本文详解了AES128加密算法的原理与C语言实现。AES128是当前广泛使用的对称加密标准,采用128位密钥和10轮变换,具有高安全性和高效性。文章从算法背景、核心概念(混淆与扩散)入手,详细解析了4×4状态矩阵表示、4个核心变换(字节替换、行移位、列混合、轮密钥加)以及密钥扩展过程。特别针对汽车电子应用场景,如ECU通信加密、车钥匙认证等,说明了AES128在资源受限环境中的优势。通过分步图解和原理剖析,帮助开发者深入理解这一加密标准的技术细节与实现方法。

汽车电子软件开发笔记 2918

tensorflow 源码学习 (一)

作为主流的机器学习框架,tensorflow的提供的接口变化很多,项目代码也比较复杂,为了让自己使用起来更得心应手,所以觉得还是有必要学习一下源码。个人觉得提升编程水平的两种最好方式,一个是自己造轮子,再一个就是阅读源码。 1.版本 2. 整体项目结构 这并不是tensorflow完整的项目结构,而仅仅是python的 tensorf...

儒雅,勤思,博学 631

微服务架构的实施与挑战:前提判断、三种落地模式、收益兑现与风险应对

微服务是用运维复杂度换取演进自由度的一笔交易,是否划算取决于系统复杂度是否越过生产率曲线的交叉点。本文先给出实施前提:微服务溢价的六项成本、四项前置能力、康威定律与领域边界,并附就绪度自检表;再拆解三种落地模式:以绞杀者为代表的渐进剥离与数据五级迁移、以模块化单体起步的绿地建设、新旧并行的混合式集成;随后逐项审视六大技术优势与组织收益的兑现条件,系统梳理分布式谬误、分布式单体、Saga与幂等、弹性容错、可观测性、契约测试等挑战与对策,最后给出四阶段落地路线、DORA四项度量与常见反模式清单。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 172万+

Tensorflow学习总结一

Tensorflow入门 1、基本概念 人工智能 Vs 机器学习 Vs 深度学习 人工智能,就是用机器模拟人的意识和思维。 机器学习,则是实现人工智能的一种方法,是人工智能的子集。 深度学习就是深层次神经网络,是机器学习的一种实现方法,是机器学习的子集。 Tensorflow的特点 用张量表示数据,用计算图搭建神经网络,用会话执行计算图 ,优化线上的权重(参数),得到模型。 张量:张量就是多维数...

weixin_42216171的博客 1569

EMB电子机械制动系统冗余备份方案介绍

随着汽车智能化技术的快速发展,自动驾驶技术的不断升级,对车辆制动系统的可靠性和安全性提出了更高要求。根据国际汽车安全法规(如UN R13-H)的最新修订,L3级及以上自动驾驶车辆必须配备具有冗余功能的制动系统,以确保在任何单一故障发生时仍能维持部分或全部制动能力。本文重点讨论最具前瞻性的EMB(电子机械制动)系统的冗余备份设计方案

m0_59012156的博客 853

EndNote导入文献出现带有大括号{}乱码的解决办法

进入word中的Endnote工具栏——Bibliography Preferences(位于Bibliography区块的右下角),就是那个输入杂志名的小三角形,在Temporary citation delimiters处修改变量的默认符号。将默认的大括号{}修改为文章中不回使用到的符号。原因:因为Endnote插入的参考文献在Word中的代码就是以大括号隔开的,当文章中出现了该符号,endnote就会自动比对Library中的书目,而此时endnote出现错误。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 4万+

Tensorflow源码学习经历(一)

前言 准研一学生,暑假开始学习tensorflow。导师让我学习的不是如何使用TenosrFlow构建机器学习模型,而是把目光放到TensorFlow框架本身上,了解tf框架内部的工作原理。翻阅各类书籍和网站,对源码以及内核工作原理的讲解少之又少。这条学习之路注定困难重重,进度一直停滞不前,于是便想到把每天的所学所得记录下来,也把所有遇到的坑都记录下来。既激励不断向前学习,也方便以后自己回顾复习。...

M_agic_的博客 446

基于Simulink的新能源汽车热管理系统设计与仿真详细介绍

新能源汽车(如纯电动汽车和混合动力汽车)的热管理系统是确保电池、电机和电控系统高效运行的关键。通过合理设计热管理系统,可以提高车辆的续航里程、延长电池寿命并提升整体性能。以下是如何在 MATLAB 和 Simulink 中设计并仿真一个新能源汽车热管理系统的详细步骤。通过上述步骤,我们成功设计并实现了基于 Simulink 的新能源汽车热管理系统。该系统能够根据目标温度和实际反馈,通过 PID 控制器或模糊控制器调整冷却液流量、风扇转速等参数,实现对电池、电机和车内的精确温度控制。

xiaoheshang_123的博客 385

Google Tensorflow总监力荐|一本书掌握谷歌深度学习框架

书中省略了深度学习繁琐的数学模型推导,从实际应用问题出发,通过具体的 TensorFlow 样例程序介绍如何使用深度学习解决这些问题。对人工智能、深度学习感兴趣的计算机相关从业人员,想要使用深度学习或 TensorFlow的数据科学家、工程师,希望了解深度学习的大数据平台工程师,对人工智能、机器学习感兴趣的在校学生,希望找深度学习相关岗位的求职人员,等等。,这本书主要从实战的角度手把手教你使用TensorFlow,实现你想要的功能。​ 5.2 TensorFlow实现简单的卷积网络 80。

python123456_的博客 984

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Tensorflow学习一

Tensorflow学习小例子 import tensorflow as tf import numpy as np x_data = np.random.rand(100).astype(np.float32)#随机生成的数 y_data = x_data*0.1+0.3#要学习的模型 ## create tensorflow structure start...

weixin_43408956的博客 143

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

从 Python到Tensorflow 学习之路(一)

从 Python到Tensorflow 学习之路(一)最近毕业设计题目是研究对抗样本,要用tensorflow来搭建神经网络,因此python必不可少,这个不是一个传统的Python学习教程只是把学习Python过程中遇到的问题和经验记录下来(基于Python2.7),如果想要一步一步学习Python建议看下面的网站。Python学习教程python字符串与C和C++不同,单引号和双引号在括起字符串

无悔王冠的专栏 3万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

深度学习之TensorFlow(一)——基本使用

深度学习之TensorFlow(一)——基本使用 一、目前主流的深度学习框架Caffe, TensorFlow, MXNet, Torch, Theano比较 库名称 开发语言 速度 灵活性 文档 适合模型 平台 上手难易 Caffe c++/cuda 快 一般 全面 CNN 所有系统 ...

张齐贤的博客 2895

Tensorflow 学习一

Tensorflow 采用共享变量的方式训练Yweight*X+bias的代码 #coding=utf-8 import tensorflow as tf import numpy as np # 获取训练数据和测试数据,参数number为一次获取数据的batch的大小 def get_data(number): list_x = [] list_label = [] f...

qq_41561345的博客 154

从零开始学深度学习一:TensorFlow基础

本课程笔记来源于深享网课程《深度学习理论与实战TensorFlow》 一、TensorFlow的介绍 TensorFlow是一种利用数据流图进行数值计算的开源软件库。图中的节点表示数学运算,而图中的边则代表在这些节点之间传递的多维数组(张量)。这种灵活的架构可让你使用一个API将计算工作部署到桌面设备、服务器或者移动设备的一个或多个CPU 、GPU上。 简单的说:TensorFlow是一个深...

Yolo的博客 1806

tensorflow 系统学习一

1.TensorFlow 是什么 TensorFlow 与其他编程语言非常不同 首先通过将程序分为两个独立的部分,构建任何拟创建神经网络的蓝图,包括计算图的定义及其执行。起初这对于传统程序员来说看起来很麻烦,但是正是图定义和执行的分开设计让 TensorFlow 能够多平台工作以及并行执行,TensorFlow 也因此更加强大。 计算图:是包含节点和边的网络。本节定义所有要使用的数据,也就是张量(...

weixin_43585712的博客 363
上一篇: tensorflow的数据流图
下一篇: 图片风格转换《A Neural Algorithm of Artistic Style》
LittleStudent12
博客等级 码龄8年 32粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值