Skip to content

Conversation

shashikdm
Copy link
Contributor

@shashikdm shashikdm commented May 15, 2019

Added L, CL, LC formats. added respective tests also

@codecov-io
Copy link

codecov-io commented May 15, 2019

Codecov Report

Merging #24 into master will decrease coverage by 3.35%.
The diff coverage is 92.85%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #24      +/-   ##
==========================================
- Coverage   82.66%   79.31%   -3.36%     
==========================================
  Files          24       24              
  Lines         323      290      -33     
==========================================
- Hits          267      230      -37     
- Misses         56       60       +4
Impacted Files Coverage Δ
src/TensorBoardLogger.jl 100% <ø> (ø) ⬆️
src/logger_dispatch.jl 69.23% <100%> (+16.59%) ⬆️
src/Loggers/LogImage.jl 100% <100%> (ø) ⬆️
src/logger_dispatch_overrides.jl 69.23% <79.16%> (+15.89%) ⬆️

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 fe1276a...103d1dc. Read the comment docs.

@shashikdm
Copy link
Contributor Author

shashikdm commented May 16, 2019

Highlights:

  • seperate image_summary for {AbstractArray, format} and {AbstractArray{:<Colorant}}(image objects)
  • autmatically detect format from image objects, must provide format for number arrays
  • automatic dispatch of image_summary for image objects when using logger interface
  • TBImage to be used only for numerical arrays and takes format as an argument
  • TBImages also takes format as argument and creates TBImage objects for each

@shashikdm
Copy link
Contributor Author

TODO:

  • Refactoring
  • more test coverage

@shashikdm shashikdm changed the title add support for 1-D images in log_image add support for 1-D and 3-D images, Logger interface, TBImage Wrapper, Tests May 16, 2019
@shashikdm shashikdm changed the title add support for 1-D and 3-D images, Logger interface, TBImage Wrapper, Tests add support for 1-D and 3-D images, Logger interface, TBImage Wrapper, Tests, Examples May 17, 2019
@oxinabox
Copy link
Member

oxinabox commented May 17, 2019

I was trying to workout how to cut down some of the common code in image_summary
More iformation can be encoded into the enum

# Note: we use the 100s place of the enum to represent the numer of dimensions
# And the 10s place to represent which dimension is the observation (N), 0 for no obseration dimension 
@enum ImageFormat begin
    L=100; 
    CL=200; LC; HW; WH; NL=210; LN=220;  
    HWC=300; WHC; CHW; CWH; NCL=310; NHW; NWH; NLC; CLN=330; LCN; HWN; WHN;  
    NHWC=410; NWHC; NCHW; NCWH; HWCN=440; WHCN; CHWN; CWHN; 
end

expected_ndims(x::ImageFormat) = Int(x) ÷ 100  # get the 100's digit
obs_dim(x::ImageFormat) = (Int(x) % 100) ÷ 10   # get the 10's digit

Copy link
Contributor Author

@shashikdm shashikdm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was trying to workout how to cut down some of the common code in image_summary
More iformation can be encoded into the enum

# Note: we use the 100s place of the enum to represent the numer of dimensions
# And the 10s place to represent which dimension is the observation (N), 0 for no obseration dimension 
@enum ImageFormat begin
    L=100; 
    CL=200; LC; HW; WH; NL=210; LN=220;  
    HWC=300; WHC; CHW; CWH; NCL=310; NHW; NWH; NLC; CLN=330; LCN; HWN; WHN;  
    NHWC=410; NWHC; NCHW; NCWH; HWCN=440; WHCN; CHWN; CWHN; 
end

expected_ndims(x::ImageFormat) = Int(x) ÷ 100  # get the 100's digit
obs_dim(x::ImageFormat) = (Int(x) % 100) ÷ 10   # get the 10's digit

this is awesome! thank you very much

@shashikdm
Copy link
Contributor Author

shashikdm commented May 18, 2019

shorter code (+65 −378 ), only about 1/3rd of the original. Greate idea @oxinabox.

@zenna
Copy link

zenna commented May 19, 2019

Just wanted to add that this is dope and highly useful for the upcoming NIPS deadline.

@PhilipVinc
Copy link
Member

Very nice!
I can merge it anytime you want.

I'll also tag another minor release with that.

@shashikdm
Copy link
Contributor Author

@PhilipVinc you can go ahead and merge this. I suggest waiting a few more days for log_audio and then tag a release. It's almost ready in my branch

@PhilipVinc PhilipVinc merged commit 182d691 into JuliaLogging:master May 21, 2019
@PhilipVinc
Copy link
Member

Thanks a lot for your efforts.

I'll tag a release anyway as we can just tag a new one after log_audio is implemented.

shashikdm pushed a commit to shashikdm/TensorBoardLogger.jl that referenced this pull request 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.

5 participants