TensorFlow笔记——OP
标签: tensorflow
-
前言
tensorflow是一个符号式编程框架,需要定义graph,然后用一个session来运行这个graph得到结果
在graph中,我们需要定义数据和操作
其中,数据就是Tensor对象;而操作就是Operation对象,简称OP
记住这两点
-
常见OP

区分一下操作函数与操作对象:
先举个例子:
import tensorflow as tf
def op_demo():
a = tf.constant(5)
print("a:\n",a)
return None
if __name__ == "__main__":
op_demo()
在上述程序中:
a = tf.constant(5)
tf.constant()是操作函数,该函数所做的是创建一个常数
上述程序的输出结果:
a:
Tensor("Const:0", shape=(), dtype=int32)
其中的Const就是一个操作对象
那操作函数和操作对象之间有什么联系呢?
在调用操作函数时,如上面的tf.constant(),一般会传入Tensor对象(数据),如上面的5
在调用操作函数的过程中,会生成一个操作对象,如上面的Const
一个操作对象是TensorFlow图中的一个节点,可以接受0个或多个输入Tensor对象,并且可以输出0个或多个Tensor对象
拿上面的例子来说的话,Const接受了5这个Tensor对象,然后输出了5这个Tensor对象。
赋值可能不太好理解,以加法为例
import tensorflow as tf
a = tf.constant(5)
b = tf.constant(6)
c = tf.add(a,b)
print("a:\n",a)
print("b:\n",b)
print("c:\n",c)
tf.add(5,6)创建了一个操作对象Add,操作对象Add的输入为5,6,经过加法操作之后,Add这个对象输出为11,通过tf.add()这个操作函数返回看下程序输出结果:
a:
Tensor("Const:0", shape=(), dtype=int32)
b:
Tensor("Const_1:0", shape=(), dtype=int32)
c:
Tensor("Add:0", shape=(), dtype=int32)
操作对象是通过操作函数产生
注意,打印出来的是张量值,可以理解为OP中包含了这个值,并且每一个OP指令都对应一个唯一的名称,如上面的Const,Const_1
智能推荐
图解TensorFlow op:tf.nn.depth_to_space
田海立@CSDN 2020-10-20 TensorFlow算子depth_to_space的官方说明文档写得很简单,从中获取不到真正的执行方式,对于复杂的情况也就无从得知运算结果。本文用图文的方式来解释该算子运算的方式。 零、基础知识 阅读本文,你需要知道下列基本知识,可以从笔者之前的博文中了解: 《数据的NCHW/NHWC排布方式》 用到数据的NHWC...
tensorflow006_变量op及tensorboard可视化学习
一,变量的的创建、初始化、保存和加载 其实变量的作用在语言中相当,都有存储一些临时值的作用或者长久存储。在Tensorflow中当训练模型时,用变量来存储和更新参数。变量包含张量(Tensor)存放于内存的缓存区。建模时它们需要被明确地初始化,模型训练后它们必须被存储到磁盘。值可在之后模型训练和分析是被加载。 1,变量的创建 创建当一个变量时,将你一个张量作为初始值传入构造函数Variable()...
Python TensorFlow,计算图,创建计算图,Graph,运算操作(op)
TensorFlow中封装的函数基本上都是运算操作(op): demo.py(计算图,创建计算图,Graph): ...
冒泡排序,及改进方式,性能优化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...
git 设置 gitignore 忽略 __pycache__
清除git缓存中的pycache 直接删掉硬盘上的文件 如果我想保留硬盘上的这个文件,而只删除版本管理中的文件,就需要加入--cached参数。 切换分支出现问题 尽管我已经删除了__pycache__,硬盘也没有了,但是切换分支的时候依然是会提示本地重写的情况。 提示:需要我在切换分支之前,提交一次更新。 提交了更新之后,再来尝试切换分支,如下: 成功了,说明当做了任何变更之后,切换分支前需要执...
人生苦短,我用Python(二)— 爬取会议网站 EasyChair Smart CFP
寒假留校帮学长写了个爬虫,抓取会议网站上一些CFP信息。想着把一些知识点、坑点记下来,一来做个小总结给工作收收尾,二是以后再遇到好从容应对。 这是我写的第二个比较完善的爬虫了,比第一个要简单许多,完全过程化的代码,而且easychair这个网站页面布局比较友好,适合python新手、前端小白入门练习。但这个网站反爬比较厉害,写爬虫的过程中就被ban了好几次…… 制定抓取...
