1. 20 Apr, 2019 1 commit
    • Shining Sun's avatar
      Remove contrib imports, or move them inline (#6591) · 8ff9eb54
      Shining Sun authored
      * Remove contrib imports, or move them inline
      
      * Use exposed API for FixedLenFeature
      
      * Replace tf.logging with absl logging
      
      * Change GFile to v2 APIs
      
      * replace tf.logging with absl loggin in movielens
      
      * Fixing an import bug
      
      * Change gfile to v2 APIs in code
      
      * Swap to keras optimizer v2
      
      * Bug fix for optimizer
      
      * Change tf.log to tf.keras.backend.log
      
      * Change the loss function to keras loss
      
      * convert another loss to keras loss
      
      * Resolve comments and fix lint
      
      * Add a doc string
      
      * Fix existing tests and add new tests for DS
      
      * Added tests for multi-replica
      
      * Fix lint
      
      * resolve comments
      
      * make estimator run in tf2.0
      
      * use compat v1 loss
      
      * fix lint issue
      8ff9eb54
  2. 27 Mar, 2019 1 commit
    • cclauss's avatar
      Change function signature (#6459) · 0b2b8997
      cclauss authored
      * from NCF_input import NCFDataset for line 181
      
      The type __NCFDataset__ is used in the type declaration on line 81 but it is never imported.
      
      [flake8](http://flake8.pycqa.org) testing of https://github.com/tensorflow/models on Python 3.7.1
      
      $ __flake8 . --count --select=E9,F63,F72,F82 --show-source --statistics__
      ```
      ./official/recommendation/data_preprocessing.py:180:3: F821 undefined name 'NCFDataset'
        # type: (str, str, dict, typing.Optional[str], bool, typing.Optional[str]) -> (NCFDataset, typing.Callable)
        ^
      1    F821 undefined name 'NCFDataset'
      1
      ```
      __E901,E999,F821,F822,F823__ are the "_showstopper_" [flake8](http://flake8.pycqa.org) issues that can halt the runtime with a SyntaxError, NameError, etc. These 5 are different from most other flake8 issues which are merely "style violations" -- useful for readability but they do not effect runtime safety.
      * F821: undefined name `name`
      * F822: undefined name `name` in `__all__`
      * F823: local variable name referenced before assignment
      * E901: SyntaxError or IndentationError
      * E999: SyntaxError -- failed to compile a file into an Abstract Syntax Tree
      
      * int, int, data_pipeline.BaseDataConstructor
      0b2b8997
  3. 18 Mar, 2019 1 commit
  4. 07 Jan, 2019 5 commits
    • Taylor Robie's avatar
      fefe47ee
    • Taylor Robie's avatar
      address more PR comments · 6726c5e0
      Taylor Robie authored
      6726c5e0
    • Taylor Robie's avatar
      Add bisection based producer for increased scalability, enable fully... · 4fb325da
      Taylor Robie authored
      Add bisection based producer for increased scalability, enable fully deterministic data production, and use the materialized and bisection producer to check each other (via expected output md5's)
      4fb325da
    • Taylor Robie's avatar
      remove 'deterministic' · 9d42f797
      Taylor Robie authored
      9d42f797
    • Taylor Robie's avatar
      rough pass at carving out existing NCF pipeline · c5ff4ec7
      Taylor Robie authored
      2nd half of rough replacement pass
      
      fix dataset map functions
      
      reduce bias in sample selection
      
      cache pandas work on a daily basis
      
      cleanup and fix batch check for multi gpu
      
      multi device fix
      
      fix treatment of eval data padding
      
      print data producer
      
      replace epoch overlap with padding and masking
      
      move type and shape info into the producer class and update run.sh with larger batch size hyperparams
      
      remove xla for multi GPU
      
      more cleanup
      
      remove model runner altogether
      
      bug fixes
      
      address subtle pipeline hang and improve producer __repr__
      
      fix crash
      
      fix assert
      
      use popen_helper to create pools
      
      add StreamingFilesDataset and abstract data storage to a separate class
      
      bug fix
      
      fix wait bug and add manual stack trace print
      
      more bug fixes and refactor valid point mask to work with TPU sharding
      
      misc bug fixes and adjust dtypes
      
      address crash from decoding bools
      
      fix remaining dtypes and change record writer pattern since it does not append
      
      fix synthetic data
      
      use TPUStrategy instead of TPUEstimator
      
      minor tweaks around moving to TPUStrategy
      
      cleanup some old code
      
      delint and simplify permutation generation
      
      remove low level tf layer definition, use single table with slice for keras, and misc fixes
      
      missed minor point on removing tf layer definition
      
      fix several bugs from recombinging layer definitions
      
      delint and add docstrings
      
      Update ncf_test.py. Section for identical inputs and different outputs was removed.
      
      update data test to run against the new producer class
      c5ff4ec7
  5. 20 Dec, 2018 1 commit
  6. 07 Nov, 2018 1 commit
  7. 03 Nov, 2018 1 commit
  8. 30 Oct, 2018 1 commit
  9. 29 Oct, 2018 1 commit
  10. 26 Oct, 2018 1 commit
    • Reed's avatar
      Split --ml_perf into two flags. (#5615) · 4298c3a3
      Reed authored
      --ml_perf now just changes the model to make it MLPerf compliant. --output_ml_perf_compliance_logging adds the MLPerf compliance logs.
      4298c3a3
  11. 24 Oct, 2018 1 commit
    • Taylor Robie's avatar
      Add logging calls to NCF (#5576) · 780f5265
      Taylor Robie authored
      * first pass at __getattr__ abuse logger
      
      * first pass at adding tags to NCF
      
      * minor formatting updates
      
      * fix tag name
      
      * convert metrics to python floats
      
      * getting closer...
      
      * direct mlperf logs to a file
      
      * small tweaks and add stitching
      
      * update tags
      
      * fix tag and add a sudo call
      
      * tweak format of run.sh
      
      * delint
      
      * use distribution strategies for evaluation
      
      * address PR comments
      
      * delint and fix test
      
      * adjust flag validation for xla
      
      * add prefix to distinguish log stitching
      
      * fix index bug
      
      * fix clear cache for root user
      
      * dockerize cache drop
      
      * TIL some regex magic
      780f5265
  12. 20 Oct, 2018 1 commit
  13. 18 Oct, 2018 1 commit
    • Taylor Robie's avatar
      Reorder NCF data pipeline (#5536) · 19d4eaaf
      Taylor Robie authored
      * intermediate commit
      
      finish replacing spillover with resampled padding
      
      intermediate commit
      
      * resolve merge conflict
      
      * intermediate commit
      
      * further consolidate the data pipeline
      
      * complete first pass at data pipeline refactor
      
      * remove some leftover code
      
      * fix test
      
      * remove resampling, and move train padding logic into neumf.py
      
      * small tweaks
      
      * fix weight bug
      
      * address PR comments
      
      * fix dict zip. (Reed led me astray)
      
      * delint
      
      * make data test deterministic and delint
      
      * Reed didn't lead me astray. I just can't read.
      
      * more delinting
      
      * even more delinting
      
      * use resampling for last batch padding
      
      * pad last batch with unique data
      
      * Revert "pad last batch with unique data"
      
      This reverts commit cbdf46efcd5c7907038a24105b88d38e7f1d6da2.
      
      * move padded batch to the beginning
      
      * delint
      
      * fix step check for synthetic data
      19d4eaaf
  14. 14 Oct, 2018 1 commit
  15. 13 Oct, 2018 1 commit
  16. 11 Oct, 2018 3 commits
  17. 10 Oct, 2018 1 commit
  18. 09 Oct, 2018 1 commit
  19. 03 Oct, 2018 1 commit
    • Taylor Robie's avatar
      Move evaluation to .evaluate() (#5413) · c494582f
      Taylor Robie authored
      * move evaluation from numpy to tensorflow
      
      fix syntax error
      
      don't use sigmoid to convert logits. there is too much precision loss.
      
      WIP: add logit metrics
      
      continue refactor of NCF evaluation
      
      fix syntax error
      
      fix bugs in eval loss calculation
      
      fix eval loss reweighting
      
      remove numpy based metric calculations
      
      fix logging hooks
      
      fix sigmoid to softmax bug
      
      fix comment
      
      catch rare PIPE error and address some PR comments
      
      * fix metric test and address PR comments
      
      * delint and fix python2
      
      * fix test and address PR comments
      
      * extend eval to TPUs
      c494582f
  20. 20 Sep, 2018 1 commit
  21. 14 Sep, 2018 1 commit
  22. 05 Sep, 2018 1 commit
    • Reed's avatar
      Fix spurious "did not start correctly" error. (#5252) · 7babedc5
      Reed authored
      * Fix spurious "did not start correctly" error.
      
      The error "Generation subprocess did not start correctly" would occur if the async process started up after the main process checked for the subproc_alive file.
      
      * Add error message
      7babedc5
  23. 22 Aug, 2018 1 commit
    • Reed's avatar
      Fix convergence issues for MLPerf. (#5161) · 64710c05
      Reed authored
      * Fix convergence issues for MLPerf.
      
      Thank you to @robieta for helping me find these issues, and for providng an algorithm for the `get_hit_rate_and_ndcg_mlperf` function.
      
      This change causes every forked process to set a new seed, so that forked processes do not generate the same set of random numbers. This improves evaluation hit rates.
      
      Additionally, it adds a flag, --ml_perf, that makes further changes so that the evaluation hit rate can match the MLPerf reference implementation.
      
      I ran 4 times with --ml_perf and 4 times without. Without --ml_perf, the highest hit rates achieved by each run were 0.6278, 0.6287, 0.6289, and 0.6241. With --ml_perf, the highest hit rates were 0.6353, 0.6356, 0.6367, and 0.6353.
      
      * fix lint error
      
      * Fix failing test
      
      * Address @robieta's feedback
      
      * Address more feedback
      64710c05
  24. 18 Aug, 2018 1 commit
    • Reed's avatar
      Speed up cache construction. (#5131) · 5aee67b4
      Reed authored
      This is done by using a higher Pickle protocol version, which the Python docs describe as being "slightly more efficient". This reduces the file write time at the beginning from 2 1/2 minutes to 5 seconds.
      5aee67b4
  25. 02 Aug, 2018 2 commits
  26. 31 Jul, 2018 5 commits
  27. 30 Jul, 2018 1 commit
    • Taylor Robie's avatar
      NCF pipeline refactor (take 2) and initial TPU port. (#4935) · 6518c1c7
      Taylor Robie authored
      * intermediate commit
      
      * ncf now working
      
      * reorder pipeline
      
      * allow batched decode for file backed dataset
      
      * fix bug
      
      * more tweaks
      
      * parallize false negative generation
      
      * shared pool hack
      
      * workers ignore sigint
      
      * intermediate commit
      
      * simplify buffer backed dataset creation to fixed length record approach only. (more cleanup needed)
      
      * more tweaks
      
      * simplify pipeline
      
      * fix misplaced cleanup() calls. (validation works\!)
      
      * more tweaks
      
      * sixify memoryview usage
      
      * more sixification
      
      * fix bug
      
      * add future imports
      
      * break up training input pipeline
      
      * more pipeline tuning
      
      * first pass at moving negative generation to async
      
      * refactor async pipeline to use files instead of ipc
      
      * refactor async pipeline
      
      * move expansion and concatenation from reduce worker to generation workers
      
      * abandon complete async due to interactions with the tensorflow threadpool
      
      * cleanup
      
      * remove performance_comparison.py
      
      * experiment with rough generator + interleave pipeline
      
      * yet more pipeline tuning
      
      * update on-the-fly pipeline
      
      * refactor preprocessing, and move train generation behind a GRPC server
      
      * fix leftover call
      
      * intermediate commit
      
      * intermediate commit
      
      * fix index error in data pipeline, and add logging to train data server
      
      * make sharding more robust to imbalance
      
      * correctly sample with replacement
      
      * file buffers are no longer needed for this branch
      
      * tweak sampling methods
      
      * add README for data pipeline
      
      * fix eval sampling, and vectorize eval metrics
      
      * add spillover and static training batch sizes
      
      * clean up cruft from earlier iterations
      
      * rough delint
      
      * delint 2 / n
      
      * add type annotations
      
      * update run script
      
      * make run.sh a bit nicer
      
      * change embedding initializer to match reference
      
      * rough pass at pure estimator model_fn
      
      * impose static shape hack (revisit later)
      
      * refinements
      
      * fix dir error in run.sh
      
      * add documentation
      
      * add more docs and fix an assert
      
      * old data test is no longer valid. Keeping it around as reference for the new one
      
      * rough draft of data pipeline validation script
      
      * don't rely on shuffle default
      
      * tweaks and documentation
      
      * add separate eval batch size for performance
      
      * initial commit
      
      * terrible hacking
      
      * mini hacks
      
      * missed a bug
      
      * messing about trying to get TPU running
      
      * TFRecords based TPU attempt
      
      * bug fixes
      
      * don't log remotely
      
      * more bug fixes
      
      * TPU tweaks and bug fixes
      
      * more tweaks
      
      * more adjustments
      
      * rework model definition
      
      * tweak data pipeline
      
      * refactor async TFRecords generation
      
      * temp commit to run.sh
      
      * update log behavior
      
      * fix logging bug
      
      * add check for subprocess start to avoid cryptic hangs
      
      * unify deserialize and make it TPU compliant
      
      * delint
      
      * remove gRPC pipeline code
      
      * fix logging bug
      
      * delint and remove old test files
      
      * add unit tests for NCF pipeline
      
      * delint
      
      * clean up run.sh, and add run_tpu.sh
      
      * forgot the most important line
      
      * fix run.sh bugs
      
      * yet more bash debugging
      
      * small tweak to add keras summaries to model_fn
      
      * Clean up sixification issues
      
      * address PR comments
      
      * delinting is never over
      6518c1c7