Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wrapper type implementation #17

Merged
merged 8 commits into from
May 14, 2019
Merged

Wrapper type implementation #17

merged 8 commits into from
May 14, 2019

Conversation

PhilipVinc
Copy link
Member

Regardless of the discussion in #10, this is a first implementation of wrapper types.

At the moment I only added TBText, TBHistogram and TBVector. This should all that we can support at the moment, until new loggers are added.

cc @oxinabox @shashikdm

@codecov-io
Copy link

codecov-io commented Apr 30, 2019

Codecov Report

Merging #17 into master will decrease coverage by 1.92%.
The diff coverage is 47.05%.

Impacted file tree graph

@@            Coverage Diff            @@
##           master     #17      +/-   ##
=========================================
- Coverage   75.12%   73.2%   -1.93%     
=========================================
  Files          22      23       +1     
  Lines         193     209      +16     
=========================================
+ Hits          145     153       +8     
- Misses         48      56       +8
Impacted Files Coverage Δ
src/TensorBoardLogger.jl 100% <ø> (ø) ⬆️
src/logger_dispatch.jl 52.63% <0%> (-2.93%) ⬇️
src/logger_dispatch_overrides.jl 53.33% <53.33%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1b4bbe1...7ace88a. Read the comment docs.

…reprocessing structures so that it's just a one-liner to drop fields out of a struct when logging
src/logger_dispatch.jl Outdated Show resolved Hide resolved
@PhilipVinc
Copy link
Member Author

Note to self before I forget it while I’m on holidays: if I wrap a complex valued array with ‘TB_Histogram’ or ‘TB_Vector’ this wont work. I need to find a way to reprocess wrapped types and think a bit more about this

@PhilipVinc
Copy link
Member Author

I solved the above issue by specializing the preprocess method.

A more general way to handle Wrappers of objects would be nice: For example, to handle arrays of measurements from Measurements.jl package or for now wrapping a whole Layer or Chain of layers.

@PhilipVinc PhilipVinc merged commit 53669c5 into master May 14, 2019
@PhilipVinc PhilipVinc deleted the wrapper_types branch May 14, 2019 16:01
shashikdm referenced this pull request in shashikdm/TensorBoardLogger.jl May 26, 2019
* use argument decomposition in log_histogram

* Rename Logger to TBLogger

*  [Pulled from NeuralQuantum.jl] Implement the AbstractLogger interface.

* Rename  delta_step -> log_step_increment as suggested by @oxinabox
Add a few docstrings
Remove Coveralls

* Make `preprocess` recursive as suggested by @oxinabox
  - preprocess now calls itself recursively and only pushes to a list if the type can be serialized.
  - Remove the `loggable` function as now it's no longer needed.
  - There is also no need for a stack (and the DataStructures dependency). Just use a Vector for `data` in `handle_message`
  - Fix the readme: `delta_step` -> `log_step_increment`

* Fix tests by using `step` keyword in `log_value`. ( I removed the non-keyword version in the last commit )

* Add very basic test for the logging interface.

* Silently drop things we can't serialize

* Bugfix + Support Tuples

