您好,登錄后才能下訂單哦!
小編這次要用代碼詳解tensorflow中dataset.shuffle、dataset.batch、dataset.repeat順序區(qū)別,文章內(nèi)容豐富,感興趣的小伙伴可以來(lái)了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
1.作用
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ò)程最常用的順序)
先看結(jié)果:
解釋:相當(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
先看結(jié)果:
解釋:相當(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
先看結(jié)果:
解釋:相當(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ò)的話,可以把它分享出去給更多人看到。
免責(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)容。