日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tensorflow 笔记 16:tf.pad

發布時間:2023/12/20 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tensorflow 笔记 16:tf.pad 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

函數:

  • 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。