Tensorflow2 math常用操作_tensorflow round floor等_Lee'La的博客-程序员宅基地

技术标签: tensorflow  python  tensorflow2.0学习  

Tensorflow2 math常用操作

张量的二元操作可以进行广播,与numpy的广播规则一样

一、tf.math

1.abs

返回张量的绝对值,输出类型、形状与输入一致

tf.math.abs(
    x,
    name=None
)
a = tf.constant([[1, 2, -1], [4, -3, 2]], dtype=tf.float32)
tf.abs(a)
>>>
<tf.Tensor: id=4, shape=(2, 3), dtype=float32, numpy=
array([[1., 2., 1.],
       [4., 3., 2.]], dtype=float32)>

2.accumulate_n

add_n(),对多个张量对应位置求和

a = tf.constant([[1, 2], [3, 4]])
b = tf.constant([[5, 0], [0, 6]])
tf.math.accumulate_n([a, b, a])  # [[7, 4], [6, 14]]

# Explicitly pass shape and type
tf.math.accumulate_n([a, b, a], shape=[2, 2], tensor_dtype=tf.int32) # [[7,  4],[6, 14]]

3.add

x和y对应元素相加,相当于+

tf.math.add(
    x,
    y,
    name=None
)

4.add_n

accumulate_n()

5.argmax

返回张量沿某一轴的最大值的下标

tf.math.argmax(
    input,
    axis=None,
    output_type=tf.dtypes.int64,
    name=None
)
A=tf.constant([2,20,30,3,6]) # Constant 1-D Tensor
tf.math.argmax(A) # output 2 as index 2 (A[2]) is maximum in tensor A
B=tf.constant([[2,20,30,3,6],[3,11,16,1,8],[14,45,23,5,27]])
tf.math.argmax(B,0) # [2, 2, 0, 2, 2]
tf.math.argmax(B,1) # [2, 2, 1]

axis原则

设axis=i ,则numpy沿着第i个下标变化的方向进行操作;所以,axis=0时,按列操作

6.argmin

argmax()类似

7.bincount

8.ceil

对每个元素向上取整

输入类型必须是float

tf.math.ceil(
    x,
    name=None
)

9.floor和round

floor: 向下取整

round: 最近取整

10.confusion_matrix

计算标签和输出的混淆矩阵

tf.math.confusion_matrix(
    labels,
    predictions,
    num_classes=None,
    weights=None,
    dtype=tf.dtypes.int32,
    name=None
)
# num_class自动计算为4+1,标签自动假定为[0, 1, 2, 3, 4]
tf.math.confusion_matrix([1, 2, 4], [2, 2, 4]) ==>
      [[0 0 0 0 0]
       [0 0 1 0 0]
       [0 0 1 0 0]
       [0 0 0 0 0]
       [0 0 0 0 1]]

11. equal

x = tf.constant([2, 4]) 
y = tf.constant([2, 4]) 
tf.math.equal(x, y) 
>>>
<tf.Tensor: id=96, shape=(2,), dtype=bool, numpy=array([ True,  True])>

12. 逻辑操作

logical_andlogical_orlogical_notlogical_xor

x = tf.constant([False, False, True, True], dtype = tf.bool)
y = tf.constant([False, True, False, True], dtype = tf.bool)
z = tf.logical_xor(x, y, name="LogicalXor")
#  here z = [False  True  True False]

13. maximum和minimum

返回元素级 x > y ? x : y 结果

tf.math.maximum(
    x,
    y,
    name=None
)
x = tf.constant([[1, 3], [3, 2]], dtype=tf.float32)
y = tf.constant([[2, 3], [0, 4]], dtype=tf.float32)
tf.maximum(x, y)
>>>
<tf.Tensor: id=106, shape=(2, 2), dtype=float32, numpy=
array([[2., 3.],
       [3., 4.]], dtype=float32)>

14.pow

指数运算,相当于 x**y

