Tensorflow加載與預處理數(shù)據(jù)詳解實現(xiàn)方法
數(shù)據(jù)API
數(shù)據(jù)集方法不會修改數(shù)據(jù)集,而是創(chuàng)建新數(shù)據(jù)集。
可通過調用 map() 方法將轉換應用于每個元素:
dataset = dataset.map(lambda x: x * 2)
亂序數(shù)據(jù)
交織來自多個文件的行
list_files() 函數(shù)返回一個亂序的文件路徑的數(shù)據(jù)集。
filepath_dataset = tf.data.Dataset.list_files(train_filepaths, seed=42)
一次讀取5個文件,并交織它們的行。
n_readers = 5 dataset = filepath_dataset.interleave( lambda filepath: tf.data.TextLineDataset(filepath).skip(1), cycle_length=n_readers)
預處理數(shù)據(jù)
X_mean, X_std = [...] # 每個特征的均值和標準差 n_inputs = 8 # 對應8個特征 def preprocess(line): defs = [0.] * n_inputs + [tf.constant([], dtype=tf.float32)] # 包含csv中每一列的默認值的數(shù)組 fields = tf.io.decode_csv(line, record_defaults=defs) # line 是要解析的行,record_defaults 是一個包含CSV文件每一列的默認值的數(shù)組 x = tf.stack(fields[:-1]) y = tf.stack(fields[-1:]) return (x - X_mean) / X_std, y
我們在除最后一個(目標值)之外的所有張量上調用 tf.stack() ,從而將這些張量堆疊到一維度組中。然后對目標值執(zhí)行相同的操作。
合并在一起
def csv_reader_dataset(filepaths, repeat=1, n_readers=5, n_read_threads=None, shuffle_buffer_size=10000, n_parse_threads=5, batch_size=32): dataset = tf.data.Dataset.list_files(filepaths) dataset = filepath_dataset.interleave( lambda filepath: tf.data.TextLineDataset(filepath).skip(1), cycle_length=n_readers, num_parallel_calls=n_read_threads) dataset = dataset.map(preprocess, num_parallel_calls=n_parse_threads) dataset = dataset.shuffle(shuffle_buffer_size).repeat(repeat) return dataset.batch(batch_size).prefetch(1)
到此這篇關于Tensorflow加載與預處理數(shù)據(jù)詳解實現(xiàn)方法的文章就介紹到這了,更多相關Tensorflow加載與預處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python3 中的字符串(單引號、雙引號、三引號)以及字符串與數(shù)字的運算
這篇文章主要介紹了python3 中的字符串(單引號、雙引號、三引號)以及字符串與數(shù)字的運算,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07淺談Python采集網(wǎng)頁時正則表達式匹配換行符的問題
今天小編就為大家分享一篇淺談Python采集網(wǎng)頁時正則表達式匹配換行符的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12淺談Python 命令行參數(shù)argparse寫入圖片路徑操作
這篇文章主要介紹了淺談Python 命令行參數(shù)argparse寫入圖片路徑操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07