计算机视觉基础系列(python与opencv的操作与运用/tensorflow的基础介绍)(五)---tensorflow的运算

tensorflow的运行机制:

其中tensor就是我们所说的变量等等,而op则是operation是我们常常运用的四则运算法则和赋值操作等等。graphs则是数据操作的过程,就是这些组成了tensorflow。那么tensorflow怎么运算的呢?所有的计算图必须放在session会话中运行,session这是运算的核心。其实初始化操作也可以看作是一个计算图。

常见的加减乘除运算再tensorflow中的运用:(如下代码示例)

import tensorflow as tf
data1 = tf.constant(2, dtype=tf.int32)         # data1定义为常量
data2 = tf.Variable(10, name='var')            # data2定义为变量
data3 = tf.constant(6)
sess = tf.Session()
init = tf.global_variables_initializer()       # 变量初始化
sess.run(init)                                 # 初始化经过会话生效
dataAdd = tf.add(data1, data2)                 # 加减乘除运算
dataMul = tf.multiply(data1, data3)
dataSub = tf.subtract(data2, data3)
dataDiv = tf.divide(data1, data3)
with sess:
    print(sess.run(dataAdd))
    print(sess.run(dataMul))
    print(sess.run(dataSub))
    print(sess.run(dataDiv))
print('end!')

输出的结果为:

我们再来一个小示例如下:

import tensorflow as tf
data1 = tf.constant(2, dtype=tf.int32)         # data1定义为常量
data2 = tf.Variable(10, name='var')            # data2定义为变量
data3 = tf.constant(6)
sess = tf.Session()
init = tf.global_variables_initializer()       # 变量初始化
sess.run(init)                                 # 初始化经过会话生效
dataAdd = tf.add(data1, data2)                 # 加减乘除运算
dataCopy = tf.assign(data2, dataAdd)           # 把当前的结果运算的dataAdd追加到data2中,即data的值为12.dataCopy也为12
dataMul = tf.multiply(data1, data3)
dataSub = tf.subtract(data2, data3)
dataDiv = tf.divide(data1, data3)
with sess:
    print(sess.run(dataAdd))
    print(sess.run(dataMul))
    print(sess.run(dataSub))
    print(sess.run(dataDiv))
    print('sess.run(dataCopy)', sess.run(dataCopy))
    print('dataCopy.eval()', dataCopy.eval())         # 没有放在session中运行,是不是有所矛盾,其实不是这里的值是data1+data2
    print('tf.get_default_session()', tf.get_default_session().run(dataCopy))  # 这里data2的值为12,所以得到这些结果
print('end!')

输出的结果是:

输出这些的原因,代码注释中有详细说明。

版权声明:本文为u012935100原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012935100/article/details/91449775

智能推荐

深度学习与计算机视觉(12)_tensorflow实现基于深度学习的图像补全

原文地址:Image Completion with Deep Learning in TensorFlow by Brandon Amos  原文翻译与校对:@MOLLY && 寒小阳 ([email protected])  时间:2017年4月。  出处:http://blog.csdn.ne...

计算机视觉OpenCV的学习与探究

计算机视觉OpenCV的学习与探究 什么是计算机视觉与OpenCV? OpenCV能做什么? 图像的取样 迭代器 读视频 傅里叶变换 图像滤波(空间域滤波) 卷积 高斯模糊 高斯金字塔–降采样 参考文献 什么是计算机视觉与OpenCV? 计算机视觉 计算机视觉是一门研究如何使机器“看”的科学,指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步...

深度学习与计算机视觉系列(1)_基础介绍

1.背景 计算机视觉/computer vision是一个火了N年的topic。持续化升温的原因也非常简单:在搜索/影像内容理解/医学应用/地图识别等等领域应用太多,大家都有一个愿景『让计算机能够像人一样去”看”一张图片,甚至”读懂”一张图片』。 有几个比较重要的计算机视觉任务,比如图片的分类,物体识别,物体定位于检测等等。而近年来的神经网络/深度学...

计算机视觉:目标检测的发展历程与基础概念

计算机视觉:目标检测的发展历程与基础概念 目标检测发展历程 目标检测基础概念 边界框(bounding box) 锚框(Anchor box) 交并比 对计算机而言,能够“看到”的是图像被编码之后的数字,但它很难理解高层语义概念,比如图像或者视频帧中出现的目标是人还是物体,更无法定位目标出现在图像中哪个区域。目标检测的主要目的是让计算机可以自动识别图片或者视频帧中所有目标的...

计算机视觉——参数矩阵与八点法的运用

文章目录 1基础矩阵 1.1原理 1.2.基础矩阵性质 1.3计算F:八点法 1.4八点算法的基本步骤 1.5八点算法优缺点 2.代码 2.1八点法 3.结果和分析 3.1前后拍摄 3.2平行拍摄 3.3左右拍摄 3.4匹配点不同时的参数矩阵 3.5总结 4.遇到的问题及解决方法 1基础矩阵 1.1原理 对于一幅图像上的点x(图上p1),在另一幅图像上存在对极线l’,并且在第二幅图像上...

猜你喜欢

冒泡排序,及改进方式,性能优化400%>>>附图解加源码

首先源码附上,源码中带有注释,看不懂没关系,源码后面附带图解,最后附上代码效率提升图 源码如下: 方案一:其实实现很简单,两层循环,每次内层迭代出最大的一个值,将其放入数组最后一个位置,外层循环的末端便往前移一位。其原理如下图 方案一代码块: 方案二:优化改进 仔细观察上面的图,我们不难发现当迭代到图下这样的情况时,其实已经全排序好了,但是我们还是需要对它进行1,2,3,4,5,6的迭代,这些情况...

css3常用选择器

先介绍一下基本选择器,如下几种 *:通配符。选择页面的所有元素 E:元素选择器。对页面的一些元素进行选择,如p,div,li等 .class:类选择器 #id:id选择器。一个Id在一个页面中只能选择,这是和类选择器的区别 E F:后代选择器。如ul li。选中ul下的li E>F:子元素选择器。如下,可以用 h1 > strong {color:red;}使h1的子元素strong变...

python is not set from command line or npm configuration

问题 猜测原因  python版本冲突 解决方案  去官网找到最新版本python 点击下载,注意记住你下载的目录,下载好以后,打开这个目录下的文件夹,Python310, 整个文件夹复制一下 在项目里运行npm config list --json 找到python的路径   我的是 C:\\Python27\\python.exe 说明项目里用的还是py...

Java8 Stream流操作

前言 我们常常需要将一个容器转化成另一个容器,或是对这个容器中的数据进行批量处理,这时使用Stream流可以大大减少我们的工作量。 1 Stream概述 Java 8 是一个非常成功的版本,这个版本新增的Stream,配合同版本出现的 Lambda ,给我们操作集合(Collection)提供了极大的便利。 那么什么是Stream? Stream将要处理的元素集合看作一种流,在流的过程中,借助St...

带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑

在Windows下进行C++的开发,不可避免的要与Windows的底层库进行交互,然而VS下的一项设置MT、MTd、MD和MDd却经常让人搞迷糊,相信不少人都被他坑过,特别是你工程使用了很多第三库的时候,及容易出现各种链接问题。看一下下面这个错误提示:  LIBCMT.lib(_file.obj) : error LNK2005: ___initstdio already defined...