色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TensorFlow中讀數據三種方法

C語言專家集中營 ? 來源:lp ? 2019-04-01 14:40 ? 次閱讀

TensorFlow中讀數據一般有三種方法:

使用placeholder讀內存中的數據

使用queue讀硬盤中的數據

使用Dataset讀內存個硬盤中的數據

基本概率

由于第三種方法在語法上更簡潔,因此本文主要介紹第三種方法。官方給出的Dataset API類圖:

image.png

其中終于重要的兩個基礎類:Dateset和Iterator。Dateset是具有相同類型的“元素”的有序表,元素可以是向量、字符串、圖片等。

從內存中創建Dataset

以數字元素為例:

例1

從Dataset中實例化一個Iterator,然后對Iterator進行迭代。

iterator = dataset.make_one_shot_iterator()

從dataset中實例化一個iterator,是“one shot iterator”,即只能從頭到尾讀取一次。

one_element = iterator.get_next()

從iterator中取出一個元素, one_element是一個tensor,因此需要調用sess.run(one_element)取出值。

如果元素被讀取完了,再sess.run(one_element)會拋出tf.errors.OutOfRangeError異常。解決方法:使用 dataset.repeat()

更復雜的輸入形式,例如,在圖像識別的應用中,一個元素可以使{“image”:image_tensor, “label”:lable_tensor}

dataset = tf.data.Dataset.from_tensor_slices( { "a": np.array([1.0, 2.0, 3.0, 4.0, 5.0]), "b": np.random.uniform(size=(5, 2)) } )

最終dataset中的一個元素為{"a": 1.0, "b": [0.9, 0.1]}的形式。或者

dataset = tf.data.Dataset.from_tensor_slices( (np.array([1.0, 2.0, 3.0, 4.0, 5.0]), np.random.uniform(size=(5, 2))) )

對Dataset中的元素做變換:Transformation

一個Dataset通過Transformation變成一個新的Dataset。常用的操作有:

map

batch

shuffle

repeat

下面分別來介紹以上幾個操作。(1)mapmap接收一個函數,dataset中的每個元素都可以作為這個函數的輸入,并將函數的返回值作為新的dataset,例如:

dataset = tf.data.Dataset.from_tensor_slices(np.array([1.0, 2.0, 3.0, 4.0, 5.0])) dataset = dataset.map(lambda x: x + 1) # 2.0, 3.0, 4.0, 5.0, 6.0

(2)batch將多個元素組合成batch,例如:

dataset = dataset.batch(32)

(3)shuffle打亂dataset中的元素,參數buffersize表示打亂時buffer的大小。

dataset = dataset.shuffle(buffer_size=10000)

(4)repeat將整個序列重復多次,只用用來處理epoch。如果直接調用repeat()的話,生成的序列就會無限重復下去,沒有結束,因此也不會拋出。tf.errors.OutOfRangeError異常:

dataset = dataset.repeat(5)

例子:讀磁盤圖片與對應的label

讀入磁盤中的圖片和圖片相應的label,并將其打亂,組成batch_size=32的訓練樣本。在訓練時重復10個epoch。

# 函數的功能時將filename對應的圖片文件讀進來,并縮放到統一的大小def _parse_function(filename, label): image_string = tf.read_file(filename) image_decoded = tf.image.decode_image(image_string) image_resized = tf.image.resize_images(image_decoded, [28, 28]) return image_resized, label# 圖片文件的列表filenames = tf.constant(["/var/data/image1.jpg", "/var/data/image2.jpg", ...])# label[i]就是圖片filenames[i]的labellabels = tf.constant([0, 37, ...])# 此時dataset中的一個元素是(filename, label)dataset = tf.data.Dataset.from_tensor_slices((filenames, labels))# 此時dataset中的一個元素是(image_resized, label)dataset = dataset.map(_parse_function)# 此時dataset中的一個元素是(image_resized_batch, label_batch)dataset = dataset.shuffle(buffersize=1000).batch(32).repeat(10)# 此時dataset中的一個元素是(image_resized_batch, label_batch)# image_resized_batch的形狀為(32, 28, 28, 3), label_batch的形狀為(32, )

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4333

    瀏覽量

    62708
  • tensorflow
    +關注

    關注

    13

    文章

    329

    瀏覽量

    60537
  • DataSet
    +關注

    關注

    0

    文章

    5

    瀏覽量

    2208

原文標題:TensorFlow讀數據

