欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Tensorflow加載與預處理數(shù)據(jù)詳解實現(xiàn)方法

 更新時間:2022年11月21日 11:20:05   作者:沐兮Krystal  
讀取大型數(shù)據(jù)集并對其進行有效預處理可能對其他深度學習庫來說很難實現(xiàn),但是TensorFlow借助Data API很容易實現(xiàn):只需創(chuàng)建一個數(shù)據(jù)集對象,并告訴它如何從何處獲取數(shù)據(jù)以及如何對其進行轉換

數(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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論