* Log histogram support N-d arrays (#7)

* log N-d arrays

* Update src/Loggers/LogHistograms.jl

Co-Authored-By: shashikdm <shashikant.123kadam@gmail.com>

* Update LogHistograms.jl

* Use an enum to describe initialization policy + tests

* Add some tests for scalar and histogram summary creation

* Add coverage

* Add more tests and fix two minor bugs in log_vector

* correct docstring (#13)

* Logtext first implementation (#12)

* init logtext

* Add util function serialize_proto

* Add markdown_repr and removed type constraint on data

* change improved markdown_repr

* Add simple tests for text logger

* minor bug fix

* relax type constraints (#15)

* relax type constraints

* don't loop and push

* A collection of cleanups (#16)

* cleanup text logger

* rename the file with the event code to reflect its contents

* Move the logger type

* cleanup imports and exports

* centeralize the code that decided which logger to use into one file

* - Move proto files out of src/
- Update the README
- remove proto files from coverage

* BugFix

* Log anything that can't be logged otherwise as text

* Split the initialization method of TBLogger

* rename set_step to set_step! and increment_step to increment_step!. Remove old (and unused) methods. Define a reset! method for TBLogger

* Update TBLogger.jl (#18)

* Update TBLogger.jl

minor bug fix for Julia 1.0.3

* Update src/TBLogger.jl

Co-Authored-By: shashikdm <shashikant.123kadam@gmail.com>

* Update event.jl

* set default step as a default in make_event (#19)

* set default step as a default in make_event

* Update event.jl

minor typo

* Update .travis.yml (#20)

Update .travis.yml
Test against latest stable version and LTS version
Update test_TBLogger.jl to fix tests on 1.0

* add matrix and list support to log_text

* reverting test_TBLogger.jl

* Wrapper type implementation (#17)

* Wrapper type implementation

* Wrap `propertynames` into `logable_properties` and use it when preprocessing structures so that it's just a one-liner to drop fields out of a struct when logging

* Add common logic to TBHistogram and TBVector so that if they wrap complex arrays they split it into real and imaginary part.

* Add tests

* Add support for Matrix and List in LogText.jl (JuliaLogging#22)

* add matrix and list support to log_text

* Add Compat Intervals

* update readme with install instructions (and correct minor typos)

* Logimage (#21)

Implementing Image logging functionality.

* add `log_image` and `log_images`
* add Pkg.add("Flux") in test
* update Project.toml

* add support for 1-D images in `log_image`

* add ImageFormat explanation

* add seperate function for image objects

* add more formats
change flow of data
different `image_summary` for image object and AbstractArrays

* add preprocess function for image objects for automatic dispatch

* add TBImage, TBImages wrapper

* add tests. more required. more will come

* minor bug fix

* fix some tabspace mix (JuliaLogging#25)

* refactoring

* add support for 3-d images such as mri

* bug fixes

* add more tests

* minor bug fix

* add examples folder

* syntax revision

* change if else to function dispatch `image_summary`

* major revision `log_image` smart use of ImageFormats

* change throw message

* change dict to ternary. minor revision

* add LogAudio.jl with dep WAV.jl

* add test for `log_audio`

* add `TBAudios` and `TBAudio` and test

* bugfix `log_text`

* add examples `Audios.jl` and `Texts.jl`

* Add SummaryCollection constructors that take the summaries (JuliaLogging#26)

* Add SummaryCollection constructors that take the summaries

* use new SummaryCollecton constructor

* change SummaryCollection construction `log_audio`

* add support for 1-D and 3-D images, Logger interface, TBImage Wrapper, Tests, Examples (JuliaLogging#24)

* add matrix and list support to log_text

* add support for 1-D images in `log_image`

* add ImageFormat explanation

* add seperate function for image objects

* add more formats
change flow of data
different `image_summary` for image object and AbstractArrays

* add preprocess function for image objects for automatic dispatch

* add TBImage, TBImages wrapper

* add tests
* add support for 3-d images such as mri
* add more tests

* add examples folder

* syntax revision

* change if else to function dispatch `image_summary`

* major revision `log_image` smart use of ImageFormats

* change throw message

* Update to v 0.1.1

* update

* change docstring

* rm test data

* chane SummaryCollection

* Do not directly depend on ImageMagick (JuliaLogging#28)

* remove direct dependency on ImageMagick
* bump version

* rm WAV dependency

* switch `with_logger` blocks from `begin` to `do` in README (JuliaLogging#30)

* Add `log_audio`, `TBAudio`, tests, examples (JuliaLogging#27)

Logging audio:
* add `TBAudios` and `TBAudio` and their tests
* add examples `Audios.jl` and `Texts.jl`

Improvements to Image logging:
* add support for 1-D images in `log_image`
* add seperate function for image objects
* add dispatching support to image object
* add support for 3-d images such as mrs
* add TBImage, TBImages wrapper

Improvements to Text Logging:
* add matrix and list support to log_text

* switch `with_logger` blocks from `begin` to `do` in README (JuliaLogging#30)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants