函数:

  • tf.compat.v1.pad
  • tf.pad

函数表达式如下:

tf.pad(    tensor,    paddings,    mode='CONSTANT',    name=None,    constant_values=0)

函数用途:对各个维度进行填充,padding

输入:

  •   tensor :是要填充的张量;  shape 维度为 : (N1,N2,N3,...);
  •   padings:填充方式,也是一个张量,shape : (n,2), n :表示需要的pad的tensor的维度个数;
  •   mode:有三种取值:分别是"CONSTANT" ,"REFLECT", "SYMMETRIC",对padding 的维度也有限制,如下padded;
  •      mode="CONSTANT" 是直接填充 constant_values;
  •      mode = "REFLECT" 是轴对称填充(对称轴为边界列),此时constant_values 无效,用tensor 中的值填充;
  • mode = "SYMMETRIC" 是轴对称填充(对称轴为边界线),此时 constant_values 无效,用tensor 中的值填充;
  •   constant_values:要填充的 value 值,默认为0;

padding shape举个例子:

要求:pad 维度为(n,2) n:为tensor 的维度个数; 

第一组:

input tensor,shape【3,4,5】三维 tensor

padding shape:【3,2】

第二组:

input tensor,shape【3,4,5,6】四维 tensor

padding shape:【4,2】

padding 的每一维度,都有两个数,第一个表示前面添加几维度,第二个表示 后面添加几维度;

padded 填充之后的每一维度:

The padded size of each dimension D of the output is:

paddings[D, 0] + tensor.dim_size(D) + paddings[D, 1]

if mode == "REFLECT" or mode == "SYMMETRIC":

paddings[D, 0] +  paddings[D, 1] <= tensor.dim_size(D) - 1

举个例子-》填充后的tensor shape:

tensor shape : (3,5,4)

padding = [[1,1],[2,2],[1,0]]

padded shape: (3+1+1,5+2+2,4+1+0)= (5,9,5)

REFLECT:的填充方式使用的是一种通过对称轴进行对称复制的方式进行填充(复制时不包括对称轴,边界的那一列是对称轴),通过使用tensor边缘作为对称;

SYMMETRIC:的填充方式于REFLECT填充方式类似,也是按照对称轴就是复制的,只是它包括对称轴(边界外的线是对称轴)。

举例一:(来自官方):

 1 t = tf.constant([[1, 2, 3], [4, 5, 6]]) #shape(2,3)
 2 paddings = tf.constant([[1, 1,], [2, 2]]) # shape(2,2),第一维度,前面补一维度,后面补一维度;第二维度,前面补两维度,后面补两维度;
 3 # 'constant_values' is 0.
 4 # rank of 't' is 2.
 5 tf.pad(t, paddings, "CONSTANT")  # [[0, 0, 0, 0, 0, 0, 0],
 6                                  #  [0, 0, 1, 2, 3, 0, 0],
 7                                  #  [0, 0, 4, 5, 6, 0, 0],
 8                                  #  [0, 0, 0, 0, 0, 0, 0]]
 9
10 tf.pad(t, paddings, "REFLECT")  # [[6, 5, 4, 5, 6, 5, 4],
11                                 #  [3, 2, 1, 2, 3, 2, 1],  # 黄色为对称轴
12                                 #  [6, 5, 4, 5, 6, 5, 4],
13                                 #  [3, 2, 1, 2, 3, 2, 1]]
14
15 tf.pad(t, paddings, "SYMMETRIC")  # [[2, 1, 1, 2, 3, 3, 2],
16                                   #  [2, 1, 1, 2, 3, 3, 2], #
17                                   #  [5, 4, 4, 5, 6, 6, 5],
18                                   #  [5, 4, 4, 5, 6, 6, 5]]

举例二:

import tensorflow as tf
import numpy as npm1 = tf.random_normal([1,2,3,4],mean=0.0,stddev=1.0,dtype=tf.float32)m2 = tf.pad(m1,[[2,0],[0,0],[0,0],[0,0]],constant_values = 1)m2_s = tf.shape(m2) # shape(3,2,3,4)

with tf.Session() as sess:print(sess.run(m1))print(sess.run(m2))print(sess.run(m2_s)) 

output:

# m1
[[[[-1.8582115  -1.170714   -0.4478178   2.0172668 ][-0.74805504 -0.08016825 -0.7742696  -0.02516617][-0.8256318   0.591446   -0.00889379  1.7998788 ]][[ 0.00565176 -0.31549874  1.5197186   0.07842494][ 0.00609808  1.9219669  -0.42632174  1.5106113 ][ 0.67241013 -0.38563538 -0.976289    0.2032768 ]]]]#m2
[[[[ 1.          1.          1.          1.        ][ 1.          1.          1.          1.        ][ 1.          1.          1.          1.        ]][[ 1.          1.          1.          1.        ][ 1.          1.          1.          1.        ][ 1.          1.          1.          1.        ]]][[[ 1.          1.          1.          1.        ][ 1.          1.          1.          1.        ][ 1.          1.          1.          1.        ]][[ 1.          1.          1.          1.        ][ 1.          1.          1.          1.        ][ 1.          1.          1.          1.        ]]][[[-1.2366703  -1.0050759  -0.3843815   1.0201392 ][-1.3438475   0.8829414  -1.3399163   1.078826  ][-0.09356844  0.35896888  1.5112561   0.28352356]][[ 0.45909956 -0.23824279 -0.31440428  1.1913226 ][-0.40780786  0.58995795 -0.9147027   0.05860058][-0.0659609   1.4536899  -0.12121342 -0.9752257 ]]]]#output shape
[3 2 3 4]

View Code

转载于:https://www.cnblogs.com/lovychen/p/11177336.html

tensorflow 笔记 16:tf.pad相关推荐

  1. tensorflow笔记:tf.argmax()和tf.equal()的使用

    原文:https://blog.csdn.net/abc13526222160/article/details/85299901 1.tf.argmax(vector, 1) 返回的是vector中的 ...

  2. 『tensorflow笔记』tf.argmax()和tf.equal()的使用

    1.tf.argmax(vector, 1) 返回的是vector中的最大值的索引号,如果vector是一个向量,那就返回一个值,如果是一个矩阵,那就返回一个向量,这个向量的每一个维度都是相对应矩阵行 ...

  3. TensorFlow学习笔记(一): tf.Variable() 和tf.get_variable()详解

    对于tf.Variable和tf.get_variable,这两个都是在我们训练模型的时候常遇到的函数,我们首先要知道懂得它的语法格式.常用的语法格式的作用以及在实际代码中是如何调用.如何运行的,运行 ...

  4. 人工智能实践:TensorFlow笔记学习(八)—— 卷积神经网络实践

    大纲 7.1  复现已有的卷积神经网络 7.2  用vgg16实现图片识别 目标 掌握复现已有网络,用vgg16实现图片识别 7.1  复现已有的卷积神经网络 VGGNet是Karen simonya ...

  5. tensorflow笔记:多层CNN代码分析

    tensorflow笔记系列:  (一) tensorflow笔记:流程,概念和简单代码注释  (二) tensorflow笔记:多层CNN代码分析  (三) tensorflow笔记:多层LSTM代 ...

  6. tensorflow笔记:流程,概念和简单代码注释

    tensorflow是google在2015年开源的深度学习框架,可以很方便的检验算法效果.这两天看了看官方的tutorial,极客学院的文档,以及综合tensorflow的源码,把自己的心得整理了一 ...

  7. 人工智能实践:TensorFlow笔记学习(四)—— 神经网络优化

    神经网络优化  大纲 4.1 损失函数 4.2 学习率 4.3 滑动平均 4.4 正则化 4.5 神经网络搭建八股 目标 掌握神经网络优化方法 4.1 损失函数 神经元模型:用数学公式表示为:,f为激 ...

  8. tensorflow笔记:模型的保存与训练过程可视化

    tensorflow笔记系列:  (一) tensorflow笔记:流程,概念和简单代码注释  (二) tensorflow笔记:多层CNN代码分析  (三) tensorflow笔记:多层LSTM代 ...

  9. tensorflow笔记:多层LSTM代码分析

    tensorflow笔记系列:  (一) tensorflow笔记:流程,概念和简单代码注释  (二) tensorflow笔记:多层CNN代码分析  (三) tensorflow笔记:多层LSTM代 ...

最新文章

  1. 干掉 powerdesigner,设计数据库表用它就够了
  2. UA MATH571A 多元线性回归IV 广义线性模型
  3. 世界读书日 阿里人是这样看书的?
  4. 数据库-优化-慢查日志的存储格式
  5. push failed in WebIDE
  6. P5546-[POI2000]公共串【SAM】
  7. lambda表达式之进化
  8. 在线选课网站用什么服务器,高校网上选课系统 PC服务器替代小型机
  9. python开源IP代理池--IPProxys
  10. 最近三次蓝屏Bluescreen STOP 0x000000ea
  11. java容器之Map
  12. 基于知识图谱的问答系统入门之—NLPCC2016KBQA数据集
  13. html 显示音标,wheel的音标
  14. 网络安全绝地求生-面试题
  15. 【实战篇】39 # 如何实现世界地图的新冠肺炎疫情可视化?
  16. 苹果手机中病毒显示无服务器,苹果手机中毒五大特征!一般认为这是正常现象,你的iPhone中了吗...
  17. 计算机网络原理:链路聚合
  18. freebsd 运行linux,成功搞定自己的 FreeBSD
  19. WordPress空间靠谱国内外一览
  20. 艾默生流量计重油流量计的测量原理和优势

热门文章

  1. phpcms v9 搜索页显示自定义字段
  2. ASP.NET Web实时消息后台服务器推送技术---GoEasy
  3. Matlab 进行FFT
  4. LNMP服务跨省迁移的解决方案
  5. shell命令总结3
  6. 程序员的十个层次 你属于哪一层?小菜看后
  7. 使用SC命令使用(转)
  8. hbase启动后在log中出现cannot get log writer
  9. spring客户端resttemplate/feign/httpclient调研
  10. intellij导入文件夹后各种红色cannot resolve symbol