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

Function build_model_input

modelzoo/dbmtl/train.py:307–361  ·  view source on GitHub ↗
(filename, batch_size, num_epochs)

Source from the content-addressed store, hash-verified

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

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