TensorFlow函數(shù):tf.substr

2018-03-26 10:27 更新

tf.substr函數(shù)

tf.substr(
    input,
    pos,
    len,
    name=None
)

參見(jiàn)指南:字符串操作>拆分

從字符串的 Tensor 中返回子字符串.

對(duì)于輸入 Tensor 中的每個(gè)字符串,創(chuàng)建一個(gè)從索引 pos 開(kāi)始的子字符串,總長(zhǎng)度為 len.

如果 len 定義了一個(gè)將超出輸入字符串長(zhǎng)度的子字符串,那么使用盡可能多的字符.

如果 pos 是負(fù)數(shù)或指定的字符索引大于任何輸入字符串,則會(huì)拋出一個(gè) InvalidArgumentError.

pos 和 len 必須具有相同的形狀,否則在 Op 創(chuàng)建時(shí)會(huì)拋出一個(gè) ValueError.

注意:Substr 支持最多兩個(gè)維度的廣播.

例子

使用標(biāo)量 pos 和 len:

input = [b'Hello', b'World']
position = 1
length = 3

output = [b'ell', b'orl']

使用與 input 具有相同形狀的 pos 和 len:

input = [[b'ten', b'eleven', b'twelve'],
         [b'thirteen', b'fourteen', b'fifteen'],
         [b'sixteen', b'seventeen', b'eighteen']]
position = [[1, 2, 3],
            [1, 2, 3],
            [1, 2, 3]]
length =   [[2, 3, 4],
            [4, 3, 2],
            [5, 5, 5]]

output = [[b'en', b'eve', b'lve'],
          [b'hirt', b'urt', b'te'],
          [b'ixtee', b'vente', b'hteen']]

將 pos 和 len 廣播到 input:

input = [[b'ten', b'eleven', b'twelve'],
         [b'thirteen', b'fourteen', b'fifteen'],
         [b'sixteen', b'seventeen', b'eighteen'],
         [b'nineteen', b'twenty', b'twentyone']]
position = [1, 2, 3]
length =   [1, 2, 3]

output = [[b'e', b'ev', b'lve'],
          [b'h', b'ur', b'tee'],
          [b'i', b've', b'hte'],
          [b'i', b'en', b'nty']]

將 input 廣播到 pos 和 len:

input = b'thirteen'
position = [1, 5, 7]
length =   [3, 2, 1]

output = [b'hir', b'ee', b'n']

函數(shù)參數(shù):

  • input:一個(gè) string 類(lèi)型的 Tensor,strings 張量.
  • pos:一個(gè) Tensor,必須是以下類(lèi)型之一:int32,int64,標(biāo)量定義每個(gè)子字符串中第一個(gè)字符的位置.
  • len:一個(gè) Tensor,必須具有相同的類(lèi)型pos,標(biāo)量定義要包含在每個(gè)子字符串中的字符數(shù).
  • name:操作的名稱(chēng)(可選).

函數(shù)返回值:

函數(shù)返回一個(gè) string 類(lèi)型的 Tensor.

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)