最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入理解Tensorflow中的masking和padding

 更新時(shí)間:2020年02月24日 10:40:03   作者:hustqb  
TensorFlow 是一個(gè)用于人工智能的開源神器,這篇文章主要介紹了Tensorflow中的masking和padding的相關(guān)知識(shí),通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

TensorFlow是一個(gè)采用數(shù)據(jù)流圖(data flow graphs),用于數(shù)值計(jì)算的開源軟件庫(kù)。節(jié)點(diǎn)(Nodes)在圖中表示數(shù)學(xué)操作,圖中的線(edges)則表示在節(jié)點(diǎn)間相互聯(lián)系的多維數(shù)據(jù)數(shù)組,即張量(tensor)。它靈活的架構(gòu)讓你可以在多種平臺(tái)上展開計(jì)算,例如臺(tái)式計(jì)算機(jī)中的一個(gè)或多個(gè)CPU(或GPU),服務(wù)器,移動(dòng)設(shè)備等等。TensorFlow 最初由Google大腦小組(隸屬于Google機(jī)器智能研究機(jī)構(gòu))的研究員和工程師們開發(fā)出來(lái),用于機(jī)器學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)方面的研究,但這個(gè)系統(tǒng)的通用性使其也可廣泛用于其他計(jì)算領(lǐng)域。

聲明:

需要讀者對(duì)tensorflow和深度學(xué)習(xí)有一定了解

tf.boolean_mask實(shí)現(xiàn)類似numpy數(shù)組的mask操作

Python的numpy array可以使用boolean類型的數(shù)組作為索引,獲得numpy array中對(duì)應(yīng)boolean值為True的項(xiàng)。示例如下:

# numpy array中的boolean mask
import numpy as np
target_arr = np.arange(5)
print "numpy array before being masked:"
print target_arr
mask_arr = [True, False, True, False, False]
masked_arr = target_arr[mask_arr]
print "numpy array after being masked:"
print masked_arr

運(yùn)行結(jié)果如下:

numpy array before being masked: [0 1 2 3 4] numpy array after being masked: [0 2]

tf.boolean_maks對(duì)目標(biāo)tensor實(shí)現(xiàn)同上述numpy array一樣的mask操作,該函數(shù)的參數(shù)也比較簡(jiǎn)單,如下所示:

tf.boolean_mask(
 tensor, # target tensor
 mask, # mask tensor
 axis=None,
 name='boolean_mask'
)

下面,我們來(lái)嘗試一下tf.boolean_mask函數(shù),示例如下:

import tensorflow as tf
# tensorflow中的boolean mask
target_tensor = tf.constant([[1, 2], [3, 4], [5, 6]])
mask_tensor = tf.constant([True, False, True])
masked_tensor = tf.boolean_mask(target_tensor, mask_tensor, axis=0)
sess = tf.InteractiveSession()
print masked_tensor.eval()

mask tensor中的第0和第2個(gè)元素是True,mask axis是第0維,也就是我們只選擇了target tensor的第0行和第1行。

[[1 2] [5 6]]

如果把mask tensor也換成2維的tensor會(huì)怎樣呢?

mask_tensor2 = tf.constant([[True, False], [False, False], [True, False]])
masked_tensor2 = tf.boolean_mask(target_tensor, mask_tensor, axis=0)
print masked_tensor2.eval()

[[1 2] [5 6]]

我們發(fā)現(xiàn),結(jié)果不是[[1], [5]]。tf.boolean_mask不做元素維度的mask,tersorflow中有tf.ragged.boolean_mask實(shí)現(xiàn)元素維度的mask。

tf.ragged.boolean_mask
tf.ragged.boolean_mask(
 data,
 mask,
 name=None
)

tensorflow中的sparse向量和sparse mask tensorflow中的sparse tensor由三部分組成,分別是indices、values、dense_shape。對(duì)于稀疏張量SparseTensor(indices=[[0, 0], [1, 2]], values=[1, 2], dense_shape=[3, 4]),轉(zhuǎn)化成dense tensor的值為:

[[1, 0, 0, 0] [0, 0, 2, 0] [0, 0, 0, 0]]

使用tf.sparse.mask可以對(duì)sparse tensor執(zhí)行mask操作。

tf.sparse.mask(
 a,
 mask_indices,
 name=None
)

上文定義的sparse tensor有1和2兩個(gè)值,對(duì)應(yīng)的indices為[[0, 0], [1, 2]],執(zhí)行tf.sparsse.mask(a, [[1, 2]])后,稀疏向量轉(zhuǎn)化成dense的值為:

[[1, 0, 0, 0] [0, 0, 0, 0] [0, 0, 0, 0]]

由于tf.sparse中的大多數(shù)函數(shù)都只在tensorflow2.0版本中有,所以沒(méi)有實(shí)例演示。

padded_batch

tf.Dataset中的padded_batch函數(shù),根據(jù)輸入序列中的最大長(zhǎng)度,自動(dòng)的pad一個(gè)batch的序列。

padded_batch(
 batch_size,
 padded_shapes,
 padding_values=None,
 drop_remainder=False
)

這個(gè)函數(shù)與tf.Dataset中的batch函數(shù)對(duì)應(yīng),都是基于dataset構(gòu)造batch,但是batch函數(shù)需要dataset中的所有樣本形狀相同,而padded_batch可以將不同形狀的樣本在構(gòu)造batch時(shí)padding成一樣的形狀。

elements = [[1, 2], 
  [3, 4, 5], 
  [6, 7], 
  [8]] 
A = tf.data.Dataset.from_generator(lambda: iter(elements), tf.int32) 
B = A.padded_batch(2, padded_shapes=[None]) 
B_iter = B.make_one_shot_iterator()
print B_iter.get_next().eval()

[[1 2 0] [3 4 5]]

總結(jié)

到此這篇關(guān)于深入理解Tensorflow中的masking和padding的文章就介紹到這了,更多相關(guān)Tensorflow中的masking和padding內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實(shí)現(xiàn)基于樸素貝葉斯的垃圾分類算法

    python實(shí)現(xiàn)基于樸素貝葉斯的垃圾分類算法

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)基于樸素貝葉斯的垃圾分類算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • python logging日志模塊以及多進(jìn)程日志詳解

    python logging日志模塊以及多進(jìn)程日志詳解

    本篇文章主要介紹了python logging日志模塊以及多進(jìn)程日志詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Python字典的核心底層原理講解

    Python字典的核心底層原理講解

    今天小編就為大家分享一篇關(guān)于Python字典的核心底層原理講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • python機(jī)器學(xué)習(xí)使數(shù)據(jù)更鮮活的可視化工具Pandas_Alive

    python機(jī)器學(xué)習(xí)使數(shù)據(jù)更鮮活的可視化工具Pandas_Alive

    今天我分享大家一款非常棒的動(dòng)畫可視化工具:Pandas_Alive,它以?matplotlib?繪圖為后端,不僅可以創(chuàng)建出令人驚嘆的動(dòng)畫可視化,而且使用方法非常簡(jiǎn)單。本文詳情如下
    2021-11-11
  • Python學(xué)習(xí)之元組的使用詳解

    Python學(xué)習(xí)之元組的使用詳解

    Python元組和列表很像,也是一個(gè)包含多個(gè)元素的集合,本文主要給大家介紹了關(guān)于Python中元組(Tuple)的使用,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • 詳解如何利用Python繪制科赫曲線

    詳解如何利用Python繪制科赫曲線

    科赫曲線是一種像雪花的幾何曲線,所以又稱為雪花曲線,它是de Rham曲線的特例。本文將利用Python語(yǔ)言實(shí)現(xiàn)這一曲線,需要的可以參考一下
    2022-05-05
  • 淺談Django前端后端值傳遞問(wèn)題

    淺談Django前端后端值傳遞問(wèn)題

    這篇文章主要介紹了淺談Django前端后端值傳遞問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • python重要函數(shù)eval多種用法解析

    python重要函數(shù)eval多種用法解析

    這篇文章主要介紹了python重要函數(shù)eval多種用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • python3兩數(shù)相加的實(shí)現(xiàn)示例

    python3兩數(shù)相加的實(shí)現(xiàn)示例

    這篇文章主要介紹了python3兩數(shù)相加的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Python實(shí)現(xiàn)從多表格中隨機(jī)抽取數(shù)據(jù)

    Python實(shí)現(xiàn)從多表格中隨機(jī)抽取數(shù)據(jù)

    這篇文章主要介紹了如何基于Python語(yǔ)言實(shí)現(xiàn)隨機(jī)從大量的Excel表格文件中選取一部分?jǐn)?shù)據(jù),并將全部文件中隨機(jī)獲取的數(shù)據(jù)合并為一個(gè)新的Excel表格文件的方法,希望對(duì)大家有所幫助
    2023-05-05

最新評(píng)論

房山区| 南澳县| 邢台县| 徐汇区| 连州市| 大冶市| 许昌县| 临沂市| 瓦房店市| 大荔县| 乌兰察布市| 广西| 定南县| 马尔康县| 平昌县| 眉山市| 临泉县| 南陵县| 铁岭市| 敦化市| 定兴县| 玛沁县| 修武县| 虎林市| 白银市| 申扎县| 双鸭山市| 中山市| 寻甸| 康定县| 尤溪县| 姜堰市| 永靖县| 金山区| 防城港市| 开封市| 讷河市| 沅陵县| 香港| 正安县| 北川|