TensorFlow填充張量函數(shù):tf.pad

2018-11-08 11:49 更新
tf.pad 函數(shù)
pad ( 
    tensor , 
    paddings , 
    mode = 'CONSTANT' , 
    name = None , 
    constant_values = 0 
)

定義在:tensorflow/python/ops/array_ops.py.

參見指南:張量變換>分割和連接

填充張量.

此操作根據(jù)您指定的 paddings 來填充一個 tensor.paddings 是一個具有形狀 [n, 2] 的整數(shù)張量,其中 n 是 tensor 的秩.對于每個輸入維度 D,paddings [D, 0] 表示在該維度的 tensor 內(nèi)容之前要添加多少個值,而 paddings[D, 1] 表示在該維度中的 tensor 內(nèi)容之后要添加多少值.如果 mode 是 “REFLECT”,那么這兩個paddings[D, 0] 和 paddings[D, 1] 不得大于 tensor.dim_size(D) - 1.如果 mode 是 “SYMMETRIC”,那么這兩個 paddings[D, 0] 和 paddings[D, 1] 不得大于tensor.dim_size(D).

輸出的每個維度 D 的填充大小是:

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

例如:

# 't' is [[1, 2, 3], [4, 5, 6]].
# 'paddings' is [[1, 1,], [2, 2]].
# 'constant_values' is 0.
# rank of 't' is 2.
pad(t, paddings, "CONSTANT") ==> [[0, 0, 0, 0, 0, 0, 0],
                                  [0, 0, 1, 2, 3, 0, 0],
                                  [0, 0, 4, 5, 6, 0, 0],
                                  [0, 0, 0, 0, 0, 0, 0]]

pad(t, paddings, "REFLECT") ==> [[6, 5, 4, 5, 6, 5, 4],
                                 [3, 2, 1, 2, 3, 2, 1],
                                 [6, 5, 4, 5, 6, 5, 4],
                                 [3, 2, 1, 2, 3, 2, 1]]

pad(t, paddings, "SYMMETRIC") ==> [[2, 1, 1, 2, 3, 3, 2],
                                   [2, 1, 1, 2, 3, 3, 2],
                                   [5, 4, 4, 5, 6, 6, 5],
                                   [5, 4, 4, 5, 6, 6, 5]]

參數(shù):

  • tensor:張量.
  • paddings:int32 類型的張量.
  • mode:取值為 "CONSTANT"、"REFLECT" 或 "SYMMETRIC"(不區(qū)分大小寫)
  • name:操作的名稱(可選).
  • constant_values:在 “CONSTANT” 模式下,要使用的標(biāo)量填充值,必須與 tensor 具有相同類型.

返回:

該函數(shù)返回一個張量,與 tensor 具有相同的類型.

可能引發(fā)的異常:

  • ValueError:模式不是 "CONSTANT"、"REFLECT" 或 "SYMMETRIC" 中的一種時(shí).
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號