Commit Graph

5487 Commits

Author SHA1 Message Date
Davis King b818b55391 Made the batch normalization code assign the parameter gradient outputs instead
of add to them so that it's consistent with how the layer interface expects
this to be done.
2015-12-07 21:42:22 -05:00
Davis King 2c1e67f167 Relaxed test_layer() a little. 2015-12-07 21:40:53 -05:00
Davis King 8184766043 Added conv_ spec and did a little cleanup. 2015-12-06 12:22:32 -05:00
Davis King adc022c7ad code cleanup 2015-12-06 12:10:07 -05:00
Davis King 437da23e03 Set initial bias parameters to 0. 2015-12-06 12:08:45 -05:00
Davis King 57a1072f04 Added a convolution layer. 2015-12-06 12:07:32 -05:00
Davis King aa537dccc9 Yet more robustness tweaks for test_layer(). 2015-12-06 12:06:57 -05:00
Davis King d08cd58790 More robustness tweaks for test_layer() 2015-12-06 11:46:54 -05:00
Davis King 038c73d8ed Cleaned up the tensor_conv interface a little. Also fixed an error in the spec
for this object.
2015-12-06 11:44:58 -05:00
Davis King 83ecf1d94e Made alias_tensor serializable. 2015-12-06 11:43:38 -05:00
Davis King ad40ddd3a5 Made test_layer() a little more robust. 2015-12-06 11:42:41 -05:00
Davis King cbce85ecc8 Added GPU versions of the batch normalization functions. 2015-12-05 11:13:02 -05:00
Davis King 06534305e4 fixed compile time error 2015-12-01 20:11:00 -05:00
Davis King c48e921c52 Minor cleanup 2015-12-01 08:18:13 -05:00
Davis King a07cc86a7d Added tests for the alias_tensor. 2015-12-01 08:13:17 -05:00
Davis King 6a21d80bf4 Minor change to avoid compiler warnings 2015-12-01 08:00:01 -05:00
Davis King 10fe74c1bd Cleaned up the tensor code a bit and also added a tool for making aliased
tensors.
2015-11-30 18:30:49 -05:00
Davis King 2f7898dce6 fixed missing return 2015-11-29 13:02:56 -05:00
Davis King 3b75b335c1 Gave dnn_trainer the ability to train on out of core data by adding the
train_one_step() member function.  Also improved how the host to device transfers
are overlapped with kernel computation.
2015-11-29 12:58:35 -05:00
Davis King adec3eefd1 merged 2015-11-29 12:10:00 -05:00
Davis King 486cf56b3e Fixed spelling error in comment. 2015-11-29 12:07:47 -05:00
Davis King 8bb4a42107 Made the host to device copying code wait for any outstanding kernel executions
to finish before overwriting the device memory with updated values from the
host.
2015-11-29 12:07:03 -05:00
Davis King 5c058ea110 Made cuBLAS and cuDNN automatically switch their library handles to the
currently active device id if the user changes the active device via a call to
cudaSetDevice().
2015-11-29 08:58:40 -05:00
Davis King ccb148b445 Cleaned up cuda error handling code 2015-11-26 13:53:11 -05:00
Davis King dbbce8253e Fixed a compile time bug. 2015-11-21 16:43:26 -05:00
Davis King f47e3270be Finished the bindings in this file 2015-11-21 16:33:01 -05:00
Davis King 3e44d29995 Added cuda tests 2015-11-21 16:31:56 -05:00
Davis King e1e4d6df3a Added cuda implementations of a bunch of functions. 2015-11-21 16:31:13 -05:00
Davis King ca11ff4990 Added more stuff to tests 2015-11-21 13:48:41 -05:00
Davis King 5f5c46f49e Made loss layers output the gradients by assigning them to the output rather
than adding them.  This way, the gradient buffer can be used as scratch space
during the loss computation.
2015-11-21 10:42:39 -05:00
Davis King e2a67dec4c Added more gemm() tests 2015-11-21 10:37:00 -05:00
Davis King fb6c59e4c8 Fixed cmake lists so it compiles correctly without C++11 2015-11-21 09:39:07 -05:00
Davis King 1717605b7b Fixed minor bug 2015-11-21 09:37:51 -05:00
Davis King c79ae7d43c Changed gemm so it doesn't cause device to host copies in the assert statements. 2015-11-21 09:36:50 -05:00
Davis King d059f3c1e0 fixed compiler errors 2015-11-20 18:20:36 -05:00
Davis King b084076ea0 Added batch normalization layer skeleton 2015-11-20 18:20:16 -05:00
Davis King 627db9e14d Removed cruft 2015-11-20 18:19:56 -05:00
Davis King 3bb2a8179e Added sigmoid, tanh, and softmax layers. Also added log loss layer. 2015-11-20 17:50:09 -05:00
Davis King e89d468b72 Added log1pexp() 2015-11-20 08:02:32 -05:00
Davis King 5e92f10f2b Fixed a compile time bug. 2015-11-19 08:58:23 -05:00
Davis King a7ea7d00fe Implemented CPU version of tanh 2015-11-18 18:32:28 -05:00
Davis King 9b36bb980e Implemented the CPU version of softmax 2015-11-18 18:26:21 -05:00
Davis King 3124aa0dba Added CPU implementation of sigmoid() and sigmoid_gradient() 2015-11-18 08:52:03 -05:00
Davis King 7c65c8d28a removed cruft 2015-11-18 08:27:24 -05:00
Davis King 7e12a32b45 Added more kinds of affine_transform(), made the solver use affine_transform() so it
runs on the GPU, and made affine_transform() take only tensors.
2015-11-18 08:26:48 -05:00
Davis King c8948ee0ca Finished tensor_rand constructor. 2015-11-16 18:29:09 -05:00
Davis King 3d1c22b9f5 Code cleanup 2015-11-16 18:21:37 -05:00
Davis King 51ea50b3bf More batch normalization optimizations. 2015-11-16 18:04:05 -05:00
Davis King 32125dea2f Optimized batch normalization code 2015-11-16 17:28:10 -05:00
Davis King 273a21cf10 More activation layer updates. Now the relu and fc layer objects
use either CPU or GPU.  Fixed a bug in gemm().
2015-11-16 08:55:00 -05:00