tensorflow dataset.shuffle、dataset.batch、dataset.repeat順序區(qū)別詳解
1.作用
- dataset.shuffle作用是將數(shù)據(jù)進行打亂操作,傳入?yún)?shù)為buffer_size,改參數(shù)為設置“打亂緩存區(qū)大小”,也就是說程序會維持一個buffer_size大小的緩存,每次都會隨機在這個緩存區(qū)抽取一定數(shù)量的數(shù)據(jù)
- dataset.batch作用是將數(shù)據(jù)打包成batch_size
- dataset.repeat作用就是將數(shù)據(jù)重復使用多少epoch
2.各種不同順序的區(qū)別
示例代碼(以下面代碼作為說明):
# -*- 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(訓練過程最常用的順序)
先看結果:
解釋:相當于把所有數(shù)據(jù)先打亂,然后打包成batch輸出,整體數(shù)據(jù)重復2個epoch
特點:1.一個batch中的數(shù)據(jù)不會重復;2.每個epoch的最后一個batch的尺寸小于等于batch_size
2.順序2
先看結果:
解釋:相當于把所有數(shù)據(jù)先打亂,再把所有數(shù)據(jù)重復兩個epoch,然后將重復兩個epoch的數(shù)據(jù)放在一起,最后打包成batch_size輸出
特點:1.因為把數(shù)據(jù)復制兩份,還進行打亂,因此某個batch數(shù)據(jù)可能會重復,而且出現(xiàn)重復數(shù)據(jù)的batch只會是兩個batch交叉的位置;2.最后一個batch的尺寸小于等于batch_size
3.順序3
先看結果:
解釋:相當于把所有數(shù)據(jù)先打包成batch,然后把打包成batch的數(shù)據(jù)重復兩遍,最后再將所有batch打亂進行輸出
特點:1.打亂的是batch;2.某些batch的尺寸小于等于batch_size,因為是對batch進行打亂,所以這些batch不一定是最后一個
3.其他組合方式
根據(jù)上面幾種順序,大家可以自己分析其他順序的輸出結果
到此這篇關于tensorflow dataset.shuffle、dataset.batch、dataset.repeat順序區(qū)別詳解的文章就介紹到這了,更多相關tensorflow dataset.shuffle、dataset.batch、dataset.repeat內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python+unittest+requests+excel實現(xiàn)接口自動化測試框架
這篇文章主要介紹了Python+unittest+requests+excel實現(xiàn)接口自動化測試框架,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12