溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

用代碼詳解tensorflow中dataset.shuffle、dataset.batch、dataset.repeat順序區(qū)別

發(fā)布時(shí)間:2020-07-20 09:15:34 來(lái)源:億速云 閱讀:406 作者:小豬 欄目:開發(fā)技術(shù)

小編這次要用代碼詳解tensorflow中dataset.shuffle、dataset.batch、dataset.repeat順序區(qū)別,文章內(nèi)容豐富,感興趣的小伙伴可以來(lái)了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

1.作用

  • dataset.shuffle作用是將數(shù)據(jù)進(jìn)行打亂操作,傳入?yún)?shù)為buffer_size,改參數(shù)為設(shè)置“打亂緩存區(qū)大小”,也就是說(shuō)程序會(huì)維持一個(gè)buffer_size大小的緩存,每次都會(huì)隨機(jī)在這個(gè)緩存區(qū)抽取一定數(shù)量的數(shù)據(jù)
  • dataset.batch作用是將數(shù)據(jù)打包成batch_size
  • dataset.repeat作用就是將數(shù)據(jù)重復(fù)使用多少epoch
     

2.各種不同順序的區(qū)別

示例代碼(以下面代碼作為說(shuō)明):

# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
 
dataset = tf.data.Dataset.from_tensor_slices(np.arange(20).reshape((4, 5)))
 
dataset = dataset.shuffle(100)
dataset = dataset.batch(3)
dataset = dataset.repeat(2)
 
sess = tf.Session()
 
iterator = dataset.make_one_shot_iterator()
input_x = iterator.get_next()
 
print(sess.run(input_x))
print(sess.run(input_x))
print(sess.run(input_x))
print(sess.run(input_x))

1.順序1(訓(xùn)練過(guò)程最常用的順序)

用代碼詳解tensorflow中dataset.shuffle、dataset.batch、dataset.repeat順序區(qū)別

先看結(jié)果:

用代碼詳解tensorflow中dataset.shuffle、dataset.batch、dataset.repeat順序區(qū)別

解釋:相當(dāng)于把所有數(shù)據(jù)先打亂,然后打包成batch輸出,整體數(shù)據(jù)重復(fù)2個(gè)epoch

特點(diǎn):1.一個(gè)batch中的數(shù)據(jù)不會(huì)重復(fù);2.每個(gè)epoch的最后一個(gè)batch的尺寸小于等于batch_size

2.順序2

用代碼詳解tensorflow中dataset.shuffle、dataset.batch、dataset.repeat順序區(qū)別

先看結(jié)果:

用代碼詳解tensorflow中dataset.shuffle、dataset.batch、dataset.repeat順序區(qū)別

解釋:相當(dāng)于把所有數(shù)據(jù)先打亂,再把所有數(shù)據(jù)重復(fù)兩個(gè)epoch,然后將重復(fù)兩個(gè)epoch的數(shù)據(jù)放在一起,最后打包成batch_size輸出

特點(diǎn):1.因?yàn)榘褦?shù)據(jù)復(fù)制兩份,還進(jìn)行打亂,因此某個(gè)batch數(shù)據(jù)可能會(huì)重復(fù),而且出現(xiàn)重復(fù)數(shù)據(jù)的batch只會(huì)是兩個(gè)batch交叉的位置;2.最后一個(gè)batch的尺寸小于等于batch_size

3.順序3

用代碼詳解tensorflow中dataset.shuffle、dataset.batch、dataset.repeat順序區(qū)別

先看結(jié)果:

用代碼詳解tensorflow中dataset.shuffle、dataset.batch、dataset.repeat順序區(qū)別

解釋:相當(dāng)于把所有數(shù)據(jù)先打包成batch,然后把打包成batch的數(shù)據(jù)重復(fù)兩遍,最后再將所有batch打亂進(jìn)行輸出

特點(diǎn):1.打亂的是batch;2.某些batch的尺寸小于等于batch_size,因?yàn)槭菍?duì)batch進(jìn)行打亂,所以這些batch不一定是最后一個(gè)

3.其他組合方式

根據(jù)上面幾種順序,大家可以自己分析其他順序的輸出結(jié)果

看完這篇關(guān)于用代碼詳解tensorflow中dataset.shuffle、dataset.batch、dataset.repeat順序區(qū)別的文章,如果覺得文章內(nèi)容寫得不錯(cuò)的話,可以把它分享出去給更多人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI