MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / build_model_input

Function build_model_input

modelzoo/wide_and_deep/train.py:303–351  ·  view source on GitHub ↗
(filename, batch_size, num_epochs)

Source from the content-addressed store, hash-verified

301
302# generate dataset pipline
303def build_model_input(filename, batch_size, num_epochs):
304 def parse_csv(value):
305 tf.logging.info('Parsing {}'.format(filename))
306 cont_defaults = [[0.0] for i in range(1, 14)]
307 cate_defaults = [[' '] for i in range(1, 27)]
308 label_defaults = [[0]]
309 column_headers = TRAIN_DATA_COLUMNS
310 record_defaults = label_defaults + cont_defaults + cate_defaults
311 columns = tf.io.decode_csv(value, record_defaults=record_defaults)
312 all_columns = collections.OrderedDict(zip(column_headers, columns))
313 labels = all_columns.pop(LABEL_COLUMN[0])
314 features = all_columns
315 return features, labels
316
317 def parse_parquet(value):
318 tf.logging.info('Parsing {}'.format(filename))
319 labels = value.pop(LABEL_COLUMN[0])
320 features = value
321 return features, labels
322
323 '''Work Queue Feature'''
324 if args.workqueue and not args.tf:
325 from tensorflow.python.ops.work_queue import WorkQueue
326 work_queue = WorkQueue([filename], num_epochs=num_epochs)
327 # For multiple files:
328 # work_queue = WorkQueue([filename, filename1,filename2,filename3])
329 files = work_queue.input_dataset()
330 else:
331 files = filename
332 # Extract lines from input files using the Dataset API.
333 if args.parquet_dataset and not args.tf:
334 from tensorflow.python.data.experimental.ops import parquet_dataset_ops
335 dataset = parquet_dataset_ops.ParquetDataset(files, batch_size=batch_size)
336 if args.parquet_dataset_shuffle:
337 dataset = dataset.shuffle(buffer_size=20000,
338 seed=args.seed) # fix seed for reproducing
339 if not args.workqueue:
340 dataset = dataset.repeat(num_epochs)
341 dataset = dataset.map(parse_parquet, num_parallel_calls=28)
342 else:
343 dataset = tf.data.TextLineDataset(files)
344 dataset = dataset.shuffle(buffer_size=20000,
345 seed=args.seed) # fix seed for reproducing
346 if not args.workqueue:
347 dataset = dataset.repeat(num_epochs)
348 dataset = dataset.batch(batch_size)
349 dataset = dataset.map(parse_csv, num_parallel_calls=28)
350 dataset = dataset.prefetch(2)
351 return dataset
352
353
354# generate feature columns

Callers 1

mainFunction · 0.70

Calls 7

input_datasetMethod · 0.95
WorkQueueClass · 0.90
shuffleMethod · 0.45
repeatMethod · 0.45
mapMethod · 0.45
batchMethod · 0.45
prefetchMethod · 0.45

Tested by

no test coverage detected