Commit Graph

6728 Commits

Author SHA1 Message Date
Davis King
1928723aae Moved label_to_ignore into loss_multiclass_log_per_pixel_ and also cleaned up a
few minor things.
2017-07-01 16:26:58 -04:00
Juha Reunanen
4bc6c1e5b4 Add new loss layer for semantic segmentation (pixel-wise classification) (#540)
* #288 - add new layer loss_multiclass_log_matrixoutput for semantic-segmentation purposes

* In semantic segmentation, add capability to ignore individual pixels when computing gradients

* In semantic segmentation, 65535 classes ought to be enough for anybody

* Divide matrix output loss by matrix dimensions too, in order to make losses related to differently sized matrices more comparable
- note that this affects the required learning rate as well!

* Review fix: avoid matrix copy

* Review fix: rename to loss_multiclass_log_per_pixel

* Review fix: just use uint16_t as the label type

* Add more tests: check that network params and outputs are correct

* Improve error message when output and truth matrix dimensions do not match

* Add test case verifying that a single call of loss_multiclass_log_per_pixel equals multiple corresponding calls of loss_multiclass_log

* Fix test failure by training longer

* Remove the test case that fails on Travis for some reason, even though it works on AppVeyor and locally
2017-07-01 16:12:34 -04:00
Davis King
37a77ad86e Fixed broken copy constructor and assignment operator of con_, which became
broken about an hour ago.  Oops.
2017-07-01 15:46:25 -04:00
Davis King
d780f8bcd8 suppress compiler warnings 2017-07-01 15:24:25 -04:00
Davis King
f31480980d merged 2017-07-01 14:47:05 -04:00
Davis King
f5574434db Upgraded loss_mmod_ to support objects of varying aspect ratio. This changes
the API for the mmod_options struct slightly.
2017-07-01 14:46:27 -04:00
Davis King
dcfff1c463 Added process() and process_batch() to add_loss_layer. These routines let you
easily pass arguments to any optional parameters of a loss layer's to_tensor()
routine.  For instance, it makes it more convenient to set loss_mmod_'s
adjust_threshold parameter.
2017-07-01 12:12:30 -04:00
Davis King
78103a582c updated spec about con_ 2017-07-01 11:54:20 -04:00
Davis King
8b805c99d9 updated docs 2017-07-01 11:53:53 -04:00
Davis King
b377f752d9 Made it so you can set the number of output filters for con_ layers at runtime. 2017-07-01 11:53:38 -04:00
Davis King
8eb9e295ee Made dnn_trainer sync its state to two separate sync files that it alternates
between.  This should make syncing more robust to sudden hardware failure that
happens right when saving to disk.
2017-07-01 11:41:26 -04:00
Davis King
a06b5292bd Added select_oldest_file() and select_newest_file() 2017-07-01 11:37:16 -04:00
Davis King
0796ce79b4 updated docs 2017-07-01 11:34:35 -04:00
Davis King
2f4e373b21 Added file::last_modified() for windows version of code. 2017-07-01 11:20:45 -04:00
Davis King
e00352aa09 merged 2017-07-01 10:39:05 -04:00
Davis King
56428eb9c0 Added last_modified() method to dlib::file. 2017-07-01 10:38:15 -04:00
Juha Reunanen
2ee26aa5bd Problem: Visual Studio's vcpkgsrv.exe constantly uses a single CPU core, (#666)
apparently never finishing whatever it's trying to do. Moreover,
            this issue prevents some operations like switching from Debug to
            Release (and vice versa) in the IDE. (Your mileage may vary.)
Workaround: Keep manually killing the vcpkgsrv.exe process.
Solution:   Disable IntelliSense for some files. Which files? Unfortunately
            this seems to be a trial-and-error process.
2017-06-30 05:47:21 -04:00
Davis King
023e13982d merged 2017-06-28 08:55:47 -04:00
Davis King
e44da57705 Minor change to avoid errors from some versions of cmake. 2017-06-28 08:53:43 -04:00
Davis King
c68af9dcbf Merge branch 'OranjeeGeneral-master' 2017-06-26 21:08:55 -04:00
Davis King
31bcddd5e4 Cleaned up documentation for conv_. Also removed unnecessary tensor
reallocation and copying inside conv_'s backward pass.  Doing this
required adding an add_to_output boolean option to the methods of
tensor_conv.
2017-06-26 21:06:59 -04:00
Davis King
b3d5dbd3b3 Fixed typo in comment. 2017-06-26 21:01:47 -04:00
Davis King
f9bb4f472b Merge branch 'master' of git://github.com/OranjeeGeneral/dlib into OranjeeGeneral-master 2017-06-26 14:59:03 -04:00
OranjeeGeneral
ecb7095e4a refactored interface to reduce complexity so conv and convt layers forward passes have to call setup explicit now and there is only one ()-operator 2017-06-22 17:55:20 +01:00
Davis King
48c68f218e Fixed mex class code printing 2017-06-21 17:06:48 -04:00
Davis King
c5847374f4 Added operator= for simd8f so assignment from float compiles. 2017-06-21 09:10:34 -04:00
Davis King
cbd187fb61 merged 2017-06-19 20:55:51 -04:00
Davis King
39be45ada2 Made is so pressing e in imglab toggles between views of the image where the
histogram is equalized or unmodified.  This way, if you are looking at
particularly dark or badly contrasted images you can toggle this mode and maybe
get a better view of what you are labeling.
2017-06-19 20:54:45 -04:00
Davis King
ba72c2f95c Updated code to work with new random_cropper interface. 2017-06-18 08:11:54 -04:00
Davis King
17b48b97bb Changed the random_cropper's interface so that instead of talking in terms of
min and max object height, it's now min and max object size.  This way, if you
have objects that are short and wide (i.e. objects where the relevant dimension
is width rather than height) you will get sensible behavior out of the random
cropper.
2017-06-17 12:34:26 -04:00
Joachim
3a91295ea7 Merge branch 'master' of https://github.com/davisking/dlib 2017-06-13 13:33:42 +01:00
Grigoris
75f6658223 Minor typo corrections in shape predictor trainer. (#633) 2017-06-07 06:51:19 -04:00
Plumtus
362bec1099 Reinitialize averagers when saved sync file was reloaded. (#629) 2017-06-06 14:19:23 -04:00
Davis King
d2b80bfe6f Switched order of things in if statement so cmake hopefully won't give weird errors. 2017-06-06 05:47:00 -04:00
Davis King
74fbca45ca Changed the converter so that, rather than producing one python file with
everything in it, it now makes a python file as before but an additional binary
file with all the weights in it.  This way, if you are working with a network
with a very large number of weights you won't end up with a crazy large python
script.
2017-06-04 10:06:44 -04:00
Davis King
f9eab48813 updated docs 2017-06-02 22:51:59 -04:00
Davis King
3ee460da93 Added set_rect_area() 2017-06-02 22:50:01 -04:00
Davis King
5bc1792d4f Added a .fill() member to curand_generator that can create random 32bit
integers.
2017-05-31 16:08:00 -04:00
Davis King
2ee1036299 merged 2017-05-30 17:18:49 -04:00
Davis King
e8e064e534 Added --compiler-flags to setup.py so you can pass options directly to gcc. 2017-05-30 17:18:04 -04:00
Evgeniy Fominov
9ed2ba9e5a Possible CLang fix for Neon-based SIMD4i (#612) 2017-05-30 05:40:11 -04:00
Davis King
0ef3b736fd Relaxed the default non-max suppression parameters used by the mmod_options
object so that users of the deep learning MMOD tool don't get spurious errors
about impossibly labeled objects during training.
2017-05-29 20:06:37 -04:00
Davis King
88383a848b Made the converter handle caffe's odd pooling layer output size calculations. 2017-05-28 11:07:02 -04:00
Davis King
724cb5006f Work around a bug in visual studio 2015. 2017-05-27 12:56:24 -04:00
Davis King
df19361c8f Made calling clean() on network objects also call clean on any layer detail
objects that also provide a .clean() method.
2017-05-27 11:59:32 -04:00
Davis King
115e8b6dfa updated docs 2017-05-26 17:24:44 -04:00
Davis King
e1f2bb3859 Added visit_layers_until_tag() 2017-05-26 17:23:58 -04:00
Davis King
44387e396d merged 2017-05-24 07:25:51 -04:00
Davis King
a88f1bd8f2 Made the converter add zero padding layers when needed by Eltwise to replicate
the behavior of dlib's add_prev layers.
2017-05-24 07:24:12 -04:00
Davis King
984b694962 Made error message slightly better. 2017-05-22 19:11:00 -04:00