Skip to content

Commit

Permalink
Merge master to dev (autorope#813)
Browse files Browse the repository at this point in the history
* - Update tensorflow version to 1.15.0
- Add doc for Jetpack 4.4
- Remove opencv installation

* Add dataset and pre-trained model page

* fix issue autorope#634 (autorope#646)

- remove jquery dependency
- add clearTimeout

* Allow overriding WEB_CONTROL_PORT from env variable

* pin h5py version

* fix h5py version for mac

* * Update doc with donkey train command. (autorope#709)

* Update doc with developer section for building own models in donkey 4.1
* Integrate changes from PR feedback

* Donkey 4.x is now official (autorope#723)

* Update nano install docs - python3-opencv vs libopencv-python

* change slack to discord on readme

* Donkeycar 4.x release.  (autorope#644)

## Major Improvements

- New Datastore.
- More ways to pre-process image data for training. 
- Use the 2.x version of Tensorflow. 
- Lots of other minor improvements.

* Improvements to the car app and handling of KerasPilot parts: (autorope#648)

* Improvements to the car app and handling of KerasPilot parts:
* Created a simpler webserver or joystick car app by modifying and renaming the basic_web into basic template and switched this on as default. Also renamed the target from 'manage.py' to 'drive.py' because there is only driving and no training included
* Simplified the handling of uint8 and float32 numpy image arrays. KerasPilot.run() now expects uint8 data, transforms into float32 and delegates to its children. The corresponding rescaling step is gone from the car app
* smaller updates/fixes to environment and config files
* added support for tflite pilots in makemovie

* Improvements to the car app and handling of KerasPilot parts:
* Added docstring to KerasPilot methods
* Fixed bad merge for model types in complete config

* Add configuration to allow creating sub directories for each tub (like the legacy tub) or by default store all recordings in the data directory directly. (autorope#649)

* Update setup.py with progress module for pi (autorope#650)

* Update setup.py

* Update setup.py

Made changes online.

* Add testing for training: (autorope#651)

* added example tub data as tar.gz in tests with 1000 records
* check validation data size in train
* created new test_train.py
* added support for read-only tub, required to create r/o tub in tmp dir
* changed loss in categorical model to equally weight throttle and steering
* changed mod on scripts to u+x

* Rename `drive.py` to `manage.py` to preserve CLI compat. (autorope#656)

* Train still prompts you to move to then new entry point.
* Also fixes autorope#655

* Cleanup exit handlers in the new datastore. (autorope#657)

* Minor datastore_v2 improvements. (autorope#658)

* Add __exit__ handlers again.
* Use `os.linesep` to deal with line separators consistently.

* Be explicit about newline characters (autorope#660)

* Be explicit about newline characters #2 (autorope#661)

* Remove the extra flush(). Windows is less forgiving (autorope#662)

* Remove redundant code (autorope#663)

* Windows Doc Updates (autorope#668)

Added more options for Installing Donkey Car on Windows.  

- Anaconda
- Native
- Windows Subsystem for Linux (WSL) - experiential

These options give more flexibility and could make deployment easier for some individuals.  I personally always install donkey car natively onto Python installed on the System.  I will be looking more into WSL going forward as it has some interesting benefits.

* Integrate osx into travis. (autorope#665)

* add in --user flag for MakeMovie so that you can select if you want to draw the line on the video or not.  default: true

* updated args.draw_user_input

* update to include recommendations

* added in brake functionality for simulator only

fix typo in drivemode return which checked pilot/throttle instead of brake

* fix autorope/issue autorope#671 (autorope#672)

* Jonathans changes from issue autorope#634 and PR autorope#646 (autorope#676)

* Bump version to 4.0.1 (autorope#677)

* Fix template docopt, as it's called managed.py and not drive.py

* Allow overriding WEB_CONTROL_PORT from env variable

* - Add simulator support to basic.py (autorope#682)

- Update cfg_basic.py with simulator parameters

* Switch to using memory-mapped files when reading. (autorope#691)

* This makes reading a 100x faster.

* new: mqtt telemetry support (autorope#688)

* A configurable training pipeline. (autorope#693)

* Implement a Lazy transformable pipeline.
* Implement basic batching. However, this will need to be improved
  further for models with multiple outputs.
* Replace the old `Sequence` implementation used with a new `Pipeline`.

Test: Ran end to end tests.

* The telemetry mqtt test is breaking w/ a timeout on the connection to the server.

* change the public mqtt server name to one that's listening

* * Overriding inference in TensorRT as pass as it is not needed here. (autorope#698)

* Need to implement inference to run on the normalised image (autorope#699)

* Fix sequence iterators (autorope#704)

* Change training pipeline from tf.Sequence to tf.data (autorope#701)

* Improve pipeline use: move from building list of pipelines of single transforms to building a single pipeline with a list of transforms (actually just looping through function to go from TubRecord -> image -> augment -> normalise -> x and TubRecord -> y).

Fixed TfmIterators and TfmIterables.
* Iterables are the containers and are sized - these are the user objects
* Iterators are protocol objects to allow iteration, they have no logic and are local to the Iterables
* build/map_pipeline both return sized Iterables
* removed all batch logic, this is not required
* still commented but left code that uses generator based pipeline as this is simpler code

Using new small temporary pipeline generator
* this keeps the TubSequence lazy and avoids to roll out the pipeline into a list
* added a test to check consistency of the pipeline
* remove empty (after moved) augmentation file
* removed augmentation from old tub (as it's not needed and we removed the old augmentation)

New pipeline changes:
* moved augmentation into own class that is used above and can be used a  threaded or non-threaded part
* moved train functionality out of template and added 'donkey train', train.py just a simple dummy script for backward compatibility

* Address code reviews:
* Re-base on current dev to use un-altered sequence.py
* Add iterator consistency test to pipeline tests
* Undo changes in fast_stretch.py
* better tf shape manipulation
* small code improvements in training.py
* remove sleep in augment part

* Address code reviews:
* Add clearing of tubrecord list and minor renamings

* * Add support for multi-dimensional model input and making the x, y interface symmetrical on the model / training interface: (autorope#707)

- x/y_transform extract x, y as numpy arrays or floats out of the record
  - x/y_translate convert the numpy arrays of floats into tf-readable dictionaries used in tf data.
* Simplify model interface by implementing output_types() directly in the base class using output_shapes() dictionary.
* Adding developer guide for own model development
* Updated donkey command documentation
* Improve asserts and type hints in keras.py
* Added missing __init__.py in parts module.
* Add cool ascii text for donkey init and update yml and setup files including mypy
* Remove model training test from Travis and change the test to relative convergence. This avoids random fall overs in CI.
* Added test of tf.data as used in the training pipeline through re-implementation of data transformation from tub records to tf expected dictionaries, for all currently supported models.

* Minor changes for 4.1 in tub conversion script and developer doc (autorope#708)

* Minor changes for 4.1
* Update conversion script to translate discontinuous data.
* In developer guide add disclaimer for version and correct intra-page links.

* * Update doc with donkey train command.
* Update doc with developer section for building own models in donkey 4.1
* Integrate changes from PR feedback

* Incorporate PR feedback
* Add empty records concept to tub
* Minor updates to conversion script

* Incorporate PR feedback
* Add empty record type into conversion script

* docs: fix simple typo, unfarmilar -> unfamiliar (autorope#714)

There is a small typo in docs/guide/host_pc/setup_windows.md.

Should read `unfamiliar` rather than `unfarmilar`.

* Added the ability to train PyTorch models (autorope#706)

* Added in PyTorch and PyTorch Lightning to train a DC model

Successfully able to train a ResNet18-based model using PyTorch
Lightning.

* Removed hard-coded max number of epochs (used for debugging)

* Added an inference transform to ResNet18 to convert PIL -> tensor

* Unsqueezed input tensor during inference for batch dimension

* Reshaped ResNet output from (1, 2) to (2,)

* Added the ability to resume training from a checkpoint

* Added helper print message when tensorboard logging is enabled

* Updated docopt arguments for train.py. Made checkpoint optional

* Changed TorchTubDataset from sub-classing Dataset to IterableDataset

This was done in response to autorope#706 (comment)

* Renamed load_image_arr to load_image. Updated load_pil_image

load_pil_image will now handle converting the image to greyscale
(vs. this being done in load_image).

* Updated enviroments for Mac and Ubuntu. Set Python=3.7

* Updated installation documentation. Added script to setup Nano

Updated the installation instructions for Ubuntu, Mac, and Windows.
Clarified a common issue that occurs when running pip install -e .[pc]
with ZSH.

Also added a script to setup the Jetson Nano and updated the documentation
for the Nano (it previously was installing tensorflow 1.x).

* Added torch flag to setup.py to install pytorch

* Moved pytorch training into base.py and removed from train.py

* Moved Jetson Nano python package installation into requirements.txt

* Formatted with PEP8 to clean up pytorch code

* Updated docs to provide work-around for ZSH pip install -e .[pc]

* Removed duplicate dependencies in conda env files

* ResNet18 torch model now returns training loss history

* Added test file for PyTorch training

Still need to make sure this passes Travis CI.

* Added lightning_logs to .gitignore

* You can now specify the default AI framework to use in config.py

This reduces the number of command line arguments you are required
to provide.

* get_model_by_type for PyTorch now lazy imports ResNet18

* Added help message to torch_train. Got rid of linear model type

* Updated pytorch tests and fixed some syntax errors

* ResNet18 example input shape updated to be (B, 3, 224, 224)

Also now passing output_shape to load_resnet18 to modify how many
output classes are used

* No longer pinning requirement versions for Jetson Nano

* Fixed formatting in setup.py

* update configuration so that IMAGE_H and IMAGE_W are passed through to the simulator (autorope#674)

Co-authored-by: Jordan Whited <jordan@jordanwhited.com>
Co-authored-by: Tawn Kramer <tawnkramer@gmail.com>
Co-authored-by: wallarug <wallarug@coliemore.com.au>
Co-authored-by: sctse999 <jonathan@tsez.net>
Co-authored-by: DGarbanzo <47540921+DocGarbanzo@users.noreply.github.com>
Co-authored-by: Craig <cfox570@mac.com>
Co-authored-by: DocGarbanzo <dirk.prange@web.de>
Co-authored-by: Meir Tseitlin <meir.tech@gmail.com>
Co-authored-by: Tim Gates <tim.gates@iress.com>
Co-authored-by: Eric Wiener <ericwiener3@gmail.com>

* Updated path follower with Intel T265 (autorope#729)

Properly rebased on Master this time, I hope

Co-authored-by: Chris Anderson <gca2@earthlink.net>

* Remove '-dev' from version output (autorope#734)

* Updated training instructions. (autorope#744)

* Make clear how to call "run" vs "run_threaded"

Derived from Tawn Kramer's excellent video
https://www.youtube.com/watch?v=YZ4ESrtfShs

* Discuss update function

* Added Tawn's video

* More explanation of inputs and outputs

* Explain shutdown

* typo

* typo

* Make clear that threaded parts can run faster

* Remove part about running faster than main loop.

It appears that the main loop block threaded parts from running faster

* Replace Travis CI with GitHub Actions (autorope#801)

* Add github action files and remove travis files

* Suppress train tests in github actions

* Improvements in workflow, allow linter failure and don't stop build matrix on single os failure and add missing linter trigger on PRs

* Replace Travis CI with GitHub Actions (autorope#801)

* Add missing pc.yml

* Add "./" before shell script so it will run (autorope#805)

* Add "./" before shell script so it will run

* Add automatic pushing of docs (autorope#806)

* Adding auto push donkey docs for changes to docs in master

* Add missing checkout.

* Fix heading in faq

* Add force and verbose flag to mkdocs

* Fix link to roll-your-own in faq.md

* Fix minor typos in faq.md

* Fixed import for tub writer

* Revert unintended changes to code from merge from master.

* Added "DRIVE_TRAIN" back to compete template, too (autorope#809)

Again, apologies to everyone whose installation has been failing. Blame Travis!

* Added DRIVE_TRAIN back (autorope#808)

This was causing everyone's installations to fail

Co-authored-by: Jonathan Tse <jonathan@tsez.net>
Co-authored-by: Tawn Kramer <tawnkramer@gmail.com>
Co-authored-by: Rahul Ravikumar <tikurahul@gmail.com>
Co-authored-by: Jordan Whited <jordan@jordanwhited.com>
Co-authored-by: wallarug <wallarug@coliemore.com.au>
Co-authored-by: Craig <cfox570@mac.com>
Co-authored-by: Meir Tseitlin <meir.tech@gmail.com>
Co-authored-by: Tim Gates <tim.gates@iress.com>
Co-authored-by: Eric Wiener <ericwiener3@gmail.com>
Co-authored-by: Chris Anderson <analoguedevices@gmail.com>
Co-authored-by: Chris Anderson <gca2@earthlink.net>
  • Loading branch information
12 people committed Apr 19, 2021
1 parent 61e0e6f commit a228631
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 1 deletion.
29 changes: 29 additions & 0 deletions .github/workflows/push-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Push docs

on:
push:
paths:
- 'docs/**'
branches:
- master

jobs:
mkdocs-build-and-push:
name: mkdocs and push to docs.donkeycar.com
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@v2
- uses: conda-incubator/setup-miniconda@v2
with:
python-version: 3.7
auto-activate-base: true
channels: defaults, conda-forge
- run: |
conda info
conda list
conda install mkdocs
mkdocs gh-deploy --force -v
echo Docs were made and pushed to docs.donkeycar.com
2 changes: 1 addition & 1 deletion .github/workflows/python-package-conda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
activate-environment: donkey
environment-file: ${{matrix.ENV_FILE}}
auto-activate-base: false
channels: conda-forge
channels: conda-forge, pytorch
- run: |
conda info
conda list
Expand Down

0 comments on commit a228631

Please sign in to comment.