Jeff Donahue [Thu, 20 Aug 2015 18:54:08 +0000 (11:54 -0700)]
DeconvolutionLayer Backward_gpu fix: don't redo im2col
Jeff Donahue [Thu, 20 Aug 2015 18:04:05 +0000 (11:04 -0700)]
Merge pull request #2930 from lukeyeager/pycaffe-layer_type_list
Expose LayerFactory::LayerTypeList in pycaffe
Luke Yeager [Fri, 14 Aug 2015 23:53:39 +0000 (16:53 -0700)]
Expose LayerFactory::LayerTypeList in pycaffe
Useful for validating NetParameters without crashing on SIGABRT
Jon Long [Mon, 17 Aug 2015 03:47:33 +0000 (20:47 -0700)]
Merge pull request #2812 from philkr/python_loss_weight
Expose blob loss weight to python
Ronghang Hu [Sun, 16 Aug 2015 02:02:57 +0000 (19:02 -0700)]
Malloc at least 1 byte for MultiGPU P2PSync buffers
Ronghang Hu [Sat, 15 Aug 2015 16:42:54 +0000 (09:42 -0700)]
Merge pull request #2931 from ronghanghu/fix-gpu-test
Fix MultiGPU solver test crash
Ronghang Hu [Fri, 14 Aug 2015 20:52:01 +0000 (13:52 -0700)]
Fix MultiGPU solver test with TEST_GPUID != 1
This is a patch for multi-gpu testing issue (#2926). The problem fixed in this
commit is that when calling make runtest with TEST_GPUID != 0 on a MultiGPU
machine, solver tests will crash because gpu ids in multi-gpu tests doesn't
match that of single GPU test.
Jeff Donahue [Fri, 14 Aug 2015 23:42:26 +0000 (16:42 -0700)]
Merge pull request #2928 from cypof/lib_make_target
New make target to only build the library.
Cyprien Noel [Fri, 14 Aug 2015 23:22:34 +0000 (16:22 -0700)]
New make target to only build the library.
philkr [Thu, 23 Jul 2015 15:33:58 +0000 (08:33 -0700)]
Exposing blob loss weight to python
Jeff Donahue [Fri, 14 Aug 2015 18:54:06 +0000 (11:54 -0700)]
Merge pull request #2925 from flx42/fix_classification_example
Make classification.bin support models with less than 5 classes
Felix Abecassis [Fri, 14 Aug 2015 18:15:56 +0000 (11:15 -0700)]
Make classification.bin support models with less than 5 classes
The example program would crash if the number of classes was less than
5, since it was still attempting to get the top 5 predictions.
Close #2585
Ronghang Hu [Fri, 14 Aug 2015 17:54:11 +0000 (10:54 -0700)]
Merge pull request #2921 from buaaliyi/multi_gpu
Destroy CUDA stream when finished
Ronghang Hu [Fri, 14 Aug 2015 17:03:58 +0000 (10:03 -0700)]
Merge pull request #2924 from ronghanghu/fix-malloc-empty
Malloc at least one byte in Parallel
Ronghang Hu [Fri, 14 Aug 2015 16:19:48 +0000 (09:19 -0700)]
Malloc at least one byte in Parallel
Ronghang Hu [Fri, 14 Aug 2015 16:14:28 +0000 (09:14 -0700)]
Merge pull request #2920 from PatWie/master
information about new implemented solvers
Ronghang Hu [Fri, 14 Aug 2015 16:12:45 +0000 (09:12 -0700)]
Merge pull request #2918 from ronghanghu/adam
Adam solver
Ronghang Hu [Fri, 14 Aug 2015 05:41:21 +0000 (22:41 -0700)]
Cite Adam paper in solver.hpp
PatWie [Mon, 3 Aug 2015 15:31:14 +0000 (17:31 +0200)]
Adam solver
This commit implements the Adam solver by Kingma et. al for CPU and
GPU. All solver parameters are defined in the caffe.proto. This also
adds an example for the MNIST dataset.
LI Yi [Fri, 14 Aug 2015 12:51:45 +0000 (20:51 +0800)]
Destroy CUDA stream when finished
PatWie [Fri, 14 Aug 2015 11:06:13 +0000 (13:06 +0200)]
information about new implemented solvers
Jeff Donahue [Fri, 14 Aug 2015 04:35:13 +0000 (21:35 -0700)]
Merge pull request #2572 from flx42/optimize_inner_product_special_case
Optimize inner product layer for special case M == 1
Ronghang Hu [Thu, 13 Aug 2015 20:28:11 +0000 (13:28 -0700)]
Merge pull request #2903 from ronghanghu/multi_gpu
Multi-GPU Data Parallelism
Ronghang Hu [Wed, 12 Aug 2015 19:05:56 +0000 (12:05 -0700)]
Apply mutex only to shared layers and fix NVCC warning
Ronghang Hu [Wed, 12 Aug 2015 04:38:06 +0000 (21:38 -0700)]
Data Layers Parallel for Multi-GPU
Allow data layers (and also PythonLayer when used as data layer) to be shared
among worker solver's training net, and also test net for future-proof if one
wants to do Multi-GPU testing. Data layers are locked during forward to ensure
sequential forward.
Jeff Donahue [Tue, 11 Aug 2015 21:02:56 +0000 (14:02 -0700)]
Merge pull request #2909 from jeffdonahue/learnable-param-id-fix
learnable_param_ids_ fix
Jon Long [Tue, 11 Aug 2015 20:58:41 +0000 (13:58 -0700)]
Merge pull request #2891 from fyu/fix-caffenetpy
fix examples/pycaffe/caffenet.py import
Jeff Donahue [Tue, 11 Aug 2015 20:18:41 +0000 (13:18 -0700)]
fix for learnable_param_ids_
Ronghang Hu [Tue, 11 Aug 2015 07:35:00 +0000 (00:35 -0700)]
Merge pull request #2782 from matthiasplappert/adadelta
AdaDelta Solver (v3)
Evan Shelhamer [Tue, 11 Aug 2015 01:54:20 +0000 (18:54 -0700)]
Merge pull request #2873 from gut/master
Fix gist download model and binary scripts
Jeff Donahue [Mon, 10 Aug 2015 21:30:04 +0000 (14:30 -0700)]
Merge pull request #2897 from Russell91/patch-1
Update net_spec.py
Russell Stewart [Mon, 10 Aug 2015 20:50:01 +0000 (13:50 -0700)]
Update net_spec.py
Matthias Plappert [Sat, 18 Jul 2015 16:46:51 +0000 (18:46 +0200)]
Clean up and modernize AdaDelta code; add learning rate support; add additional test cases
Kevin Bache [Thu, 19 Mar 2015 22:56:51 +0000 (15:56 -0700)]
Updated AdaDelta for modern Caffe; reduced iterations on multi-iter tests
Mohamed Omran [Sat, 20 Sep 2014 17:01:28 +0000 (19:01 +0200)]
Implement AdaDelta; add test cases; add mnist examples
Evan Shelhamer [Fri, 7 Aug 2015 20:56:49 +0000 (13:56 -0700)]
[docs] add multi-gpu usage note to interfaces
mhouston [Fri, 10 Jul 2015 23:05:48 +0000 (16:05 -0700)]
Detect topology corner cases and improve broadcast order
- Start with distant nodes in broadcast
- Fix outside loop to loop for full tree depth
Cyprien Noel [Tue, 19 May 2015 18:11:05 +0000 (11:11 -0700)]
Multi-GPU
- Parallelize batches among GPUs and tree-reduce the gradients
- The effective batch size scales with the number of devices
- Batch size is multiplied by the number of devices
- Split batches between GPUs, and tree-reduce the gradients
- Detect machine topology (twin-GPU boards, P2P connectivity)
- Track device in syncedmem (thanks @thatguymike)
- Insert a callback in the solver for minimal code change
- Accept list for gpu flag of caffe tool, e.g. '-gpu 0,1' or '-gpu all'.
Run on default GPU if no ID given.
- Add multi-GPU solver test
- Deterministic architecture for reproducible runs
Cyprien Noel [Tue, 19 May 2015 03:07:36 +0000 (20:07 -0700)]
Allocate host memory through cudaMallocHost
thanks to discussion by @thatguymike and @flx42
Cyprien Noel [Tue, 19 May 2015 01:06:09 +0000 (18:06 -0700)]
Add DataReader for parallel training with one DB session
- Make sure each solver accesses a different subset of the data
- Sequential reading of DB for performance
- Prefetch a configurable amount of data to host memory
- Distribute data to solvers in round-robin way for determinism
Cyprien Noel [Tue, 19 May 2015 00:45:20 +0000 (17:45 -0700)]
Persistent prefetch thread
Cyprien Noel [Tue, 28 Apr 2015 21:46:20 +0000 (14:46 -0700)]
Change the way threads are started and stopped
- Interrupt the thread before waiting on join
- Provide a method for looping threads to exit on demand
- CHECK if start and stop succeed instead of returning an error
Cyprien Noel [Tue, 28 Apr 2015 02:48:10 +0000 (19:48 -0700)]
Thread-local Caffe
Cyprien Noel [Tue, 28 Apr 2015 21:28:04 +0000 (14:28 -0700)]
Add BlockingQueue for inter-thread communication
Fisher Yu [Sun, 9 Aug 2015 21:22:04 +0000 (14:22 -0700)]
from __future__ imports must occur at the beginning of the file
Evan Shelhamer [Sun, 9 Aug 2015 19:35:04 +0000 (12:35 -0700)]
Merge pull request #2887 from shelhamer/solver-test-data
Test solvers on fixed hdf5 data
Ronghang Hu [Sun, 9 Aug 2015 18:03:23 +0000 (11:03 -0700)]
Use net_->learnable_params() instead of net_->params() in RMSprop
In RMSProp solver, use const vector<Blob<Dtype>*>& net_params = this->net_->learnable_params(); instead of const vector<shared_ptr<Blob<Dtype> > >& net_params = this->net_->params();
Ronghang Hu [Sun, 9 Aug 2015 08:45:09 +0000 (01:45 -0700)]
Merge pull request #2888 from ronghanghu/rms-prop-fix-tests
Encapsulate kRMSDecay in solver tests
Ronghang Hu [Sun, 9 Aug 2015 08:32:25 +0000 (01:32 -0700)]
Encapsulate kRMSDecay in solver tests
Instead of introducing another argument kRMSDecay and setting it for every test, this param could be set by the RMSProp test class for encapsulation.
Ronghang Hu [Sun, 9 Aug 2015 07:35:27 +0000 (00:35 -0700)]
Merge pull request #2867 from ronghanghu/rms-prop
RMSProp clean up and rebase
Eren Golge [Sun, 9 Aug 2015 06:45:08 +0000 (23:45 -0700)]
Implement RMSProp Solver
Implement RMSProp solver and cleaned up to adjust to new solver interface that uses
accumulated gradients and refactored regularization.
Evan Shelhamer [Sat, 8 Aug 2015 20:07:13 +0000 (13:07 -0700)]
TestGradientBasedSolver: replace dummy data with hdf5
Rely on fixed hdf5 data for determinism of solver tests.
- draw random Gaussian data and targets for test and save to hdf5
- use the same data for all tests without constant / gaussian condition
previously needed for accumulation
- avoid test artifacts due to order of random draws in dummy data
Evan Shelhamer [Sat, 8 Aug 2015 19:57:45 +0000 (12:57 -0700)]
TestGradientBasedSolver: drop doubled seed inititialization
Evan Shelhamer [Sat, 8 Aug 2015 04:06:29 +0000 (21:06 -0700)]
Merge pull request #2813 from longjon/net-spec-imp
Python net spec cleanups and top-less layers
Jeff Donahue [Sat, 8 Aug 2015 03:44:43 +0000 (20:44 -0700)]
Merge pull request #2886 from jeffdonahue/master
temporarily switch the snapshot_format default back to BINARYPROTO
Jeff Donahue [Sat, 8 Aug 2015 03:03:04 +0000 (20:03 -0700)]
temporarily switch the snapshot_format default back to BINARYPROTO
out of anticipation for user issues due to issue #2885, which causes
Caffe to crash when it attempts to snapshot nets with duplicate layer
names
Jon Long [Fri, 7 Aug 2015 23:28:23 +0000 (16:28 -0700)]
Merge pull request #2877 from jeffdonahue/pycaffe-shape-accessor
[pycaffe] add Blob shape accessor
Jeff Donahue [Fri, 7 Aug 2015 23:05:00 +0000 (16:05 -0700)]
Merge pull request #2866 from jeffdonahue/fix-weight-sharing
Fix weight sharing
Jeff Donahue [Tue, 21 Jul 2015 03:50:50 +0000 (20:50 -0700)]
Net: add learnable_params_ used by solvers to correctly handle shared params
-Params now share diffs as well as data (works due to layers
accumulating gradients into param diffs, rather than overwriting)
-It's now required that any shared params with specified lr_mult's,
decay_mult's match
-TestGradientBasedSolver checks that behavior remains correct with
shared weights
Jeff Donahue [Fri, 7 Aug 2015 22:34:00 +0000 (15:34 -0700)]
TestGradientBasedSolver: make tests across solver types more consistent
Jeff Donahue [Fri, 7 Aug 2015 22:27:02 +0000 (15:27 -0700)]
TestGradientBasedSolver: restore Gaussian filler to all tests except
accumulation one
Jeff Donahue [Fri, 7 Aug 2015 22:22:41 +0000 (15:22 -0700)]
Merge pull request #2836 from erictzeng/hdf5_snapshot
Snapshot model weights/solver state to HDF5 files
Eric Tzeng [Fri, 7 Aug 2015 20:17:26 +0000 (13:17 -0700)]
Update example bash scripts to expect .h5, new extensions in .gitignore
Eric Tzeng [Thu, 30 Jul 2015 01:40:38 +0000 (18:40 -0700)]
TestSnapshot expects .h5 snapshots, explicitly checks history.
Eric Tzeng [Wed, 22 Jul 2015 23:17:01 +0000 (16:17 -0700)]
Snapshot model weights/solver state to HDF5 files.
Summary of changes:
- HDF5 helper functions were moved into a separate file util/hdf5.cpp
- hdf5_save_nd_dataset now saves n-d blobs, can save diffs instead of
data
- Minor fix for memory leak in HDF5 functions (delete instead of
delete[])
- Extra methods have been added to both Net/Solver enabling
snapshotting and restoring from HDF5 files
- snapshot_format was added to SolverParameters, with possible values
HDF5 or BINARYPROTO (default HDF5)
- kMaxBlobAxes was reduced to 32 to match the limitations of HDF5
Jeff Donahue [Thu, 6 Aug 2015 20:46:11 +0000 (13:46 -0700)]
pycaffe: add shape accessor
Jon Long [Fri, 7 Aug 2015 20:51:52 +0000 (13:51 -0700)]
Merge pull request #2884 from tianzhi0549/patch-1
add [] to "delete pixels".
Jeff Donahue [Thu, 30 Jul 2015 00:27:58 +0000 (17:27 -0700)]
TestGradientBasedSolver: add TestSnapshot to verify behavior when
restoring net/solver from snapshot
Jeff Donahue [Thu, 30 Jul 2015 00:27:04 +0000 (17:27 -0700)]
add double_data, double_diff to BlobProto for weights/snapshots saved
when using Dtype == double
Jeff Donahue [Fri, 7 Aug 2015 18:58:19 +0000 (11:58 -0700)]
Merge pull request #2634 from mlopezantequera/patch-2
Update parse_log.py
Tian Zhi [Fri, 7 Aug 2015 18:31:19 +0000 (02:31 +0800)]
add [] to "delete pixels".
see https://isocpp.org/wiki/faq/freestore-mgmt#delete-array-built-ins.
Evan Shelhamer [Fri, 7 Aug 2015 16:23:20 +0000 (09:23 -0700)]
Merge pull request #2880 from koki0702/typo
[docs] Fix layer typo
koki1.saitoh [Fri, 7 Aug 2015 09:22:28 +0000 (18:22 +0900)]
Fix typo
Evan Shelhamer [Fri, 7 Aug 2015 01:41:02 +0000 (18:41 -0700)]
Merge pull request #2871 from shelhamer/python-layer-arg
[pycaffe] PythonLayer takes parameters by string
Takuya Narihira [Sat, 28 Feb 2015 03:34:51 +0000 (19:34 -0800)]
PythonLayer takes parameters by string
Evan Shelhamer [Thu, 6 Aug 2015 20:04:42 +0000 (13:04 -0700)]
Merge pull request #2876 from shelhamer/fix-py-include
[pycaffe,build] include Python first in caffe tool
Evan Shelhamer [Thu, 6 Aug 2015 20:04:15 +0000 (13:04 -0700)]
[pytest] open exception file with mode for python3
Evan Shelhamer [Thu, 6 Aug 2015 20:03:50 +0000 (13:03 -0700)]
[pycaffe,build] include Python first in caffe tool
Gustavo Serra Scalet [Thu, 6 Aug 2015 17:37:20 +0000 (14:37 -0300)]
Fix download model binary script to get correct lines on parsing table
The base reference of "bottom" variable was relative to the "top+1" and
not to the whole readlines output. It ended up without all the lines.
That could work for some gists however for the model I was looking for (see
below) the sha1 key was not being parsed, as it was missing the last line.
tested with the following gist:
longjon/
1bf3aa1e0b8e788d7e1d
Gustavo Serra Scalet [Thu, 6 Aug 2015 17:20:55 +0000 (14:20 -0300)]
Fix download model script to use zip archive
Currently GitHub is not using tarballs as archive for downloading gists
therefore the script was broken as actually a zip archive was being downloaded.
Evan Shelhamer [Thu, 6 Aug 2015 07:27:59 +0000 (00:27 -0700)]
Merge pull request #2462 from longjon/correct-python-exceptions
Handle Python layer exceptions correctly
Evan Shelhamer [Tue, 4 Aug 2015 18:57:51 +0000 (11:57 -0700)]
Merge pull request #2859 from philkr/image_data
ImageData layer default batch size of 1, and check for zero batch size
philkr [Tue, 4 Aug 2015 17:27:34 +0000 (10:27 -0700)]
ImageData layer default batch size of 1, and check for zero batch size
Jeff Donahue [Mon, 3 Aug 2015 23:19:47 +0000 (16:19 -0700)]
Merge pull request #2583 from lukeyeager/fix-log-levels
Change log levels in upgrade_proto
Luke Yeager [Wed, 10 Jun 2015 00:50:40 +0000 (17:50 -0700)]
Change log levels in upgrade_proto
It's not an error if the upgrade succeeds
Jon Long [Sun, 2 Aug 2015 21:34:10 +0000 (14:34 -0700)]
Merge pull request #2837 from longjon/contributing-file
Add a CONTRIBUTING.md file, to appear on new Issue/PR pages
Jonathan L Long [Thu, 30 Jul 2015 03:16:31 +0000 (20:16 -0700)]
[docs] add CONTRIBUTING.md which will appear on GitHub new Issue/PR pages
Evan Shelhamer [Thu, 30 Jul 2015 00:20:31 +0000 (17:20 -0700)]
[docs] fix contrastive loss eq
make documented equation match the correct implementation of the
`max(margin - d, 0)^2` term in the loss. see #2321
Evan Shelhamer [Tue, 28 Jul 2015 17:27:39 +0000 (10:27 -0700)]
[docs] fix lmdb fetch url and path
Evan Shelhamer [Mon, 27 Jul 2015 17:58:11 +0000 (10:58 -0700)]
[docs] clear up PYTHONPATH confusion
Use the same language as the installation page to explain the Python
module path.
reported by @sdemyanov
Jonathan L Long [Fri, 24 Jul 2015 03:41:40 +0000 (20:41 -0700)]
[pytest] simple test of top-less layers
Jonathan L Long [Fri, 24 Jul 2015 03:40:02 +0000 (20:40 -0700)]
[pycaffe] net spec layers can have ntop=0
In this case, the Function is returned instead of a Top, which can be
assigned a name if desired.
Thanks @philkr for an earlier implementation of this.
Jonathan L Long [Fri, 24 Jul 2015 03:35:42 +0000 (20:35 -0700)]
[pycaffe] allow layers to have names different from their first tops
Previously, net spec only allowed names to be assigned to Tops, giving
layers the names of their first tops. Now, names can be assigned to
Functions, which become layer names in serialization. Unnamed Functions
still get named after their first top, if present, or autogenerated, if
not. (This will allow top-less layers in a natural way.)
Jonathan L Long [Fri, 24 Jul 2015 03:32:04 +0000 (20:32 -0700)]
[pycaffe] add Top._to_proto convenience function
This makes it possible to serialize Functions or Tops with a uniform
interface.
Jonathan L Long [Fri, 24 Jul 2015 03:26:46 +0000 (20:26 -0700)]
[pycaffe] use a Counter instead of a dict for counting net spec names
Jonathan L Long [Fri, 24 Jul 2015 03:23:42 +0000 (20:23 -0700)]
[pycaffe] remove dead code
Jon Long [Thu, 23 Jul 2015 03:37:17 +0000 (20:37 -0700)]
Merge pull request #2807 from Franck-Dernoncourt/patch-1
Fix path to mnist_autoencoder.prototxt
Franck Dernoncourt [Thu, 23 Jul 2015 00:32:12 +0000 (17:32 -0700)]
Fix path to mnist_autoencoder.prototxt
Eric Zeiberg [Wed, 22 Jul 2015 05:12:48 +0000 (22:12 -0700)]
[docs] set lmdb url to github mirror
Evan Shelhamer [Tue, 21 Jul 2015 17:33:31 +0000 (10:33 -0700)]
[docs] matlab 2015a compatible