tf.math.pow(
    x,
    y,
    name=None
)
x = tf.constant([[2, 2], [3, 3]])
y = tf.constant([[8, 16], [2, 3]])
tf.pow(x, y)  # [[256, 65536], [9, 27]]

15.reduce_max和reduce_min

张量沿某一轴的最大或最小值

设置keepdims=True,保持维度

tf.math.reduce_max(
    input_tensor,
    axis=None,
    keepdims=False,
    name=None
)
x = tf.constant([[1, 3], [5, 2]], dtype=tf.float32)
tf.reduce_max(x, axis=0)
>>>
<tf.Tensor: id=137, shape=(2,), dtype=float32, numpy=array([5., 3.], dtype=float32)>

tf.reduce_max(x, axis=0, keepdims=True)
>>>
<tf.Tensor: id=143, shape=(1, 2), dtype=float32, numpy=array([[5., 3.]], dtype=float32)>

16.reduce_mean和reduce_sum

沿张量某一轴求平均值/和

17.top_k

返回最后一维上的前K大的值和下标

tf.math.top_k(
    input,
    k=1,
    sorted=True,
    name=None
)

x = tf.constant([[1, 3], [5, 2]], dtype=tf.float32)
v, i =tf.math.top_k(x, 1)
print(v)
print(i)
>>>
tf.Tensor(
[[3.]
 [5.]], shape=(2, 1), dtype=float32) tf.Tensor(
[[1]
 [0]], shape=(2, 1), dtype=int32)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/BB_Snaill/article/details/104381765

智能推荐

python:序列的增量赋值_python增量赋值_弈鸣coding的博客-程序员宅基地

+=背后的特殊方法是__iadd__(用于就地加法),若a实现了iadd的方法就会调用这个方法,如果没实现,则a+=b这个表达式的效果就是a = a+b一样:首先计算a+b 得到一个性的对象,然后赋值给a也就是说在这个过程中,变量名会不会被关联到新的对象,完全取决于这个类型有没有实现__iadd__这个方法可变序列一般都实现了这个方法,也就是说+=就是就地加法。而不可序列不支持这个操作不可变序列l = (1, 2, 4)print(id(l))l = l*2print(id(l))l*=_python增量赋值

python基础 运算符和字符串_python运输符与字符串-程序员宅基地

#斜体表示不熟悉的知识点链式赋值x=y=123, x=123,y=123系列解包赋值a,b,c=4,5,6类型介绍(type)整数:10/浮点:3.14/布尔:True/字符串:“sxt”数字运算符:浮点除法:/,整除://,取余数:%,幂:**,同时取得商和余数:divmod,返回的是元组十进制转化为二进制:转化原理:|0|0||1|1||2|10| 2^1+0..._python运输符与字符串

《Code》简述与体会——第1、2、3章节_请撰写阅读本书/练习完本书所提供的code之后的感想._Humble750的博客-程序员宅基地

翻开书的第一章,看到了标题“至亲密友”,就让人觉得很有意思。作者Charles Petzold为了让你理解莫尔斯电码,借两个人在晚上用手电筒相互交流的例子,过后有一刻就会点亮了的大脑。难怪我们在谍战片中能经常听到情报员在发情报时”滴滴嗒嗒”的响声,现在看来或许已经解开了。这一章节的最后呢,有一句引起了我的好奇,“事实上,两个不同的事物,只要经过适当的组合,就可以表示所型的信息”。通过读这本书或者你..._请撰写阅读本书/练习完本书所提供的code之后的感想.

战略支援部队信息工程大学的计算机类,中国顶尖的两大“信息工程”高校翻新,南信大、军信大要崛起?..._Fok Wayne的博客-程序员宅基地

【科学世界博览】教育品质专文:“中国顶尖的两所信息工程大学翻新,南信大、军信大要崛起”,值此发布之际,林瑜伽老师携手教育团队,诚挚欢迎同学们点击上方“蓝字”,触控“科学教育”的前沿新知识,专注把握“大学”发展的时代脉搏,感知不同高校的优势专业,领略不同区域的发展前景,选择适合自己发展的顶尖专业高校。提起“信息工程大学”,同学们的脑海中浮现的第一所大学是谁呢?是南京信息工程大学,还是解放军信息工程大..._南京战略志愿信息工程大学

2021.10.28_meshindex* 和meshindex* 数组怎么区分-程序员宅基地

2021SC@SDUSCClass Texture纹理对象。存储在CPU上,渲染图形时使用。Properties:IsNormalMap返回布尔值,是否为一个normal map。MethodsFromFile(String,Boolean)从图像文件中加载纹理,并创建虚拟纹理对象。支持的文件格式取决于运行平台。所有平台都支持加载 PNG、 BMP、 TGA、 HDR 和 JPEG 文件。参数里面路径自不必说,另一个布尔值代表是否创建bipmap。返回_meshindex* 和meshindex* 数组怎么区分

Activation_function_zh_JNU的博客-程序员宅基地

import numpy as npdef Sigmoid(input): return 1.0/(1.0+np.exp(-input))def Tanh(input): return np.tanh(input)def Relu(input): return np.maximum(0.0,input)def Liner(input): return inp...

随便推点

八年测试薪水被应届生倒挂,32岁裸辞了,闭关三个月拿到阿里Offer,定级 P7_32岁 p7_自动化软件测试的博客-程序员宅基地

测试技术更迭速度快,如果不想被淘汰,就要掌握主动权,而主动权只有两个字:进阶。所谓进阶,不仅是技术层面需要掌握当下像腾讯,阿里巴巴,字节跳动这些大厂看重和常用的技术,还要懂得底层原理。下面我将会根据这些来进行知识点的整理,和自己对作为一名高级测试需要掌握那些技能的笔记分享,希望能帮助到有心在技术这条道路上一路走到底的朋友!..._32岁 p7

Javascript的调试利器:Firebug使用详解(转)_weiythi的博客-程序员宅基地

(转:天晓得的专栏)Javascript的调试,是开发Web应用尤其是AJAX应用很重要的一环,目前对Javascript进行调试的工具很多,我比较喜欢使用的是Firebug。Firebug是Joe Hewitt开发的一套与Firefox集成在一起的功能强大的web开发工具,可以实时编辑、调试和监测任何页面的CSS、HTML和JavaScript。本文主要是为初学者介绍一下Firebug的

如何处理编码GBK的不可映射字符_Mar.三月的博客-程序员宅基地

使用Sublime编写的JAVA程序中若含中文字符时,在CMD下编译是会出现:错误:编码GBK的不可映射字符;怎么解决了,问度娘呗,哈哈!通过百度可以找到以下几种解决办法:1,javac -encoding UTF-8 XX.java使用-encoding参数指明编码方式。详情请猛戳:http://zhidao.baidu.com/link?url=fvgJcWsADRLv1cMARNacU94T...

【spring-security】/j_spring_security_logout 404_Aldom的博客-程序员宅基地

场景:使用spring-security时,请求/j_spring_security_logout报http404原因:spring-security4.x版本需要自己手动在logout标签加上logout-url=“/j_spring_security_logout”spring-security3.x版本不需要手动加,spring-security默认处理解决:

springboot优缺点_springboot有哪些优缺点_普通网友的博客-程序员宅基地

(一)优点:1,配置变得简单了2,.springboot内嵌了servlet容器,降低了对环境的要求,机器有java运行环境,可以将项目打包成jar包,通过java命令 java -jar ***.jar 来执行。3,.快速整合第三方框架,无需配置文件4.解决了Spring的弊端5.代码少了、配置文件少了、不需要对第三方框架烦恼了、项目精简了,对整个团队的开发及维护来说,更大的节约了成本。6.使用Java或Groovy开发基于Spring的应用程序非常容易。7.它减少了大量的开发时间并提高了生_springboot有哪些优缺点

Vue项目中加载速度慢会看见花括号时的解决方案_明扬.的博客-程序员宅基地

1. 指令 v-cloak====》 防止闪烁(用在比较大的段落)属性选择器=====》

推荐文章

热门文章

相关标签