tensorflow常見的工業界資料讀取方式

2021-10-08 11:17:46 字數 2745 閱讀 2243

columns = [

'id',

'click',

'hour',

..... (省略了,是file_path資料檔案的列標頭檔案)

]def input_fn(file_path):

tf.data.make_initializable_iterator

dataset = tf.data.experimental.make_csv_dataset(file_path,

batch_size=10,

column_names=columns,

label_name='click',

na_value="?",

num_epochs=1)

dataset = dataset.shuffle(500)

return dataset

1000009418151094273,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,ddd2926e,44956a24,1,2,15706,320,50,1722,0,35,-1,79

10000169349117863715,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,96809ac8,711ee120,1,0,15704,320,50,1722,0,35,100084,79

10000371904215119486,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,b3cf8def,8a4875bd,1,0,15704,320,50,1722,0,35,100084,79

10000640724480838376,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,e8275b8f,6332421a,1,0,15706,320,50,1722,0,35,100084,79

returns a dataset of feature dictionaries from example protos.

注意:該方法只能讀取 tfrecord格式資料

return tf.data.experimental.make_batched_features_dataset(

file_pattern=train_files, #資料檔案儲存路徑,請使用 tf.io.gfile.glob

batch_size=flags.train_batch_size, #訓練資料批次

features=feature_schema, #特徵標識的key

label_key="label",

num_epochs=flags.train_epochs, #訓練批次

shuffle=true,

shuffle_buffer_size=flags.train_shuffle_buffer,

shuffle_seed=random.randint(0, 1000000),

reader_num_threads=flags.reader_num_threads,

parser_num_threads=flags.parser_num_threads,

drop_final_batch=false)

其中,feature_schema的獲取方式:

feature_schema =
這個要和 model_fun()的 feature_cloumn相吻合。

比較重要的引數:

def get_file_list(base_path, start_date_str, end_date_str=none, file_pattern="part*", shuffle=true):

start_date = datetime.strptime(start_date_str, '%y-%m-%d')

end_date = datetime.strptime(end_date_str, '%y-%m-%d') if end_date_str is not none else start_date

day_range = (end_date - start_date).days

if day_range < 0:

raise valueerror('start_date_str must not later then end_date_str!')

date_list = [start_date + timedelta(days=i) for i in range(day_range + 1)]

path_list = ["%s/%s/%s" % (base_path, day.strftime('%y%m%d'), file_pattern) for day in date_list]

file_list =

for path in path_list:

file_list.extend(tf.io.gfile.glob(path))

if shuffle:

random.shuffle(file_list)

return file_list

tensorflow常見函式

numpy.random.normal loc 0.0,scale 1.0,size none 高斯分布函式 loc 該概率分布的均值,對應著整個分布的中心 center scale 該概率分布的標準差 對應於分布的寬度,scale越大越矮胖,scale越小,越瘦高 size 輸出的shape,預設...

TensorFlow常見函式

tensorflow隨機數生成函式 函式名稱 隨機數分布 主要引數 tf.random normal 正態分佈 平均值 標準差 取值型別 tf.truncated normal 正態分佈,但如果隨機出來的值偏離平均值超過2個標準差,那麼這個數將會被重新隨機 平均值 標準差 取值型別 tf.rando...

工業乙太網的常見協議

1 modbus tcp ip 該協議由施耐德公司推出,以一種非常簡單的方式將modbus幀嵌入到tcp幀中,使modbus與乙太網和tcp ip結合,成為modbus tcp ip。這是一種面向連線的方式,每乙個呼叫都要求乙個應答,這種呼叫 應答的機制與modbus的主 從機制一致,但通過工業乙太...