* add progress information (current/total and percent)
* print a new line instead of overwritting with spaces
* check if target_val is an integer with std::trunc
* add function to compute string dimensions in pixels
* use custom struct as a return value, remove first and last params
* Update dlib/image_transforms/draw_abstract.h
Co-authored-by: Davis E. King <davis@dlib.net>
* added support for std::optional if using C++
* oops, bug fix + check if item already holds a type
* oops, another bug fix
* remove warnings about unused parameters
Co-authored-by: pf <pf@me>
* [SERIALIZATION] addes support for std::variant
* [SERIALIZATION] bug fix + added tests
* support immutable types
* put an immutable type in std::variant
Co-authored-by: pf <pf@me>
Also fix this error from cmake 3.5.1:
```
CMake Error at CMakeLists.txt:62 (if):
if given arguments:
"CMAKE_COMPILER_IS_GNUCXX" "AND" "CMAKE_CXX_COMPILER_VERSION" "VERSION_LESS_EQUAL" "4.8.5"
Unknown arguments specified
```
* [TYPE_SAFE_UNION] use std::aligned_union instead of stack_based_memory_block. std::aligned_union was specifically designed to do this kind of stuff and we are better off trusting the standard library deciding what the correct storage type should be and what the appropriate alignment should be
* [TYPE_SAFE_UNION] as per Davis' suggestion, std::aligned_union can take Len parameter 0. Also, the content's of validate_type() has been bugging me for ages, so i created is_any which is based on std::is_same. I've also replaced is_same_type with std::is_same
Co-authored-by: Peter Featherstone <peter@grampus-server.com>
* wip: add apis for clipped_relu and elu, and layer implementation for clipped_relu
* add tensor_tools documentation
* add cpu implementations for new activations
* add elu layer
* use upperbound and lowerbound for clipped_relu
* fix clipped_relu gradient due to wrong variable naming
* fix elu_gradient due to wrong variable naming
* fix elu_gradient documentation
* add documentation
* WIP: add test_layer cases for clipped_relu and elu
For some reason that I can't see, ELU is failing...
* add clipped_relu and elu tests... cuda elu layer still does not work
* fix spacing
* add custom cuda implementation for elu_gradient (this one works)
* Revert "add custom cuda implementation for elu_gradient (this one works)"
This reverts commit 446dd80396.
* Revert "Revert "add custom cuda implementation for elu_gradient (this one works)""
This reverts commit 0b615f5008.
* add comment about custom elu gradient implementation
* add gradient tests, restore cudnn elu gradient
* re add custom elu gradient implementation
* update docs
* use own cuda implementation for clipped_relu and elu
Co-authored-by: Davis E. King <davis@dlib.net>
* Add letterbox image
* use && instead of and
* make function adhere to the generic image interface
* avoid extra copy
* add some overloads and a simple test
* add documentation
* use zero_border_pixels and remove superfluous temporary image
* allow different input and out images and update docs
* remove empty line
* be more explicit about output image size
* Add softmax function for matrix type
* make softmax inherit from basic_op_m
* fix comment
* add test for matrix softmax
* remove include
* take inspiration from op_normalize
* use multiplication instead of division
* fix typo in documentation
This reverts commit 8b9d04390c.
Reverting this because the cmake pip pakage is still busted. I've been
getting messages from many people about how it's breaking their
systems/installs.
This dependency was explicitly removed two years ago because pip was
installing a broken cmake on some systems. I'm adding the dependency
back in the hope that the pip copy of cmake has been fixed on all
systems by this point.
* [SERIALIZATION] - vectorstream can now be used with vector<int8_t> and vector<uint8_t>
* [SERIALIZATION] - update proxy_serialize and proxy_deserialize to work with vector<int8_t> and vector<uint8_t>
* [SERIALIZATION] - updated vectorstream tests
* [SERIALIZATION] - updated serialize tests. check you can go to and from any of vector<char>, vector<int8_t> and vector<uint8_t>
* [SERIALIZATION] - updated matrix tests. check you can go to and from any of vector<char>, vector<int8_t> and vector<uint8_t>
* [SERIALIZATION] - updated dnn tests. check you can go to and from any of vector<char>, vector<int8_t> and vector<uint8_t>
* [SERIALIZATION] improved and possibly safer
* [SERIALIZATION] use placement new. best of all worlds i think. we have least object overhead. but code looks a tad uglier. oh well, user doesn't have to care
* [SERIALIZATION] i hope this is easier on the eyes.
Co-authored-by: pf <pf@pf-ubuntu-dev>