文章出處:【微信號:C_Expert,微信公眾號:C語言專家集中營】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    labview查看本機ip的三種方法

    做TCP通訊的時候,有時候需要知道自己的IP雖然知道自己電腦ip可以不用這么麻煩,但是有時候就想用自己所學來獲得自己所需,職業病 咳咳這里給出得到本地IP的三種方法。源程序,在附件里。
    發表于 11-27 17:17

    啟動Redis的三種方法

    Redis筆記(1)——安裝、卸載、三種方法啟動Redis,Redis命令使用(干貨十足),Redis兩種方法設置密碼,時間復雜度(更完善哦~)
    發表于 06-08 16:09

    LwIP協議棧開發嵌入式網絡的三種方法有何關系

    LwIP協議棧開發嵌入式網絡的三種方法分析 輕量級的TCP/IP協議棧LwIP,提供了三種應用程序設計方法,且很容易被移植到多任務的操作系統。本文結合μC/OS-II這一實時操作系統
    發表于 08-05 07:55

    噪聲系數測量的三種方法

    噪聲系數測量的三種方法 本文介紹了測量噪聲系數的三種方法:增益法、Y
    發表于 05-07 13:38 ?2159次閱讀

    解決電池問題有三種方法

    解決電池問題有三種方法      對于手機電池問題如何解決,業內人士指出有以下三種方法:   一、發明新型電池。目前有日本生產商已經展示了概念性的燃
    發表于 11-10 14:26 ?957次閱讀

    臺式機CMOS放電三種方法

    現有的主板大多設計了CMOS放電跳線方便用戶進行放電操作,不過CMOS放電的方法也不止這一,閱讀下文了解臺式機CMOS放電三種方法
    發表于 01-09 11:01 ?5.3w次閱讀
    臺式機CMOS放電<b class='flag-5'>三種方法</b>

    電感變壓器漆包線快速去漆的三種方法盤點

    電感變壓器如何快速的去漆呢?一般在實際的工作,一般采用手工去皮,電動剝皮,剝離劑剝皮這三種方法來進行去漆,那么這三種種方法更高效呢?
    發表于 12-21 14:12 ?1.6w次閱讀

    python統計詞頻的三種方法

    python統計詞頻的三種方法方法
    發表于 05-25 14:33 ?2次下載

    獲得更高輸出電流的三種方法

    的79dB PSRR(1MHz)。一些客戶要求將電流提高到200mA以上,同時仍保持低噪聲和高PSRR。本文探討了獲得更高輸出電流的三種方法,并提供了實用的輸入,以幫助您確定哪種方法最適合您的電路條件。這三種方式是:
    的頭像 發表于 01-08 15:32 ?6193次閱讀
    獲得更高輸出電流的<b class='flag-5'>三種方法</b>

    噪聲系數測量的三種方法

    本文介紹了測量噪聲系數的三種方法:增益法、Y系數法和噪聲系數測試儀法。這三種方法的比較以表格的形式給出。
    的頭像 發表于 05-18 11:02 ?1313次閱讀
    噪聲系數測量的<b class='flag-5'>三種方法</b>

    【世說設計】噪聲系數測量的三種方法

    本文介紹了測量噪聲系數的三種方法:增益法、Y系數法和噪聲系數測試儀法。這三種方法的比較以表格的形式給出。在無線通信系統,噪聲系數(NF)或者相對應的噪聲因數(F)定義了噪聲性能和對接
    的頭像 發表于 05-19 10:38 ?1104次閱讀
    【世說設計】噪聲系數測量的<b class='flag-5'>三種方法</b>

    pwm產生的三種方法

    pwm產生的三種方法 PWM(Pulse Width Modulation)是一常用的控制技術,可以通過調節開關管的通斷時間,通過改變輸出波形的占空比來實現對電路的控制。在現代工業控制,PWM
    的頭像 發表于 09-02 10:25 ?7669次閱讀

    三種方法實現串口接收不定長度的數據

    下面三種方式都親測可用,實際使用時應采用第三種方法,更有效率。
    的頭像 發表于 09-14 16:16 ?1.1w次閱讀
    <b class='flag-5'>三種方法</b>實現串口接收不定長度的<b class='flag-5'>數據</b>

    修復鋰電池的三種方法

    電子發燒友網站提供《修復鋰電池的三種方法.doc》資料免費下載
    發表于 11-15 10:40 ?5次下載
    修復鋰電池的<b class='flag-5'>三種方法</b>

    傳統激光功率衰減的三種方法

    傳統激光功率衰減通常使用以下三種方法,分別為中性密度衰減片衰減法、偏振衰減法、鍍膜光學鏡片衰減法。
    的頭像 發表于 01-20 10:42 ?1771次閱讀
    傳統激光功率衰減的<b class='flag-5'>三種方法</b>
    主站蜘蛛池模板: 18av 在线| 久久人妻少妇嫩草AV無碼| 国产亚洲精品精华液| 黑人干日本美女| 窝窝午夜色视频国产精品东北| 亚洲 在线 日韩 欧美| 成人免费视频网站www| 九九99亚洲精品久久久久| 欧美另类z0z000高清| 亚洲AV无码一区二区色情蜜芽| 国产99精品视频| 麻豆免费观看高清完整视频| 亚洲中文日韩日本在线视频| 岛国大片在线播放高清| 欧美在线看费视频在线| 亚洲色图激情小说| 精品国产九九| 一级毛片免费播放| 久就热视频精品免费99| 2020亚洲国产在线播放在线 | 在线播放一区| 国产一卡2卡3卡4卡孕妇网站| 欧美视频毛片在线播放| zoovideo人与驴mp4| 久久女婷五月综合色啪| 做a爱片的全过程| 欧美在线激情| 国产精品第八页| 一区二区不卡在线视频| 美女被触手注入精子强制受孕漫画| 97在线播放视频| 肉耽高h一受n攻| 狠狠色丁香婷婷久久综合五月| 中文字幕AV在线一二三区| 欧美人与动牲交A精品| 儿子操妈妈视频| 啪啪做羞羞事小黄文| 国产超碰人人爱被IOS解锁| 亚洲精品在线观看视频| 国产精品爽爽久久久久久蜜桃网站 | 国产在线亚洲v天堂a|