博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tensorflow - tf常用函数使用(持续更新中)
阅读量:5248 次
发布时间:2019-06-14

本文共 2290 字,大约阅读时间需要 7 分钟。

本人较懒,故间断更新下常用的tf函数以供参考: 

 

一、tf.reduce_sum( )

reduce_sum( ) 个人理解是降维求和函数,在 tensorflow 里面,计算的都是 tensor,可以通过调整 axis 的维度来控制求和维度。

参数:

  • input_tensor:要减少的张量.应该有数字类型.
  • axis:要减小的尺寸.如果为None(默认),则缩小所有尺寸.必须在范围[-rank(input_tensor), rank(input_tensor))内.
  • keep_dims:如果为true,则保留长度为1的缩小尺寸.
  • name:操作的名称(可选).
  • reduction_indices:axis的废弃的名称.

返回:

该函数返回减少的张量.

numpy兼容性

相当于np.sum;

 

此处axis为tensor的阶数,使用该函数将消除tensor指定的阶axis,同时将该阶下的所有的元素进行累积求和操作。

看一个官方示例:

x = tf.constant([[1, 1, 1], [1, 1, 1]])tf.reduce_sum(x)  # 6tf.reduce_sum(x, 0)  # [2, 2, 2]tf.reduce_sum(x, 1)  # [3, 3]tf.reduce_sum(x, 1, keep_dims=True)  # [[3], [3]]tf.reduce_sum(x, [0, 1])  # 6

此函数计算一个张量的各个维度上元素的总和. 

函数中的input_tensor是按照axis中已经给定的维度来减少的;除非 keep_dims 是true,否则张量的秩将在axis的每个条目中减少1;如果keep_dims为true,则减小的维度将保留为长度1. 

如果axis没有条目,则缩小所有维度,并返回具有单个元素的张量.

 

 二、tf.ones_like | tf.zeros_like

tf.ones_like(tensor,dype=None,name=None)

tf.zeros_like(tensor,dype=None,name=None)
新建一个与给定的tensor类型大小一致的tensor,其所有元素为1和0,示例如下:

tensor=[[1, 2, 3], [4, 5, 6]] x = tf.ones_like(tensor) print(sess.run(x))#[[1 1 1],# [1 1 1]]

 

三、tf.reduce_mean()

tf.reduce_mean 函数用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值。

reduce_mean(input_tensor,                axis=None,                keep_dims=False,                name=None,                reduction_indices=None)

第一个参数input_tensor: 输入的待降维的tensor;

第二个参数axis: 指定的轴,如果不指定,则计算所有元素的均值;
第三个参数keep_dims:是否降维度,设置为True,输出的结果保持输入tensor的形状,设置为False,输出结果会降低维度;
第四个参数name: 操作的名称;
第五个参数 reduction_indices:在以前版本中用来指定轴,已弃用;

以一个维度是2,形状是[2,3]的tensor举例:

import tensorflow as tf x = [[1,2,3],      [1,2,3]] xx = tf.cast(x,tf.float32) mean_all = tf.reduce_mean(xx, keep_dims=False)mean_0 = tf.reduce_mean(xx, axis=0, keep_dims=False)mean_1 = tf.reduce_mean(xx, axis=1, keep_dims=False)  with tf.Session() as sess:    m_a,m_0,m_1 = sess.run([mean_all, mean_0, mean_1]) print m_a    # output: 2.0print m_0    # output: [ 1.  2.  3.]print m_1    #output:  [ 2.  2.]

如果设置保持原来的张量的维度,keep_dims=True ,结果:

print m_a    # output: [[ 2.]]print m_0    # output: [[ 1.  2.  3.]]print m_1    #output:  [[ 2.], [ 2.]]

 

类似的函数还有:

  • tf.reduce_sum :计算tensor指定轴方向上的所有元素的累加和;
  • tf.reduce_max  :  计算tensor指定轴方向上的各个元素的最大值;
  • tf.reduce_all :  计算tensor指定轴方向上的各个元素的逻辑和(and运算);
  • tf.reduce_any:  计算tensor指定轴方向上的各个元素的逻辑或(or运算);

 

转载于:https://www.cnblogs.com/Jesee/p/11455697.html

你可能感兴趣的文章
周末总结
查看>>
雌激素促进剂 Estro-Mend 90 Capsules1
查看>>
synchronize 关键字原理
查看>>
list删除、集合遍历删除
查看>>
iOS设计模式——委托(delegate)
查看>>
Java ee 之 html/css样式复习
查看>>
为树莓派3B添加LCD1602液晶屏
查看>>
linux下echo命令详解
查看>>
Java基础_正则表达
查看>>
centos 更新linux内核
查看>>
GYM 101964 C(二分答案)
查看>>
python中定义函数时,self怎么理解:
查看>>
经典SQL查询语句大全
查看>>
字典项(英文转中文)
查看>>
【图表库】 Highchart / Echart 常见问题
查看>>
趣谈Java变量的可见性问题
查看>>
图标字体制作 -- 将SVG制作成图标字体文件,通过引入使用
查看>>
为Eclipse添加C/C++开发工具
查看>>
杭州互联网公司汇总
查看>>
Sublime text3 注册失效解决方法
查看>>