diff --git a/.gitignore b/.gitignore index 4ad813f7ff9..fee9a6baac1 100644 --- a/.gitignore +++ b/.gitignore @@ -31,6 +31,7 @@ build/* distribute/* *.testbin *.bin +python/caffe/proto/ # Editor temporaries *.swp @@ -53,3 +54,8 @@ examples/* # Generated documentation docs/_site _site + +# Sublime Text settings +*.sublime-workspace +*.sublime-project + diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md new file mode 100644 index 00000000000..2de2a717eff --- /dev/null +++ b/CONTRIBUTORS.md @@ -0,0 +1,17 @@ +# Contributors + +Caffe is developed by a core set of BVLC members and the open-source community. + +We thank all of our [contributors](https://github.com/BVLC/caffe/graphs/contributors)! + +**For the detailed history of contributions** of a given file, try + + git blame file + +to see line-by-line credits and + + git log --follow file + +to see the change log even across renames and rewrites. + +Please refer to the [acknowledgements](http://caffe.berkeleyvision.org/#acknowledgements) on the Caffe site for further details. diff --git a/Makefile b/Makefile index e42c75ee1e8..3863fbfdcfb 100644 --- a/Makefile +++ b/Makefile @@ -1,16 +1,13 @@ -# The makefile for caffe. Extremely hacky. +# The makefile for caffe. Pretty hacky. PROJECT := caffe -TEST_GPUID := 0 -include Makefile.config - -############################################################################## -# After this line, things should happen automatically. -############################################################################## +CONFIG_FILE := Makefile.config +include $(CONFIG_FILE) # The target static library and shared library name -NAME := lib$(PROJECT).so -STATIC_NAME := lib$(PROJECT).a +LIB_BUILD_DIR := $(BUILD_DIR)/lib +NAME := $(LIB_BUILD_DIR)/lib$(PROJECT).so +STATIC_NAME := $(LIB_BUILD_DIR)/lib$(PROJECT).a ############################## # Get all source files @@ -18,7 +15,7 @@ STATIC_NAME := lib$(PROJECT).a # CXX_SRCS are the source files excluding the test ones. CXX_SRCS := $(shell find src/$(PROJECT) ! -name "test_*.cpp" -name "*.cpp") # HXX_SRCS are the header files -HXX_SRCS := $(shell find include/$(PROJECT) ! -name "*.hpp") +HXX_SRCS := $(shell find include/$(PROJECT) -name "*.hpp") # CU_SRCS are the cuda source files CU_SRCS := $(shell find src/$(PROJECT) -name "*.cu") # TEST_SRCS are the test source files @@ -32,8 +29,15 @@ TEST_HDRS := $(shell find src/$(PROJECT) -name "test_*.hpp") TOOL_SRCS := $(shell find tools -name "*.cpp") # EXAMPLE_SRCS are the source files for the example binaries EXAMPLE_SRCS := $(shell find examples -name "*.cpp") +# BUILD_INCLUDE_DIR contains any generated header files we want to include. +BUILD_INCLUDE_DIR := $(BUILD_DIR)/src # PROTO_SRCS are the protocol buffer definitions -PROTO_SRCS := $(wildcard src/$(PROJECT)/proto/*.proto) +PROTO_SRC_DIR := src/$(PROJECT)/proto +PROTO_SRCS := $(wildcard $(PROTO_SRC_DIR)/*.proto) +# PROTO_BUILD_DIR will contain the .cc and obj files generated from +# PROTO_SRCS; PROTO_BUILD_INCLUDE_DIR will contain the .h header files +PROTO_BUILD_DIR := $(BUILD_DIR)/$(PROTO_SRC_DIR) +PROTO_BUILD_INCLUDE_DIR := $(BUILD_INCLUDE_DIR)/$(PROJECT)/proto # NONGEN_CXX_SRCS includes all source/header files except those generated # automatically (e.g., by proto). NONGEN_CXX_SRCS := $(shell find \ @@ -51,212 +55,357 @@ PY$(PROJECT)_SRC := python/$(PROJECT)/_$(PROJECT).cpp PY$(PROJECT)_SO := python/$(PROJECT)/_$(PROJECT).so # MAT$(PROJECT)_SRC is the matlab wrapper for $(PROJECT) MAT$(PROJECT)_SRC := matlab/$(PROJECT)/mat$(PROJECT).cpp -MAT$(PROJECT)_SO := matlab/$(PROJECT)/$(PROJECT) +ifneq ($(MATLAB_DIR),) + MAT_SO_EXT := $(shell $(MATLAB_DIR)/bin/mexext) +endif +MAT$(PROJECT)_SO := matlab/$(PROJECT)/$(PROJECT).$(MAT_SO_EXT) ############################## # Derive generated files ############################## # The generated files for protocol buffers -PROTO_GEN_HEADER := ${PROTO_SRCS:.proto=.pb.h} -PROTO_GEN_CC := ${PROTO_SRCS:.proto=.pb.cc} -PROTO_GEN_PY := ${PROTO_SRCS:.proto=_pb2.py} +PROTO_GEN_HEADER_SRCS := $(addprefix $(PROTO_BUILD_DIR)/, \ + $(notdir ${PROTO_SRCS:.proto=.pb.h})) +PROTO_GEN_HEADER := $(addprefix $(PROTO_BUILD_INCLUDE_DIR)/, \ + $(notdir ${PROTO_SRCS:.proto=.pb.h})) +HXX_SRCS += $(PROTO_GEN_HEADER) +PROTO_GEN_CC := $(addprefix $(BUILD_DIR)/, ${PROTO_SRCS:.proto=.pb.cc}) +PY_PROTO_BUILD_DIR := python/$(PROJECT)/proto +PY_PROTO_INIT := python/$(PROJECT)/proto/__init__.py +PROTO_GEN_PY := $(foreach file,${PROTO_SRCS:.proto=_pb2.py}, \ + $(PY_PROTO_BUILD_DIR)/$(notdir $(file))) # The objects corresponding to the source files # These objects will be linked into the final shared library, so we # exclude the tool, example, and test objects. CXX_OBJS := $(addprefix $(BUILD_DIR)/, ${CXX_SRCS:.cpp=.o}) CU_OBJS := $(addprefix $(BUILD_DIR)/, ${CU_SRCS:.cu=.cuo}) -PROTO_OBJS := $(addprefix $(BUILD_DIR)/, ${PROTO_GEN_CC:.cc=.o}) +PROTO_OBJS := ${PROTO_GEN_CC:.cc=.o} +OBJ_BUILD_DIR := $(BUILD_DIR)/src/$(PROJECT) +LAYER_BUILD_DIR := $(OBJ_BUILD_DIR)/layers +UTIL_BUILD_DIR := $(OBJ_BUILD_DIR)/util OBJS := $(PROTO_OBJS) $(CXX_OBJS) $(CU_OBJS) # tool, example, and test objects TOOL_OBJS := $(addprefix $(BUILD_DIR)/, ${TOOL_SRCS:.cpp=.o}) -EXAMPLE_OBJS := $(addprefix $(BUILD_DIR)/, ${EXAMPLE_SRCS:.cpp=.o}) +TOOL_BUILD_DIR := $(BUILD_DIR)/tools +TEST_BUILD_DIR := $(BUILD_DIR)/src/$(PROJECT)/test TEST_OBJS := $(addprefix $(BUILD_DIR)/, ${TEST_SRCS:.cpp=.o}) GTEST_OBJ := $(addprefix $(BUILD_DIR)/, ${GTEST_SRC:.cpp=.o}) +GTEST_BUILD_DIR := $(dir $(GTEST_OBJ)) +EXAMPLE_OBJS := $(addprefix $(BUILD_DIR)/, ${EXAMPLE_SRCS:.cpp=.o}) +EXAMPLE_BUILD_DIR := $(BUILD_DIR)/examples +EXAMPLE_BUILD_DIRS := $(EXAMPLE_BUILD_DIR) +EXAMPLE_BUILD_DIRS += $(foreach obj,$(EXAMPLE_OBJS),$(dir $(obj))) # tool, example, and test bins TOOL_BINS := ${TOOL_OBJS:.o=.bin} EXAMPLE_BINS := ${EXAMPLE_OBJS:.o=.bin} -TEST_BINS := ${TEST_OBJS:.o=.testbin} -TEST_ALL_BIN := $(BUILD_DIR)/src/$(PROJECT)/test/test_all.testbin +# Put the test binaries in build/test for convenience. +TEST_BIN_DIR := $(BUILD_DIR)/test +TEST_BINS := $(addsuffix .testbin,$(addprefix $(TEST_BIN_DIR)/, \ + $(foreach obj,$(TEST_OBJS),$(basename $(notdir $(obj)))))) +TEST_ALL_BIN := $(TEST_BIN_DIR)/test_all.testbin ############################## # Derive include and lib directories ############################## CUDA_INCLUDE_DIR := $(CUDA_DIR)/include CUDA_LIB_DIR := $(CUDA_DIR)/lib64 $(CUDA_DIR)/lib -MKL_INCLUDE_DIR := $(MKL_DIR)/include -MKL_LIB_DIR := $(MKL_DIR)/lib $(MKL_DIR)/lib/intel64 -INCLUDE_DIRS += ./src ./include $(CUDA_INCLUDE_DIR) $(MKL_INCLUDE_DIR) -LIBRARY_DIRS += $(CUDA_LIB_DIR) $(MKL_LIB_DIR) +INCLUDE_DIRS += $(BUILD_INCLUDE_DIR) +INCLUDE_DIRS += ./src ./include $(CUDA_INCLUDE_DIR) +LIBRARY_DIRS += $(CUDA_LIB_DIR) LIBRARIES := cudart cublas curand \ - mkl_rt \ pthread \ - glog protobuf leveldb \ - snappy \ + glog protobuf leveldb snappy \ boost_system \ hdf5_hl hdf5 \ opencv_core opencv_highgui opencv_imgproc PYTHON_LIBRARIES := boost_python python2.7 WARNINGS := -Wall -COMMON_FLAGS := -DNDEBUG -O2 $(foreach includedir,$(INCLUDE_DIRS),-I$(includedir)) +############################## +# Set build directories +############################## + +DISTRIBUTE_SUBDIRS := $(DISTRIBUTE_DIR)/bin $(DISTRIBUTE_DIR)/lib +DIST_ALIASES := dist +ifneq ($(strip $(DISTRIBUTE_DIR)),distribute) + DIST_ALIASES += distribute +endif + +ALL_BUILD_DIRS := $(sort \ + $(BUILD_DIR) $(LIB_BUILD_DIR) $(OBJ_BUILD_DIR) \ + $(LAYER_BUILD_DIR) $(UTIL_BUILD_DIR) $(TOOL_BUILD_DIR) \ + $(TEST_BUILD_DIR) $(TEST_BIN_DIR) $(GTEST_BUILD_DIR) \ + $(EXAMPLE_BUILD_DIRS) \ + $(PROTO_BUILD_DIR) $(PROTO_BUILD_INCLUDE_DIR) $(PY_PROTO_BUILD_DIR) \ + $(DISTRIBUTE_SUBDIRS)) + +############################## +# Configure build +############################## + +# Determine platform +UNAME := $(shell uname -s) +ifeq ($(UNAME), Linux) + LINUX := 1 +else ifeq ($(UNAME), Darwin) + OSX := 1 +endif + +ifeq ($(LINUX), 1) + CXX := /usr/bin/g++ +endif + +# OS X: +# clang++ instead of g++ +# libstdc++ instead of libc++ for CUDA compatibility on 10.9 +ifeq ($(OSX), 1) + CXX := /usr/bin/clang++ + ifneq ($(findstring 10.9, $(shell sw_vers -productVersion)),) + CXXFLAGS += -stdlib=libstdc++ + endif +endif + +# Debugging +DEBUG ?= 0 +ifeq ($(DEBUG), 1) + COMMON_FLAGS := -DDEBUG -g -O0 +else + COMMON_FLAGS := -DNDEBUG -O2 +endif + +# BLAS configuration (default = ATLAS) +BLAS ?= atlas +ifeq ($(BLAS), mkl) + # MKL + LIBRARIES += mkl_rt + COMMON_FLAGS += -DUSE_MKL + MKL_DIR = /opt/intel/mkl + BLAS_INCLUDE ?= $(MKL_DIR)/include + BLAS_LIB ?= $(MKL_DIR)/lib $(MKL_DIR)/lib/intel64 +else ifeq ($(BLAS), open) + # OpenBLAS + LIBRARIES += openblas +else + # ATLAS + ifeq ($(LINUX), 1) + ifeq ($(BLAS), atlas) + # Linux simply has cblas and atlas + LIBRARIES += cblas atlas + endif + else ifeq ($(OSX), 1) + # OS X packages atlas as the vecLib framework + BLAS_INCLUDE ?= /System/Library/Frameworks/vecLib.framework/Versions/Current/Headers/ + LIBRARIES += cblas + LDFLAGS += -framework vecLib + endif +endif +INCLUDE_DIRS += $(BLAS_INCLUDE) +LIBRARY_DIRS += $(BLAS_LIB) + +# Complete build flags. +COMMON_FLAGS += $(foreach includedir,$(INCLUDE_DIRS),-I$(includedir)) CXXFLAGS += -pthread -fPIC $(COMMON_FLAGS) NVCCFLAGS := -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) LDFLAGS += $(foreach librarydir,$(LIBRARY_DIRS),-L$(librarydir)) \ $(foreach library,$(LIBRARIES),-l$(library)) PYTHON_LDFLAGS := $(LDFLAGS) $(foreach library,$(PYTHON_LIBRARIES),-l$(library)) +# 'superclean' target recursively* deletes all files ending with an extension +# in $(SUPERCLEAN_EXTS) below. This may be useful if you've built older +# versions of Caffe that do not place all generated files in a location known +# to the 'clean' target. +# +# 'supercleanlist' will list the files to be deleted by make superclean. +# +# * Recursive with the exception that symbolic links are never followed, per the +# default behavior of 'find'. +SUPERCLEAN_EXTS := .so .a .o .bin .testbin .pb.cc .pb.h _pb2.py .cuo ############################## # Define build targets ############################## -.PHONY: all init test clean linecount lint tools examples py mat distribute \ - py$(PROJECT) mat$(PROJECT) proto runtest +.PHONY: all test clean linecount lint tools examples $(DIST_ALIASES) \ + py mat py$(PROJECT) mat$(PROJECT) proto runtest \ + superclean supercleanlist supercleanfiles -all: init $(NAME) $(STATIC_NAME) tools examples - @echo $(CXX_OBJS) - -init: - @ mkdir -p $(foreach obj,$(OBJS),$(dir $(obj))) - @ mkdir -p $(foreach obj,$(TOOL_OBJS),$(dir $(obj))) - @ mkdir -p $(foreach obj,$(EXAMPLE_OBJS),$(dir $(obj))) - @ mkdir -p $(foreach obj,$(TEST_OBJS),$(dir $(obj))) - @ mkdir -p $(foreach obj,$(GTEST_OBJ),$(dir $(obj))) +all: $(NAME) $(STATIC_NAME) tools examples linecount: clean cloc --read-lang-def=$(PROJECT).cloc src/$(PROJECT)/ lint: $(LINT_REPORT) -$(LINT_REPORT): $(NONGEN_CXX_SRCS) - @ mkdir -p $(BUILD_DIR) +$(LINT_REPORT): $(NONGEN_CXX_SRCS) | $(BUILD_DIR) @ (python ./scripts/cpp_lint.py $(NONGEN_CXX_SRCS) > $(LINT_REPORT) 2>&1 \ - && (rm -f $(FAILED_LINT_REPORT); echo "No lint errors!")) || ( \ + && ($(RM) $(FAILED_LINT_REPORT); echo "No lint errors!")) || ( \ mv $(LINT_REPORT) $(FAILED_LINT_REPORT); \ grep -v "^Done processing " $(FAILED_LINT_REPORT); \ echo "Found 1 or more lint errors; see log at $(FAILED_LINT_REPORT)"; \ exit 1) -test: init $(TEST_BINS) $(TEST_ALL_BIN) +test: $(TEST_ALL_BIN) $(TEST_BINS) -tools: init $(TOOL_BINS) +tools: $(TOOL_BINS) -examples: init $(EXAMPLE_BINS) +examples: $(EXAMPLE_BINS) py$(PROJECT): py -py: init $(STATIC_NAME) $(PY$(PROJECT)_SRC) $(PROTO_GEN_PY) - $(CXX) -shared -o $(PY$(PROJECT)_SO) $(PY$(PROJECT)_SRC) \ +py: $(PY$(PROJECT)_SO) $(PROTO_GEN_PY) + +$(PY$(PROJECT)_SO): $(STATIC_NAME) $(PY$(PROJECT)_SRC) + $(CXX) -shared -o $@ $(PY$(PROJECT)_SRC) \ $(STATIC_NAME) $(CXXFLAGS) $(PYTHON_LDFLAGS) - @echo + @ echo mat$(PROJECT): mat -mat: init $(STATIC_NAME) $(MAT$(PROJECT)_SRC) +mat: $(MAT$(PROJECT)_SO) + +$(MAT$(PROJECT)_SO): $(MAT$(PROJECT)_SRC) $(STATIC_NAME) + @ if [ -z "$(MATLAB_DIR)" ]; then \ + echo "MATLAB_DIR must be specified in $(CONFIG_FILE)" \ + "to build mat$(PROJECT)."; \ + exit 1; \ + fi $(MATLAB_DIR)/bin/mex $(MAT$(PROJECT)_SRC) $(STATIC_NAME) \ - CXXFLAGS="\$$CXXFLAGS $(CXXFLAGS) $(WARNINGS)" \ - CXXLIBS="\$$CXXLIBS $(LDFLAGS)" \ - -o $(MAT$(PROJECT)_SO) - @echo + CXXFLAGS="\$$CXXFLAGS $(CXXFLAGS) $(WARNINGS)" \ + CXXLIBS="\$$CXXLIBS $(LDFLAGS)" -o $@ + @ echo -$(NAME): init $(PROTO_OBJS) $(OBJS) - $(CXX) -shared -o $(NAME) $(OBJS) $(CXXFLAGS) $(LDFLAGS) $(WARNINGS) - @echo +runtest: $(TEST_ALL_BIN) + $(TEST_ALL_BIN) $(TEST_GPUID) --gtest_shuffle -$(STATIC_NAME): init $(PROTO_OBJS) $(OBJS) - ar rcs $(STATIC_NAME) $(PROTO_OBJS) $(OBJS) - @echo +$(ALL_BUILD_DIRS): + @ mkdir -p $@ -runtest: $(TEST_ALL_BIN) - $(TEST_ALL_BIN) $(TEST_GPUID) +$(NAME): $(PROTO_OBJS) $(OBJS) | $(LIB_BUILD_DIR) + $(CXX) -shared -o $@ $(OBJS) $(CXXFLAGS) $(LDFLAGS) $(WARNINGS) + @ echo -$(TEST_BINS): %.testbin : %.o $(GTEST_OBJ) $(STATIC_NAME) $(TEST_HDRS) - $(CXX) $(TEST_MAIN_SRC) $< $(GTEST_OBJ) $(STATIC_NAME) -o $@ $(CXXFLAGS) $(LDFLAGS) $(WARNINGS) +$(STATIC_NAME): $(PROTO_OBJS) $(OBJS) | $(LIB_BUILD_DIR) + ar rcs $@ $(PROTO_OBJS) $(OBJS) + @ echo + +$(TEST_BUILD_DIR)/%.o: src/$(PROJECT)/test/%.cpp $(HXX_SRCS) $(TEST_HDRS) \ + | $(TEST_BUILD_DIR) + $(CXX) $< $(CXXFLAGS) -c -o $@ + @ echo -$(TEST_ALL_BIN): $(GTEST_OBJ) $(STATIC_NAME) $(TEST_OBJS) - $(CXX) $(TEST_MAIN_SRC) $(TEST_OBJS) $(GTEST_OBJ) $(STATIC_NAME) -o $(TEST_ALL_BIN) $(CXXFLAGS) $(LDFLAGS) $(WARNINGS) +$(TEST_ALL_BIN): $(TEST_MAIN_SRC) $(TEST_OBJS) $(GTEST_OBJ) $(STATIC_NAME) \ + | $(TEST_BIN_DIR) + $(CXX) $(TEST_MAIN_SRC) $(TEST_OBJS) $(GTEST_OBJ) $(STATIC_NAME) \ + -o $@ $(CXXFLAGS) $(LDFLAGS) $(WARNINGS) + @ echo + +$(TEST_BIN_DIR)/%.testbin: $(TEST_BUILD_DIR)/%.o $(GTEST_OBJ) $(STATIC_NAME) \ + | $(TEST_BIN_DIR) + $(CXX) $(TEST_MAIN_SRC) $< $(GTEST_OBJ) $(STATIC_NAME) \ + -o $@ $(CXXFLAGS) $(LDFLAGS) $(WARNINGS) + @ echo $(TOOL_BINS): %.bin : %.o $(STATIC_NAME) $(CXX) $< $(STATIC_NAME) -o $@ $(CXXFLAGS) $(LDFLAGS) $(WARNINGS) - @echo + @ echo $(EXAMPLE_BINS): %.bin : %.o $(STATIC_NAME) $(CXX) $< $(STATIC_NAME) -o $@ $(CXXFLAGS) $(LDFLAGS) $(WARNINGS) - @echo - -$(OBJS): $(PROTO_GEN_CC) $(HXX_SRCS) - -$(BUILD_DIR)/src/$(PROJECT)/%.o: src/$(PROJECT)/%.cpp - $(CXX) $< $(CXXFLAGS) -c -o $@ - @echo - -$(BUILD_DIR)/src/$(PROJECT)/layers/%.o: src/$(PROJECT)/layers/%.cpp - $(CXX) $< $(CXXFLAGS) -c -o $@ - @echo + @ echo -$(BUILD_DIR)/src/$(PROJECT)/proto/%.o: src/$(PROJECT)/proto/%.cc +$(LAYER_BUILD_DIR)/%.o: src/$(PROJECT)/layers/%.cpp $(HXX_SRCS) \ + | $(LAYER_BUILD_DIR) $(CXX) $< $(CXXFLAGS) -c -o $@ - @echo + @ echo -$(BUILD_DIR)/src/$(PROJECT)/test/%.o: src/test/%.cpp +$(PROTO_BUILD_DIR)/%.pb.o: $(PROTO_BUILD_DIR)/%.pb.cc $(PROTO_GEN_HEADER) \ + | $(PROTO_BUILD_DIR) $(CXX) $< $(CXXFLAGS) -c -o $@ - @echo + @ echo -$(BUILD_DIR)/src/$(PROJECT)/util/%.o: src/$(PROJECT)/util/%.cpp +$(UTIL_BUILD_DIR)/%.o: src/$(PROJECT)/util/%.cpp $(HXX_SRCS) | $(UTIL_BUILD_DIR) $(CXX) $< $(CXXFLAGS) -c -o $@ - @echo + @ echo -$(BUILD_DIR)/src/gtest/%.o: src/gtest/%.cpp +$(GTEST_OBJ): $(GTEST_SRC) | $(GTEST_BUILD_DIR) $(CXX) $< $(CXXFLAGS) -c -o $@ - @echo + @ echo -$(BUILD_DIR)/src/$(PROJECT)/layers/%.cuo: src/$(PROJECT)/layers/%.cu +$(LAYER_BUILD_DIR)/%.cuo: src/$(PROJECT)/layers/%.cu $(HXX_SRCS) \ + | $(LAYER_BUILD_DIR) $(CUDA_DIR)/bin/nvcc $(NVCCFLAGS) $(CUDA_ARCH) -c $< -o $@ - @echo + @ echo -$(BUILD_DIR)/src/$(PROJECT)/util/%.cuo: src/$(PROJECT)/util/%.cu +$(UTIL_BUILD_DIR)/%.cuo: src/$(PROJECT)/util/%.cu | $(UTIL_BUILD_DIR) $(CUDA_DIR)/bin/nvcc $(NVCCFLAGS) $(CUDA_ARCH) -c $< -o $@ - @echo + @ echo -$(BUILD_DIR)/tools/%.o: tools/%.cpp +$(TOOL_BUILD_DIR)/%.o: tools/%.cpp $(PROTO_GEN_HEADER) | $(TOOL_BUILD_DIR) $(CXX) $< $(CXXFLAGS) -c -o $@ $(LDFLAGS) - @echo + @ echo -$(BUILD_DIR)/examples/%.o: examples/%.cpp +$(EXAMPLE_BUILD_DIR)/%.o: examples/%.cpp $(PROTO_GEN_HEADER) \ + | $(EXAMPLE_BUILD_DIRS) $(CXX) $< $(CXXFLAGS) -c -o $@ $(LDFLAGS) - @echo + @ echo -$(PROTO_GEN_PY): $(PROTO_SRCS) - protoc --proto_path=src --python_out=python $(PROTO_SRCS) - @echo +$(BUILD_DIR)/src/$(PROJECT)/%.o: src/$(PROJECT)/%.cpp $(HXX_SRCS) + $(CXX) $< $(CXXFLAGS) -c -o $@ + @ echo -proto: $(PROTO_GEN_CC) +proto: $(PROTO_GEN_CC) $(PROTO_GEN_HEADER) -$(PROTO_GEN_CC): $(PROTO_SRCS) - protoc --proto_path=src --cpp_out=src $(PROTO_SRCS) - mkdir -p include/$(PROJECT)/proto - cp $(PROTO_GEN_HEADER) include/$(PROJECT)/proto/ - @echo +$(PROTO_BUILD_DIR)/%.pb.cc $(PROTO_BUILD_DIR)/%.pb.h : \ + $(PROTO_SRC_DIR)/%.proto | $(PROTO_BUILD_DIR) + protoc --proto_path=src --cpp_out=build/src $< + @ echo + +$(PY_PROTO_BUILD_DIR)/%_pb2.py : $(PROTO_SRC_DIR)/%.proto \ + $(PY_PROTO_INIT) | $(PY_PROTO_BUILD_DIR) + protoc --proto_path=src --python_out=python $< + @ echo + +$(PY_PROTO_INIT): | $(PY_PROTO_BUILD_DIR) + touch $(PY_PROTO_INIT) clean: - @- $(RM) $(NAME) $(STATIC_NAME) - @- $(RM) $(PROTO_GEN_HEADER) $(PROTO_GEN_CC) $(PROTO_GEN_PY) - @- $(RM) include/$(PROJECT)/proto/$(PROJECT).pb.h - @- $(RM) python/$(PROJECT)/proto/$(PROJECT)_pb2.py - @- $(RM) python/$(PROJECT)/*.so - @- $(RM) -rf $(BUILD_DIR) + @- $(RM) -rf $(ALL_BUILD_DIRS) @- $(RM) -rf $(DISTRIBUTE_DIR) - -distribute: all - mkdir $(DISTRIBUTE_DIR) + @- $(RM) $(PY$(PROJECT)_SO) + @- $(RM) $(MAT$(PROJECT)_SO) + +supercleanfiles: + $(eval SUPERCLEAN_FILES := $(strip \ + $(foreach ext,$(SUPERCLEAN_EXTS), $(shell find . -name '*$(ext)' \ + -not -path './data/*')))) + +supercleanlist: supercleanfiles + @ \ + if [ -z "$(SUPERCLEAN_FILES)" ]; then \ + echo "No generated files found."; \ + else \ + echo $(SUPERCLEAN_FILES) | tr ' ' '\n'; \ + fi + +superclean: clean supercleanfiles + @ \ + if [ -z "$(SUPERCLEAN_FILES)" ]; then \ + echo "No generated files found."; \ + else \ + echo "Deleting the following generated files:"; \ + echo $(SUPERCLEAN_FILES) | tr ' ' '\n'; \ + $(RM) $(SUPERCLEAN_FILES); \ + fi + +$(DIST_ALIASES): $(DISTRIBUTE_DIR) + +$(DISTRIBUTE_DIR): all py $(HXX_SRCS) | $(DISTRIBUTE_SUBDIRS) # add include cp -r include $(DISTRIBUTE_DIR)/ # add tool and example binaries - mkdir $(DISTRIBUTE_DIR)/bin cp $(TOOL_BINS) $(DISTRIBUTE_DIR)/bin cp $(EXAMPLE_BINS) $(DISTRIBUTE_DIR)/bin # add libraries - mkdir $(DISTRIBUTE_DIR)/lib cp $(NAME) $(DISTRIBUTE_DIR)/lib cp $(STATIC_NAME) $(DISTRIBUTE_DIR)/lib # add python - it's not the standard way, indeed... diff --git a/Makefile.config.example b/Makefile.config.example index cec85e0a7f7..f9d8be80100 100644 --- a/Makefile.config.example +++ b/Makefile.config.example @@ -6,40 +6,48 @@ CUDA_DIR := /usr/local/cuda # CUDA architecture setting: going with all of them. CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \ - -gencode arch=compute_20,code=sm_21 \ - -gencode arch=compute_30,code=sm_30 \ - -gencode arch=compute_35,code=sm_35 - -# MKL directory contains include/ and lib/ directions that we need. -MKL_DIR := /opt/intel/mkl + -gencode arch=compute_20,code=sm_21 \ + -gencode arch=compute_30,code=sm_30 \ + -gencode arch=compute_35,code=sm_35 + +# BLAS choice: +# atlas for ATLAS (default) +# mkl for MKL +# open for OpenBlas +BLAS := atlas +# Custom (MKL/ATLAS/OpenBLAS) include and lib directories. +# Leave commented to accept the defaults for your choice of BLAS +# (which should work)! +# BLAS_INCLUDE := /path/to/your/blas +# BLAS_LIB := /path/to/your/blas # This is required only if you will compile the matlab interface. # MATLAB directory should contain the mex binary in /bin. -MATLAB_DIR := /usr/local +# MATLAB_DIR := /usr/local # MATLAB_DIR := /Applications/MATLAB_R2012b.app # NOTE: this is required only if you will compile the python interface. # We need to be able to find Python.h and numpy/arrayobject.h. -PYTHON_INCLUDES := /usr/include/python2.7 \ - /usr/local/lib/python2.7/dist-packages/numpy/core/include +PYTHON_INCLUDE := /usr/local/include/python2.7 \ + /usr/local/lib/python2.7/dist-packages/numpy/core/include # Anaconda Python distribution is quite popular. Include path: -# PYTHON_INCLUDES := $(HOME)/anaconda/include \ - # $(HOME)/anaconda/include/python2.7 \ - # $(HOME)/anaconda/lib/python2.7/site-packages/numpy/core/include +# PYTHON_INCLUDE := $(HOME)/anaconda/include \ + # $(HOME)/anaconda/include/python2.7 \ + # $(HOME)/anaconda/lib/python2.7/site-packages/numpy/core/include # We need to be able to find libpythonX.X.so or .dylib. PYTHON_LIB := /usr/local/lib # PYTHON_LIB := $(HOME)/anaconda/lib -CXX := /usr/bin/g++ -# For OS X, use clang++. -# CXX := /usr/bin/clang++ -# For OS X 10.9, use libstdc++ instead of libc++ for CUDA compatibility. -# CXXFLAGS := -stdlib=libstdc++ - # Whatever else you find you need goes here. -INCLUDE_DIRS := $(PYTHON_INCLUDES) /usr/local/include -LIBRARY_DIRS := $(PYTHON_LIB) /usr/lib /usr/local/lib +INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include +LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib BUILD_DIR := build DISTRIBUTE_DIR := distribute + +# Uncomment for debugging. +# DEBUG := 1 + +# The ID of the GPU that 'make runtest' will use to run unit tests. +TEST_GPUID := 0 diff --git a/docs/cifar10.md b/docs/cifar10.md index eb45e644eca..dd85667d85e 100644 --- a/docs/cifar10.md +++ b/docs/cifar10.md @@ -89,7 +89,7 @@ CIFAR-10, while still small, has enough data to make GPU training attractive. To compare CPU vs. GPU training speed, simply change one line in all the `cifar*solver.prototxt`: - # solver mode: 0 for CPU and 1 for GPU - solver_mode: 0 + # solver mode: CPU or GPU + solver_mode: CPU and you will be using CPU for training. diff --git a/docs/development.md b/docs/development.md index 86e771d511e..b9370036a20 100644 --- a/docs/development.md +++ b/docs/development.md @@ -55,3 +55,9 @@ To get a list of all options `googletest` provides, simply pass the `--help` fla - Remember that “a foolish consistency is the hobgoblin of little minds,” so use your best judgement to write the clearest code for your particular case. **Lint**: run `make lint` to check C++ code. + +**Copyright**: assign copyright jointly to BVLC and contributors like so: + + // Copyright 2014 BVLC and contributors. + +The exact details of contributions are recorded by versioning and cited in our [acknowledgements](http://caffe.berkeleyvision.org/#acknowledgements). This method is impartial and always up-to-date. diff --git a/docs/feature_extraction.md b/docs/feature_extraction.md new file mode 100644 index 00000000000..fa23e9c8708 --- /dev/null +++ b/docs/feature_extraction.md @@ -0,0 +1,71 @@ +--- +layout: default +title: Caffe +--- + +Extracting Features +=================== + +In this tutorial, we will extract features using a pre-trained model. +Follow instructions for [setting up caffe](installation.html) and for [getting](getting_pretrained_models.html) the pre-trained ImageNet model. +If you need detailed information about the tools below, please consult their source code, in which additional documentation is usually provided. + +Select data to run on +--------------------- + +We'll make a temporary folder to store things into. + + mkdir examples/_temp + +Generate a list of the files to process. +We're going to use the images that ship with caffe. + + find `pwd`/examples/images -type f -exec echo {} \; > examples/_temp/temp.txt + +The `ImageDataLayer` we'll use expects labels after each filenames, so let's add a 0 to the end of each line + + sed "s/$/ 0/" examples/_temp/temp.txt > examples/_temp/file_list.txt + +Define the Feature Extraction Network Architecture +-------------------------------------------------- + +In practice, subtracting the mean image from a dataset significantly improves classification accuracies. +Download the mean image of the ILSVRC dataset. + + data/ilsvrc12/get_ilsvrc_aux.sh + +We will use `data/ilsvrc212/imagenet_mean.binaryproto` in the network definition prototxt. + +Let's copy and modify the network definition. +We'll be using the `ImageDataLayer`, which will load and resize images for us. + + cp examples/feature_extraction/imagenet_val.prototxt examples/_temp + +Edit `examples/_temp/imagenet_val.prototxt` to use correct path for your setup (replace `$CAFFE_DIR`) + +Extract Features +---------------- + +Now everything necessary is in place. + + build/tools/extract_features.bin examples/imagenet/caffe_reference_imagenet_model examples/_temp/imagenet_val.prototxt fc7 examples/_temp/features 10 + +The name of feature blob that you extract is `fc7`, which represents the highest level feature of the reference model. +We can use any other layer, as well, such as `conv5` or `pool3`. + +The last parameter above is the number of data mini-batches. + +The features are stored to LevelDB `examples/_temp/features`, ready for access by some other code. + +If you meet with the error "Check failed: status.ok() Failed to open leveldb examples/_temp/features", it is because the directory examples/_temp/features has been created the last time you run the command. Remove it and run again. + + rm -rf examples/_temp/features/ + +If you'd like to use the Python wrapper for extracting features, check out the [layer visualization notebook](http://nbviewer.ipython.org/github/BVLC/caffe/blob/master/examples/filter_visualization.ipynb). + +Clean Up +-------- + +Let's remove the temporary directory now. + + rm -r examples/_temp diff --git a/docs/imagenet_training.md b/docs/imagenet_training.md index a1553dd6719..9e0076cf65f 100644 --- a/docs/imagenet_training.md +++ b/docs/imagenet_training.md @@ -9,7 +9,7 @@ Yangqing's Recipe on Brewing ImageNet "All your braincells are belong to us." - Caffeine -We are going to describe a reference implementation for the approach first proposed by Krizhevsky, Sutskever, and Hinton in their [NIPS 2012 paper](http://books.nips.cc/papers/files/nips25/NIPS2012_0534.pdf). Since training the whole model takes some time and energy, we provide a model, trained in the same way as we describe here, to help fight global warming. If you would like to simply use the pretrained model, check out the [Pretrained ImageNet](imagenet_pretrained.html) page. *Note that the pretrained model is for academic research / non-commercial use only*. +We are going to describe a reference implementation for the approach first proposed by Krizhevsky, Sutskever, and Hinton in their [NIPS 2012 paper](http://books.nips.cc/papers/files/nips25/NIPS2012_0534.pdf). Since training the whole model takes some time and energy, we provide a model, trained in the same way as we describe here, to help fight global warming. If you would like to simply use the pretrained model, check out the [Pretrained ImageNet](getting_pretrained_models.html) page. *Note that the pretrained model is for academic research / non-commercial use only*. To clarify, by ImageNet we actually mean the ILSVRC12 challenge, but you can easily train on the whole of ImageNet as well, just with more disk space, and a little longer training time. @@ -55,7 +55,7 @@ Network Definition The network definition follows strictly the one in Krizhevsky et al. You can find the detailed definition at `examples/imagenet/imagenet_train.prototxt`. Note the paths in the data layer - if you have not followed the exact paths in this guide you will need to change the following lines: source: "ilvsrc12_train_leveldb" - meanfile: "../../data/ilsvrc12/imagenet_mean.binaryproto" + mean_file: "../../data/ilsvrc12/imagenet_mean.binaryproto" to point to your own leveldb and image mean. Likewise, do the same for `examples/imagenet/imagenet_val.prototxt`. @@ -99,4 +99,4 @@ Parting Words Hope you liked this recipe! Many researchers have gone further since the ILSVRC 2012 challenge, changing the network architecture and/or finetuning the various parameters in the network. The recent ILSVRC 2013 challenge suggests that there are quite some room for improvement. **Caffe allows one to explore different network choices more easily, by simply writing different prototxt files** - isn't that exciting? -And since now you have a trained network, check out how to use it: [Running Pretrained ImageNet](imagenet_pretrained.html). This time we will use Python, but if you have wrappers for other languages, please kindly send a pull request! +And since now you have a trained network, check out how to use it: [Running Pretrained ImageNet](getting_pretrained_models.html). This time we will use Python, but if you have wrappers for other languages, please kindly send a pull request! diff --git a/docs/index.md b/docs/index.md index 10f7818f3a3..bc1969f6329 100644 --- a/docs/index.md +++ b/docs/index.md @@ -30,15 +30,16 @@ Even in CPU mode, computing predictions on an image takes only 20 ms when images ### Examples +* [Image Classification \[notebook\]][imagenet_classification]: classify images with the pretrained ImageNet model by the Python interface. +* [Detection \[notebook\]][detection]: run a pretrained model as a detector in Python. +* [Visualizing Features and Filters \[notebook\]][visualizing_filters]: extracting features and visualizing trained filters with an example image, viewed layer-by-layer. * [LeNet / MNIST Demo](/mnist.html): end-to-end training and testing of LeNet on MNIST. * [CIFAR-10 Demo](/cifar10.html): training and testing on the CIFAR-10 data. -* [Training ImageNet](/imagenet_training.html): end-to-end training of an ImageNet classifier. -* [Running Pretrained ImageNet \[notebook\]][pretrained_imagenet]: run classification with the pretrained ImageNet model using the Python interface. -* [Running Detection \[notebook\]][imagenet_detection]: run a pretrained model as a detector. -* [Visualizing Features and Filters \[notebook\]][visualizing_filters]: trained filters and an example image, viewed layer-by-layer. +* [Training ImageNet](/imagenet_training.html): recipe for end-to-end training of an ImageNet classifier. +* [Feature extraction with C++](/feature_extraction.html): feature extraction using pre-trained model. -[pretrained_imagenet]: http://nbviewer.ipython.org/github/BVLC/caffe/blob/master/examples/imagenet_pretrained.ipynb -[imagenet_detection]: http://nbviewer.ipython.org/github/BVLC/caffe/blob/master/examples/selective_search_demo.ipynb +[imagenet_classification]: http://nbviewer.ipython.org/github/BVLC/caffe/blob/master/examples/imagenet_classification.ipynb +[detection]: http://nbviewer.ipython.org/github/BVLC/caffe/blob/master/examples/detection_search_demo.ipynb [visualizing_filters]: http://nbviewer.ipython.org/github/BVLC/caffe/blob/master/examples/filter_visualization.ipynb ## Citing Caffe diff --git a/docs/installation.md b/docs/installation.md index 21c5413e5aa..1f403814a6d 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -5,105 +5,124 @@ title: Caffe # Installation -Prior to installing, it is best to read through this guide and take note of the details for your platform. We mostly develop and deploy on Ubuntu 12.04, although we have also installed on OS X 10.8 (and 10.9 with further effort) through homebrew. +Prior to installing, it is best to read through this guide and take note of the details for your platform. +We have successfully compiled and run Caffe on Ubuntu 12.04, OS X 10.8, and OS X 10.9. -- [Prerequisites](#prequequisites) +- [Prerequisites](#prerequisites) - [Compilation](#compilation) -- [OS X installation](#os_x_installation) - [Hardware questions](#hardware_questions) -To build and test Caffe do +## Prerequisites - cp Makefile.config.example Makefile.config - make - make test - make runtest +Caffe depends on several software packages. -You will probably need to adjust paths in `Makefile.config` and maybe the `Makefile` itself. Feel free to issue a pull request for a change that may help other people. +* [CUDA](https://developer.nvidia.com/cuda-zone) (5.0, 5.5, or 6.0). +* [BLAS](http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms) (provided via ATLAS, MKL, or OpenBLAS). +* [OpenCV](http://opencv.org/). +* [Boost](http://www.boost.org/) (we have only tested 1.55) +* `glog`, `gflags`, `protobuf`, `leveldb`, `snappy`, `hdf5` +* For the python wrapper + * `python`, `numpy (>= 1.7)`, Boost-provided `boost.python` +* For the MATLAB wrapper + * MATLAB with the `mex` compiler. -Note that building and running CPU-only works, but GPU tests will naturally fail. +### CUDA and BLAS -The following sections detail prerequisites and installation on Ubuntu. For OS X notes, refer to the table of contents above to skip ahead. +Caffe requires the CUDA `nvcc` compiler to compile its GPU code. +To install CUDA, go to the [NVIDIA CUDA website](https://developer.nvidia.com/cuda-downloads) and follow installation instructions there. **Note:** you can install the CUDA libraries without a CUDA card or driver, in order to build and run Caffe on a CPU-only machine. -## Prerequisites +Caffe requires BLAS as the backend of its matrix and vector computations. +There are several implementations of this library. +The choice is yours: -* [CUDA](https://developer.nvidia.com/cuda-zone) 5.0 or 5.5 -* [boost](http://www.boost.org/) (1.55 preferred) -* [BLAS](http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms) by [MKL](http://software.intel.com/en-us/intel-mkl) (though the `dev` branch supports ATLAS and OpenBLAS as alternatives) -* [OpenCV](http://opencv.org/) -* glog, gflags, protobuf, leveldb, snappy, hdf5 -* For the python wrapper: python, numpy (>= 1.7 preferred), and boost_python -* For the MATLAB wrapper: MATLAB with mex +* [ATLAS](http://math-atlas.sourceforge.net/): free, open source, and so the default for Caffe. + + Ubuntu: `sudo apt-get install libatlas-base-dev` + + CentOS/RHEL: `sudo yum install libatlas-devel` + + OS X: already installed as the [Accelerate / vecLib Framework](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man7/Accelerate.7.html). +* [Intel MKL](http://software.intel.com/en-us/intel-mkl): commercial and optimized for Intel CPUs, with a free trial and [student](http://software.intel.com/en-us/intel-education-offerings) licenses. + 1. Install MKL. + 2. Set `BLAS := mkl` in `Makefile.config` +* [OpenBLAS](http://www.openblas.net/): free and open source; this optimized and parallel BLAS could require more effort to install, although it might offer a speedup. + 1. Install OpenBLAS + 2. Set `BLAS := open` in `Makefile.config` -**CUDA**: Caffe requires the CUDA NVCC compiler to compile its GPU code. To install CUDA, go to the [NVIDIA CUDA website](https://developer.nvidia.com/cuda-downloads) and follow installation instructions there. Caffe compiles with both CUDA 5.0 and 5.5. +### Python and/or Matlab wrappers (optional) -N.B. one can install the CUDA libraries without the CUDA driver in order to build and run Caffe in CPU-only mode. +This is only a requirement if you'd like the Python wrapper for Caffe. +The main required package is `numpy`, and `Boost` (in "Other dependencies" below) must be compiled with Python support. -**MKL/BLAS**: the current stable release of Caffe needs Intel MKL as the backend of its matrix and vector computations. The [development version](https://github.com/BVLC/caffe/tree/dev) supports ATLAS and OpenBLAS backends as alternatives (while retaining MKL support). For MKL, you can obtain a [trial license](http://software.intel.com/en-us/intel-mkl) or an [academic license](http://software.intel.com/en-us/intel-education-offerings) (if you are a student). +For **OS X**, we highly recommend using the [Anaconda](https://store.continuum.io/cshop/anaconda/) Python distribution, which provides most of the necessary packages, as well as the `hdf5` library dependency. +If you don't, please use Homebrew -- but beware of potential linking errors! -**The Rest**: you will also need other packages, most of which can be installed via apt-get using: +Note that if you use the **Ubuntu** default python, you will need to `apt-get install` the `python-dev` package to have the python headers. You can install any remaining dependencies with - sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev + pip install -r /path/to/caffe/python/requirements.txt -The only exception being the google logging library, which does not exist in the Ubuntu 12.04 repository. To install it, do: +If you would like to have the MATLAB wrapper, install MATLAB, and make sure that its `mex` is in your `$PATH`. - wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz - tar zxvf glog-0.3.3.tar.gz - ./configure - make && make install +### The rest of the dependencies -**Python**: If you would like to have the python wrapper, install python, numpy and boost_python. You can either compile them from scratch or use a pre-packaged solution like [Anaconda](https://store.continuum.io/cshop/anaconda/) or [Enthought Canopy](https://www.enthought.com/products/canopy/). Note that if you use the Ubuntu default python, you will need to apt-install the `python-dev` package to have the python headers. You can install any remaining dependencies with +#### Linux - pip install -r /path/to/caffe/python/requirements.txt +On **Ubuntu**, the remaining dependencies can be installed with -**MATLAB**: if you would like to have the MATLAB wrapper, install MATLAB with the mex compiler. + sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev -Now that you have the prerequisites, edit your `Makefile.config` to change the paths for your setup. +And on **CentOS or RHEL**, you can install via yum using: -## Compilation + sudo yum install protobuf-devel leveldb-devel snappy-devel opencv-devel boost-devel hdf5-devel -With the prerequisites installed, do `make all` to compile Caffe. +The only exception being the google logging library, which does not exist in the Ubuntu 12.04 or CentOS/RHEL repositories. To install it, do: -To compile the python and MATLAB wrappers do `make pycaffe` and `make matcaffe` respectively. + wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz + tar zxvf glog-0.3.3.tar.gz + ./configure + make && make install -*Distribution*: run `make distribute` to create a `distribute` directory with all the Caffe headers, compiled libraries, binaries, etc. needed for distribution to other machines. +#### OS X -*Speed*: for a faster build, compile in parallel by doing `make all -j8` where 8 is the number of parallel threads for compilation (a good choice for the number of threads is the number of cores in your machine). +On **OS X**, we highly recommend using the [homebrew](http://brew.sh/) package manager, and ideally starting from a clean install of the OS (or from a wiped `/usr/local`) to avoid conflicts. +In the following, we assume that you're using Anaconda Python and Homebrew. -*Python Module*: for python support, you must add the compiled module to your `PYTHONPATH` (as `/path/to/caffe/python` or the like). +To install the OpenCV dependency, we'll need to provide an additional source for Homebrew: -Now that you have installed Caffe, check out the [MNIST demo](mnist.html) and the pretrained [ImageNet example](imagenet.html). + brew tap homebrew/science + +If using Anaconda Python, a modification is required to the OpenCV formula. +Do `brew edit opencv` and change the lines that look like the two lines below to exactly the two lines below. -## OS X Installation + -DPYTHON_LIBRARY=#{py_prefix}/lib/libpython2.7.dylib + -DPYTHON_INCLUDE_DIR=#{py_prefix}/include/python2.7 -On 10.8, we have successfully compiled and run Caffe on GPU-equipped Macbook Pros. Caffe also runs on 10.9, but you need to do a few extra steps described below. +**NOTE**: We find that everything compiles successfully if `$LD_LIBRARY_PATH` is not set at all, and `$DYLD_FALLBACK_LIBRARY_PATH` is set to to provide CUDA, Python, and other relevant libraries (e.g. `/usr/local/cuda/lib:$HOME/anaconda/lib:/usr/local/lib:/usr/lib`). +In other `ENV` settings, things may not work as expected. -### Install prerequisites using Homebrew +#### 10.8-specific Instructions -Install [homebrew](http://brew.sh/) to install most of the prerequisites. Starting from a clean install of the OS (or from a wiped `/usr/local`) is recommended to avoid conflicts. For python, [Anaconda](https://store.continuum.io/cshop/anaconda/) and homebrew python are confirmed to work. +Simply run the following. - # install python by (1) Anaconda or (2) brew install python brew install --build-from-source boost - brew install snappy leveldb protobuf gflags glog - brew tap homebrew/science - brew install homebrew/science/hdf5 - brew install homebrew/science/opencv + for x in snappy leveldb protobuf gflags glog szip homebrew/science/opencv; do brew install $x; done + +Building boost from source is needed to link against your local python (exceptions might be raised during some OS X installs, but **ignore** these and continue). -Building boost from source is needed to link against your local python (exceptions might be raised during some OS X installs, but ignore these and continue). -If using homebrew python, python packages like `numpy` and `scipy` are best installed by doing `brew tap homebrew/python`, and then installing them with homebrew. +**Note** that the HDF5 dependency is provided by Anaconda Python in this case. +If you're not using Anaconda, include `hdf5` in the list above. -#### 10.9 additional notes +#### 10.9-specific Instructions -In OS X 10.9 Apple changed to clang as the default compiler. Clang uses libc++ as the standard library by default, while NVIDIA CUDA currently works with libstdc++. This makes it necessary to change the compilation settings for each of the dependencies. We do this by modifying the homebrew formulae before installing any packages. Make sure that homebrew doesn't install any software dependencies in the background; all packages must be linked to libstdc++. +In OS X 10.9, clang is the default compiler and uses `libc++` as the standard library. +However, NVIDIA CUDA (even version 6.0) currently links only with `libstdc++`. +This makes it necessary to change the compilation settings for each of the dependencies. -Only Anaconda python has been confirmed to work on 10.9. +We do this by modifying the homebrew formulae before installing any packages. +Make sure that homebrew doesn't install any software dependencies in the background; all packages must be linked to `libstdc++`. -For each package that you install through homebrew do the following: +The prerequisite homebrew formulae are -1. Open formula in editor: `brew edit FORMULA` -2. Add the ENV definitions as shown in the code block below. -3. Uninstall any formulae that were already installed: `brew uninstall FORMULA` -4. Install / Reinstall: `brew install --build-from-source --fresh -vd FORMULA` + boost snappy leveldb protobuf gflags glog szip homebrew/science/opencv + +For each of these formulas, `brew edit FORMULA`, and add the ENV definitions as shown: ``` def install @@ -113,49 +132,42 @@ For each package that you install through homebrew do the following: ENV.append "LDFLAGS", '-stdlib=libstdc++ -lstdc++' #The following is necessary because libtool liks to strip LDFLAGS: ENV.cxx = "/usr/bin/clang -stdlib=libstdc++" - ... ``` -The prerequisite homebrew formulae are - - boost snappy leveldb protobuf gflags glog szip homebrew/science/hdf5 homebrew/science/opencv - -so follow steps 1-4 for each. +After this, run -After this the rest of the installation is the same as under 10.8, as long as `clang++` is invoked with `-stdlib=libstdc++` and `-lstdc++` is linked. + for x in snappy leveldb protobuf gflags glog szip boost homebrew/science/opencv; do brew uninstall $x; brew install --build-from-source --fresh -vd $x; done -### CUDA and MKL +**Note** that the HDF5 dependency is provided by Anaconda Python in this case. +If you're not using Anaconda, include `hdf5` in the list above. -CUDA and MKL are straightforward to install; download from the NVIDIA and Intel links under "Prerequisites." - -### Compiling Caffe - -Here are the relevant parts of the Makefile.config after all this: +## Compilation - CUDA_DIR := /Developer/NVIDIA/CUDA-5.5 - MKL_DIR := /opt/intel/mkl - PYTHON_INCLUDES := /path/to/anaconda/include /path/to/anaconda/include/python2.7 /path/to/anaconda/lib/python2.7/site-packages/numpy/core/include - PYTHON_LIB := /path/to/anaconda/lib - CXX=/usr/bin/clang++ +Now that you have the prerequisites, edit your `Makefile.config` to change the paths for your setup. +The defaults should work, but uncomment the relevant lines if using Anaconda Python. -Don't forget to set `PATH` and `LD_LIBRARY_PATH`: + cp Makefile.config.example Makefile.config + # Adjust Makefile.config (for example, if using Anaconda Python) + make all + make test + make runtest - export PATH=/path/to/anaconda/bin:/Developer/NVIDIA/CUDA-5.5/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin - export LD_LIBRARY_PATH=/Developer/NVIDIA/CUDA-5.5/lib:/opt/intel/composer_xe_2013_sp1.1.103/compiler/lib:/opt/intel/composer_xe_2013_sp1.1.103/mkl/lib:/path/to/anaconda/lib:/usr/local/lib:/usr/lib:/lib +Note that if there is no GPU in your machine, building and running CPU-only works, but GPU tests will naturally fail. -Additionally, MKL requires `DYLD_LIBRARY_PATH` to be set: +To compile the python and MATLAB wrappers do `make pycaffe` and `make matcaffe` respectively. +Be sure to set your MATLAB and python paths in `Makefile.config` first! +For Python support, you must add the compiled module to your `PYTHONPATH` (as `/path/to/caffe/python` or the like). - export MKL_DIR=/opt/intel/composer_xe_2013_sp1.1.103 - export DYLD_LIBRARY_PATH=$MKL_DIR/compiler/lib:$MKL_DIR/mkl/lib +*Distribution*: run `make distribute` to create a `distribute` directory with all the Caffe headers, compiled libraries, binaries, etc. needed for distribution to other machines. -Note that we still need to include the MKL `compiler/lib` in our paths, although we do not explicitly link against this directory in the Makefile. +*Speed*: for a faster build, compile in parallel by doing `make all -j8` where 8 is the number of parallel threads for compilation (a good choice for the number of threads is the number of cores in your machine). -Further note that these paths are for Anaconda python. For homebrew python, substitute `/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7` for `/path/to/anaconda`. +Now that you have installed Caffe, check out the [MNIST demo](mnist.html) and the pretrained [ImageNet example](imagenet.html). ## Hardware Questions -**Laboratory Tested Hardware**: Berkeley Vision runs Caffe with k40s, k20s, and Titans including models at ImageNet/ILSVRC scale. We also run on GTX series cards and GPU-equipped MacBook Pros. We have not encountered any trouble in-house with devices with CUDA capability >= 3.0. All reported hardware issues thus-far have been due to GPU configuration, overheating, and the like. +**Laboratory Tested Hardware**: Berkeley Vision runs Caffe with K40s, K20s, and Titans including models at ImageNet/ILSVRC scale. We also run on GTX series cards and GPU-equipped MacBook Pros. We have not encountered any trouble in-house with devices with CUDA capability >= 3.0. All reported hardware issues thus-far have been due to GPU configuration, overheating, and the like. **CUDA compute capability**: devices with compute capability <= 2.0 may have to reduce CUDA thread numbers and batch sizes due to hardware constraints. Your mileage may vary. diff --git a/docs/mnist.md b/docs/mnist.md index c97f3cfe9e1..9a9b46a4cc6 100644 --- a/docs/mnist.md +++ b/docs/mnist.md @@ -15,7 +15,7 @@ You will first need to download and convert the data format from the MNIST websi cd $CAFFE_ROOT/data/mnist ./get_mnist.sh - cd $CAFFE_ROOT/examples/lenet + cd $CAFFE_ROOT/examples/mnist ./create_mnist.sh If it complains that `wget` or `gunzip` are not installed, you need to install them respectively. After running the script there should be two datasets, `mnist-train-leveldb`, and `mnist-test-leveldb`. @@ -33,7 +33,7 @@ Training and Testing the Model Training the model is simple after you have written the network definition protobuf and solver protobuf files. Simply run `train_mnist.sh`, or the following command directly: - cd $CAFFE_ROOT/examples/lenet + cd $CAFFE_ROOT/examples/mnist ./train_lenet.sh `train_lenet.sh` is a simple script, but here are a few explanations: `GLOG_logtostderr=1` is the google logging flag that prints all the logging messages directly to stderr. The main tool for training is `train_net.bin`, with the solver protobuf text file as its argument. @@ -83,8 +83,8 @@ Um... How about GPU training? You just did! All the training was carried out on the GPU. In fact, if you would like to do training on CPU, you can simply change one line in `lenet_solver.prototxt`: - # solver mode: 0 for CPU and 1 for GPU - solver_mode: 0 + # solver mode: CPU or GPU + solver_mode: CPU and you will be using CPU for training. Isn't that easy? diff --git a/docs/mnist_prototxt.md b/docs/mnist_prototxt.md index 5ed2f23b2d6..aaff2b00953 100644 --- a/docs/mnist_prototxt.md +++ b/docs/mnist_prototxt.md @@ -17,11 +17,11 @@ Writing the Data Layer Currently, we will read the MNIST data from the leveldb we created earlier in the demo. This is defined by a data layer: layers { - layer { - name: "mnist" - type: "data" + name: "mnist" + type: DATA + data_param { source: "mnist-train-leveldb" - batchsize: 64 + batch_size: 64 scale: 0.00390625 } top: "data" @@ -35,9 +35,11 @@ Writing the Convolution Layer Let's define the first convolution layer: layers { - layer { - name: "conv1" - type: "conv" + name: "conv1" + type: CONVOLUTION + blobs_lr: 1. + blobs_lr: 2. + convolution_param { num_output: 20 kernelsize: 5 stride: 1 @@ -47,8 +49,6 @@ Let's define the first convolution layer: bias_filler { type: "constant" } - blobs_lr: 1. - blobs_lr: 2. } bottom: "data" top: "conv1" @@ -65,10 +65,10 @@ Writing the Pooling Layer Phew. Pooling layers are actually much easier to define: layers { - layer { - name: "pool1" - type: "pool" - kernelsize: 2 + name: "pool1" + type: POOLING + pooling_param { + kernel_size: 2 stride: 2 pool: MAX } @@ -82,12 +82,14 @@ Similarly, you can write up the second convolution and pooling layers. Check `da Writing the Fully Connected Layer ---------------------------------- -Writing a fully connected layers is also simple: +Writing a fully connected layer is also simple: layers { - layer { - name: "ip1" - type: "innerproduct" + name: "ip1" + type: INNER_PRODUCT + blobs_lr: 1. + blobs_lr: 2. + inner_product_param { num_output: 500 weight_filler { type: "xavier" @@ -95,8 +97,6 @@ Writing a fully connected layers is also simple: bias_filler { type: "constant" } - blobs_lr: 1. - blobs_lr: 2. } bottom: "pool2" top: "ip1" @@ -109,10 +109,8 @@ Writing the ReLU Layer A ReLU Layer is also simple: layers { - layer { - name: "relu1" - type: "relu" - } + name: "relu1" + type: RELU bottom: "ip1" top: "ip1" } @@ -122,9 +120,11 @@ Since ReLU is an element-wise operation, we can do *in-place* operations to save After the ReLU layer, we will write another innerproduct layer: layers { - layer { - name: "ip2" - type: "innerproduct" + name: "ip2" + type: INNER_PRODUCT + blobs_lr: 1. + blobs_lr: 2. + inner_product_param { num_output: 10 weight_filler { type: "xavier" @@ -132,8 +132,6 @@ After the ReLU layer, we will write another innerproduct layer: bias_filler { type: "constant" } - blobs_lr: 1. - blobs_lr: 2. } bottom: "ip1" top: "ip2" @@ -144,10 +142,8 @@ Writing the Loss Layer Finally, we will write the loss! layers { - layer { - name: "loss" - type: "softmax_loss" - } + name: "loss" + type: SOFTMAX_LOSS bottom: "ip2" bottom: "label" } diff --git a/examples/cifar10/cifar10_full.prototxt b/examples/cifar10/cifar10_full.prototxt index 64fb2a8de85..237a7a0a0ed 100644 --- a/examples/cifar10/cifar10_full.prototxt +++ b/examples/cifar10/cifar10_full.prototxt @@ -6,148 +6,135 @@ input_dim: 1 input_dim: 3 input_dim: 32 input_dim: 32 -# ------------------------ layer 1 ----------------------------- layers { - layer { - name: "conv1" - type: "conv" - num_output: 32 - kernelsize: 5 - pad: 2 - stride: 1 - blobs_lr: 1.0 - blobs_lr: 2.0 - } - bottom: "data" - top: "conv1" + name: "conv1" + type: CONVOLUTION + bottom: "data" + top: "conv1" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { + num_output: 32 + pad: 2 + kernel_size: 5 + stride: 1 + } } layers { - layer { - name: "pool1" - type: "pool" - kernelsize: 3 - stride: 2 - pool: MAX - } - bottom: "conv1" - top: "pool1" + name: "pool1" + type: POOLING + bottom: "conv1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } } layers { - layer { - name: "relu1" - type: "relu" - } - bottom: "pool1" - top: "pool1" + name: "relu1" + type: RELU + bottom: "pool1" + top: "pool1" } layers { - layer { - name: "norm1" - type: "lrn" + name: "norm1" + type: LRN + bottom: "pool1" + top: "norm1" + lrn_param { local_size: 3 - alpha: 0.00005 + alpha: 5e-05 beta: 0.75 } - bottom: "pool1" - top: "norm1" } -# --------------------------- layer 2 ------------------------ layers { - layer { - name: "conv2" - type: "conv" - num_output: 32 - kernelsize: 5 - pad: 2 - stride: 1 - blobs_lr: 1. - blobs_lr: 2. - } - bottom: "norm1" - top: "conv2" + name: "conv2" + type: CONVOLUTION + bottom: "norm1" + top: "conv2" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { + num_output: 32 + pad: 2 + kernel_size: 5 + stride: 1 + } } layers { - layer { - name: "relu2" - type: "relu" - } - bottom: "conv2" - top: "conv2" + name: "relu2" + type: RELU + bottom: "conv2" + top: "conv2" } layers { - layer { - name: "pool2" - type: "pool" - kernelsize: 3 - stride: 2 - pool: AVE - } - bottom: "conv2" - top: "pool2" + name: "pool2" + type: POOLING + bottom: "conv2" + top: "pool2" + pooling_param { + pool: AVE + kernel_size: 3 + stride: 2 + } } layers { - layer { - name: "norm2" - type: "lrn" + name: "norm2" + type: LRN + bottom: "pool2" + top: "norm2" + lrn_param { local_size: 3 - alpha: 0.00005 + alpha: 5e-05 beta: 0.75 } - bottom: "pool2" - top: "norm2" } -#-----------------------layer 3------------------------- layers { - layer { - name: "conv3" - type: "conv" - num_output: 64 - kernelsize: 5 - pad: 2 - stride: 1 - } - bottom: "norm2" - top: "conv3" + name: "conv3" + type: CONVOLUTION + bottom: "norm2" + top: "conv3" + convolution_param { + num_output: 64 + pad: 2 + kernel_size: 5 + stride: 1 + } } layers { - layer { - name: "relu3" - type: "relu" - } - bottom: "conv3" - top: "conv3" + name: "relu3" + type: RELU + bottom: "conv3" + top: "conv3" } layers { - layer { - name: "pool3" - type: "pool" - kernelsize: 3 - stride: 2 - pool: AVE - } - bottom: "conv3" - top: "pool3" + name: "pool3" + type: POOLING + bottom: "conv3" + top: "pool3" + pooling_param { + pool: AVE + kernel_size: 3 + stride: 2 + } } -#--------------------------layer 4------------------------ layers { - layer { - name: "ip1" - type: "innerproduct" - num_output: 10 - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 250. - weight_decay: 0. - } - bottom: "pool3" - top: "ip1" + name: "ip1" + type: INNER_PRODUCT + bottom: "pool3" + top: "ip1" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 250 + weight_decay: 0 + inner_product_param { + num_output: 10 + } } -#-----------------------output------------------------ layers { - layer { - name: "prob" - type: "softmax" - } - bottom: "ip1" - top: "prob" + name: "prob" + type: SOFTMAX + bottom: "ip1" + top: "prob" } diff --git a/examples/cifar10/cifar10_full_solver.prototxt b/examples/cifar10/cifar10_full_solver.prototxt index b985b65d9da..0a0b456308d 100644 --- a/examples/cifar10/cifar10_full_solver.prototxt +++ b/examples/cifar10/cifar10_full_solver.prototxt @@ -24,5 +24,10 @@ max_iter: 60000 # snapshot intermediate results snapshot: 10000 snapshot_prefix: "cifar10_full" -# solver mode: 0 for CPU and 1 for GPU -solver_mode: 1 +# solver mode: CPU or GPU +# Note: there seems to be a bug with CPU computation in the pooling layers, +# and changing to solver_mode: CPU may result in NaNs on this example. +# If you want to train a variant of this architecture on the +# CPU, try changing the pooling regions from WITHIN_CHANNEL to ACROSS_CHANNELS +# in both cifar_full_train.prototxt and cifar_full_test.prototxt. +solver_mode: GPU diff --git a/examples/cifar10/cifar10_full_solver_lr1.prototxt b/examples/cifar10/cifar10_full_solver_lr1.prototxt index 9f5f466f501..4376de5493f 100644 --- a/examples/cifar10/cifar10_full_solver_lr1.prototxt +++ b/examples/cifar10/cifar10_full_solver_lr1.prototxt @@ -24,5 +24,5 @@ max_iter: 65000 # snapshot intermediate results snapshot: 5000 snapshot_prefix: "cifar10_full" -# solver mode: 0 for CPU and 1 for GPU -solver_mode: 1 +# solver mode: CPU or GPU +solver_mode: GPU diff --git a/examples/cifar10/cifar10_full_solver_lr2.prototxt b/examples/cifar10/cifar10_full_solver_lr2.prototxt index 785dffe0359..19580c5184a 100644 --- a/examples/cifar10/cifar10_full_solver_lr2.prototxt +++ b/examples/cifar10/cifar10_full_solver_lr2.prototxt @@ -24,5 +24,5 @@ max_iter: 70000 # snapshot intermediate results snapshot: 5000 snapshot_prefix: "cifar10_full" -# solver mode: 0 for CPU and 1 for GPU -solver_mode: 1 +# solver mode: CPU or GPU +solver_mode: GPU diff --git a/examples/cifar10/cifar10_full_test.prototxt b/examples/cifar10/cifar10_full_test.prototxt index a77c7d268da..0e1957a9045 100644 --- a/examples/cifar10/cifar10_full_test.prototxt +++ b/examples/cifar10/cifar10_full_test.prototxt @@ -1,193 +1,180 @@ name: "CIFAR10_full_test" layers { - layer { - name: "cifar" - type: "data" - source: "cifar10-leveldb/cifar-test-leveldb" - meanfile: "mean.binaryproto" - batchsize: 100 - } - top: "data" - top: "label" + name: "cifar" + type: DATA + top: "data" + top: "label" + data_param { + source: "cifar10-leveldb/cifar-test-leveldb" + mean_file: "mean.binaryproto" + batch_size: 100 + } } -# ------------------------ layer 1 ----------------------------- layers { - layer { - name: "conv1" - type: "conv" - num_output: 32 - kernelsize: 5 - pad: 2 - stride: 1 - weight_filler { - type: "gaussian" - std: 0.0001 - } - bias_filler { - type: "constant" - } - blobs_lr: 1. - blobs_lr: 2. - } - bottom: "data" - top: "conv1" + name: "conv1" + type: CONVOLUTION + bottom: "data" + top: "conv1" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { + num_output: 32 + pad: 2 + kernel_size: 5 + stride: 1 + weight_filler { + type: "gaussian" + std: 0.0001 + } + bias_filler { + type: "constant" + } + } } layers { - layer { - name: "pool1" - type: "pool" - kernelsize: 3 - stride: 2 - pool: MAX - } - bottom: "conv1" - top: "pool1" + name: "pool1" + type: POOLING + bottom: "conv1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } } layers { - layer { - name: "relu1" - type: "relu" - } - bottom: "pool1" - top: "pool1" + name: "relu1" + type: RELU + bottom: "pool1" + top: "pool1" } layers { - layer { - name: "norm1" - type: "lrn" + name: "norm1" + type: LRN + bottom: "pool1" + top: "norm1" + lrn_param { + norm_region: WITHIN_CHANNEL local_size: 3 - alpha: 0.00005 + alpha: 5e-05 beta: 0.75 } - bottom: "pool1" - top: "norm1" } -# --------------------------- layer 2 ------------------------ layers { - layer { - name: "conv2" - type: "conv" - num_output: 32 - kernelsize: 5 - pad: 2 - stride: 1 - weight_filler { - type: "gaussian" - std: 0.01 - } - bias_filler { - type: "constant" - } - blobs_lr: 1. - blobs_lr: 2. - } - bottom: "norm1" - top: "conv2" + name: "conv2" + type: CONVOLUTION + bottom: "norm1" + top: "conv2" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { + num_output: 32 + pad: 2 + kernel_size: 5 + stride: 1 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + } + } } layers { - layer { - name: "relu2" - type: "relu" - } - bottom: "conv2" - top: "conv2" + name: "relu2" + type: RELU + bottom: "conv2" + top: "conv2" } layers { - layer { - name: "pool2" - type: "pool" - kernelsize: 3 - stride: 2 - pool: AVE - } - bottom: "conv2" - top: "pool2" + name: "pool2" + type: POOLING + bottom: "conv2" + top: "pool2" + pooling_param { + pool: AVE + kernel_size: 3 + stride: 2 + } } layers { - layer { - name: "norm2" - type: "lrn" + name: "norm2" + type: LRN + bottom: "pool2" + top: "norm2" + lrn_param { + norm_region: WITHIN_CHANNEL local_size: 3 - alpha: 0.00005 + alpha: 5e-05 beta: 0.75 } - bottom: "pool2" - top: "norm2" } -#-----------------------layer 3------------------------- layers { - layer { - name: "conv3" - type: "conv" - num_output: 64 - kernelsize: 5 - pad: 2 - stride: 1 - weight_filler { - type: "gaussian" - std: 0.01 - } - bias_filler { - type: "constant" - } - } - bottom: "norm2" - top: "conv3" + name: "conv3" + type: CONVOLUTION + bottom: "norm2" + top: "conv3" + convolution_param { + num_output: 64 + pad: 2 + kernel_size: 5 + stride: 1 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + } + } } layers { - layer { - name: "relu3" - type: "relu" - } - bottom: "conv3" - top: "conv3" + name: "relu3" + type: RELU + bottom: "conv3" + top: "conv3" } layers { - layer { - name: "pool3" - type: "pool" - kernelsize: 3 - stride: 2 - pool: AVE - } - bottom: "conv3" - top: "pool3" + name: "pool3" + type: POOLING + bottom: "conv3" + top: "pool3" + pooling_param { + pool: AVE + kernel_size: 3 + stride: 2 + } } -#--------------------------layer 4------------------------ layers { - layer { - name: "ip1" - type: "innerproduct" - num_output: 10 - weight_filler { - type: "gaussian" - std: 0.01 - } - bias_filler { - type: "constant" - } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 250. - weight_decay: 0. - } - bottom: "pool3" - top: "ip1" + name: "ip1" + type: INNER_PRODUCT + bottom: "pool3" + top: "ip1" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 250 + weight_decay: 0 + inner_product_param { + num_output: 10 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + } + } } -#-----------------------output------------------------ layers { - layer { - name: "prob" - type: "softmax" - } - bottom: "ip1" - top: "prob" + name: "prob" + type: SOFTMAX + bottom: "ip1" + top: "prob" } layers { - layer { - name: "accuracy" - type: "accuracy" - } + name: "accuracy" + type: ACCURACY bottom: "prob" bottom: "label" top: "accuracy" diff --git a/examples/cifar10/cifar10_full_train.prototxt b/examples/cifar10/cifar10_full_train.prototxt index 28e4612c04e..25c76060991 100644 --- a/examples/cifar10/cifar10_full_train.prototxt +++ b/examples/cifar10/cifar10_full_train.prototxt @@ -1,185 +1,174 @@ name: "CIFAR10_full_train" layers { - layer { - name: "cifar" - type: "data" - source: "cifar10-leveldb/cifar-train-leveldb" - meanfile: "mean.binaryproto" - batchsize: 100 - } - top: "data" - top: "label" + name: "cifar" + type: DATA + top: "data" + top: "label" + data_param { + source: "cifar10-leveldb/cifar-train-leveldb" + mean_file: "mean.binaryproto" + batch_size: 100 + } } -# ------------------------ layer 1 ----------------------------- layers { - layer { - name: "conv1" - type: "conv" - num_output: 32 - kernelsize: 5 - pad: 2 - stride: 1 - weight_filler { - type: "gaussian" - std: 0.0001 - } - bias_filler { - type: "constant" - } - blobs_lr: 1. - blobs_lr: 2. - } - bottom: "data" - top: "conv1" + name: "conv1" + type: CONVOLUTION + bottom: "data" + top: "conv1" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { + num_output: 32 + pad: 2 + kernel_size: 5 + stride: 1 + weight_filler { + type: "gaussian" + std: 0.0001 + } + bias_filler { + type: "constant" + } + } } layers { - layer { - name: "pool1" - type: "pool" - kernelsize: 3 - stride: 2 - pool: MAX - } - bottom: "conv1" - top: "pool1" + name: "pool1" + type: POOLING + bottom: "conv1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } } layers { - layer { - name: "relu1" - type: "relu" - } - bottom: "pool1" - top: "pool1" + name: "relu1" + type: RELU + bottom: "pool1" + top: "pool1" } layers { - layer { - name: "norm1" - type: "lrn" + name: "norm1" + type: LRN + bottom: "pool1" + top: "norm1" + lrn_param { + norm_region: WITHIN_CHANNEL local_size: 3 - alpha: 0.00005 + alpha: 5e-05 beta: 0.75 } - bottom: "pool1" - top: "norm1" } -# --------------------------- layer 2 ------------------------ layers { - layer { - name: "conv2" - type: "conv" - num_output: 32 - kernelsize: 5 - pad: 2 - stride: 1 - weight_filler { - type: "gaussian" - std: 0.01 - } - bias_filler { - type: "constant" - } - blobs_lr: 1. - blobs_lr: 2. - } - bottom: "norm1" - top: "conv2" + name: "conv2" + type: CONVOLUTION + bottom: "norm1" + top: "conv2" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { + num_output: 32 + pad: 2 + kernel_size: 5 + stride: 1 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + } + } } layers { - layer { - name: "relu2" - type: "relu" - } - bottom: "conv2" - top: "conv2" + name: "relu2" + type: RELU + bottom: "conv2" + top: "conv2" } layers { - layer { - name: "pool2" - type: "pool" - kernelsize: 3 - stride: 2 - pool: AVE - } - bottom: "conv2" - top: "pool2" + name: "pool2" + type: POOLING + bottom: "conv2" + top: "pool2" + pooling_param { + pool: AVE + kernel_size: 3 + stride: 2 + } } layers { - layer { - name: "norm2" - type: "lrn" + name: "norm2" + type: LRN + bottom: "pool2" + top: "norm2" + lrn_param { + norm_region: WITHIN_CHANNEL local_size: 3 - alpha: 0.00005 + alpha: 5e-05 beta: 0.75 } - bottom: "pool2" - top: "norm2" } -#-----------------------layer 3------------------------- layers { - layer { - name: "conv3" - type: "conv" - num_output: 64 - kernelsize: 5 - pad: 2 - stride: 1 - weight_filler { - type: "gaussian" - std: 0.01 - } - bias_filler { - type: "constant" - } - } - bottom: "norm2" - top: "conv3" + name: "conv3" + type: CONVOLUTION + bottom: "norm2" + top: "conv3" + convolution_param { + num_output: 64 + pad: 2 + kernel_size: 5 + stride: 1 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + } + } } layers { - layer { - name: "relu3" - type: "relu" - } - bottom: "conv3" - top: "conv3" + name: "relu3" + type: RELU + bottom: "conv3" + top: "conv3" } layers { - layer { - name: "pool3" - type: "pool" - kernelsize: 3 - stride: 2 - pool: AVE - } - bottom: "conv3" - top: "pool3" + name: "pool3" + type: POOLING + bottom: "conv3" + top: "pool3" + pooling_param { + pool: AVE + kernel_size: 3 + stride: 2 + } } -#--------------------------layer 4------------------------ layers { - layer { - name: "ip1" - type: "innerproduct" - num_output: 10 - weight_filler { - type: "gaussian" - std: 0.01 - } - bias_filler { - type: "constant" - } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 250. - weight_decay: 0. - } - bottom: "pool3" - top: "ip1" + name: "ip1" + type: INNER_PRODUCT + bottom: "pool3" + top: "ip1" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 250 + weight_decay: 0 + inner_product_param { + num_output: 10 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + } + } } -#-----------------------output------------------------ layers { - layer { - name: "loss" - type: "softmax_loss" - } - bottom: "ip1" - bottom: "label" + name: "loss" + type: SOFTMAX_LOSS + bottom: "ip1" + bottom: "label" } diff --git a/examples/cifar10/cifar10_quick.prototxt b/examples/cifar10/cifar10_quick.prototxt index 6161caa10e8..505158f7a34 100644 --- a/examples/cifar10/cifar10_quick.prototxt +++ b/examples/cifar10/cifar10_quick.prototxt @@ -1,143 +1,127 @@ name: "CIFAR10_quick_test" -# N.B. input image must be in CIFAR-10 format -# as described at http://www.cs.toronto.edu/~kriz/cifar.html input: "data" input_dim: 1 input_dim: 3 input_dim: 32 input_dim: 32 -# ------------------------ layer 1 ----------------------------- layers { - layer { - name: "conv1" - type: "conv" - num_output: 32 - kernelsize: 5 - pad: 2 - stride: 1 - blobs_lr: 1.0 - blobs_lr: 2.0 - } - bottom: "data" - top: "conv1" + name: "conv1" + type: CONVOLUTION + bottom: "data" + top: "conv1" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { + num_output: 32 + pad: 2 + kernel_size: 5 + stride: 1 + } } layers { - layer { - name: "pool1" - type: "pool" - kernelsize: 3 - stride: 2 - pool: MAX - } - bottom: "conv1" - top: "pool1" + name: "pool1" + type: POOLING + bottom: "conv1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } } layers { - layer { - name: "relu1" - type: "relu" - } - bottom: "pool1" - top: "pool1" + name: "relu1" + type: RELU + bottom: "pool1" + top: "pool1" } -# --------------------------- layer 2 ------------------------ layers { - layer { - name: "conv2" - type: "conv" - num_output: 32 - kernelsize: 5 - pad: 2 - stride: 1 - blobs_lr: 1.0 - blobs_lr: 2.0 - } - bottom: "pool1" - top: "conv2" + name: "conv2" + type: CONVOLUTION + bottom: "pool1" + top: "conv2" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { + num_output: 32 + pad: 2 + kernel_size: 5 + stride: 1 + } } layers { - layer { - name: "relu2" - type: "relu" - } - bottom: "conv2" - top: "conv2" + name: "relu2" + type: RELU + bottom: "conv2" + top: "conv2" } layers { - layer { - name: "pool2" - type: "pool" - kernelsize: 3 - stride: 2 - pool: AVE - } - bottom: "conv2" - top: "pool2" + name: "pool2" + type: POOLING + bottom: "conv2" + top: "pool2" + pooling_param { + pool: AVE + kernel_size: 3 + stride: 2 + } } -#-----------------------layer 3------------------------- layers { - layer { - name: "conv3" - type: "conv" - num_output: 64 - kernelsize: 5 - pad: 2 - stride: 1 - blobs_lr: 1.0 - blobs_lr: 2.0 - } - bottom: "pool2" - top: "conv3" + name: "conv3" + type: CONVOLUTION + bottom: "pool2" + top: "conv3" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { + num_output: 64 + pad: 2 + kernel_size: 5 + stride: 1 + } } layers { - layer { - name: "relu3" - type: "relu" - } - bottom: "conv3" - top: "conv3" + name: "relu3" + type: RELU + bottom: "conv3" + top: "conv3" } layers { - layer { - name: "pool3" - type: "pool" - kernelsize: 3 - stride: 2 - pool: AVE - } - bottom: "conv3" - top: "pool3" + name: "pool3" + type: POOLING + bottom: "conv3" + top: "pool3" + pooling_param { + pool: AVE + kernel_size: 3 + stride: 2 + } } -#--------------------------layer 4------------------------ layers { - layer { - name: "ip1" - type: "innerproduct" - num_output: 64 - blobs_lr: 1.0 - blobs_lr: 2.0 - } - bottom: "pool3" - top: "ip1" + name: "ip1" + type: INNER_PRODUCT + bottom: "pool3" + top: "ip1" + blobs_lr: 1 + blobs_lr: 2 + inner_product_param { + num_output: 64 + } } -#--------------------------layer 5------------------------ layers { - layer { - name: "ip2" - type: "innerproduct" - num_output: 10 - blobs_lr: 1.0 - blobs_lr: 2.0 - } - bottom: "ip1" - top: "ip2" + name: "ip2" + type: INNER_PRODUCT + bottom: "ip1" + top: "ip2" + blobs_lr: 1 + blobs_lr: 2 + inner_product_param { + num_output: 10 + } } -#-----------------------output------------------------ layers { - layer { - name: "prob" - type: "softmax" - } - bottom: "ip2" - top: "prob" + name: "prob" + type: SOFTMAX + bottom: "ip2" + top: "prob" } diff --git a/examples/cifar10/cifar10_quick_solver.prototxt b/examples/cifar10/cifar10_quick_solver.prototxt index 32ba69de49a..4b547cc96f4 100644 --- a/examples/cifar10/cifar10_quick_solver.prototxt +++ b/examples/cifar10/cifar10_quick_solver.prototxt @@ -23,5 +23,5 @@ max_iter: 4000 # snapshot intermediate results snapshot: 4000 snapshot_prefix: "cifar10_quick" -# solver mode: 0 for CPU and 1 for GPU -solver_mode: 1 +# solver mode: CPU or GPU +solver_mode: GPU diff --git a/examples/cifar10/cifar10_quick_solver_lr1.prototxt b/examples/cifar10/cifar10_quick_solver_lr1.prototxt index 1f369cc2351..d4ba3d525d9 100644 --- a/examples/cifar10/cifar10_quick_solver_lr1.prototxt +++ b/examples/cifar10/cifar10_quick_solver_lr1.prototxt @@ -23,5 +23,5 @@ max_iter: 5000 # snapshot intermediate results snapshot: 5000 snapshot_prefix: "cifar10_quick" -# solver mode: 0 for CPU and 1 for GPU -solver_mode: 1 +# solver mode: CPU or GPU +solver_mode: GPU diff --git a/examples/cifar10/cifar10_quick_test.prototxt b/examples/cifar10/cifar10_quick_test.prototxt index a937df57d00..a154b9a0ea7 100644 --- a/examples/cifar10/cifar10_quick_test.prototxt +++ b/examples/cifar10/cifar10_quick_test.prototxt @@ -1,191 +1,174 @@ -# quick config name: "CIFAR10_quick_test" layers { - layer { - name: "cifar" - type: "data" - source: "cifar10-leveldb/cifar-test-leveldb" - meanfile: "mean.binaryproto" - batchsize: 100 - } - top: "data" - top: "label" + name: "cifar" + type: DATA + top: "data" + top: "label" + data_param { + source: "cifar10-leveldb/cifar-test-leveldb" + mean_file: "mean.binaryproto" + batch_size: 100 + } } -# ------------------------ layer 1 ----------------------------- layers { - layer { - name: "conv1" - type: "conv" - num_output: 32 - kernelsize: 5 - pad: 2 - stride: 1 - weight_filler { - type: "gaussian" - std: 0.0001 - } - bias_filler { - type: "constant" - } - blobs_lr: 1.0 - blobs_lr: 2.0 - } - bottom: "data" - top: "conv1" + name: "conv1" + type: CONVOLUTION + bottom: "data" + top: "conv1" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { + num_output: 32 + pad: 2 + kernel_size: 5 + stride: 1 + weight_filler { + type: "gaussian" + std: 0.0001 + } + bias_filler { + type: "constant" + } + } } layers { - layer { - name: "pool1" - type: "pool" - kernelsize: 3 - stride: 2 - pool: MAX - } - bottom: "conv1" - top: "pool1" + name: "pool1" + type: POOLING + bottom: "conv1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } } layers { - layer { - name: "relu1" - type: "relu" - } - bottom: "pool1" - top: "pool1" + name: "relu1" + type: RELU + bottom: "pool1" + top: "pool1" } -# --------------------------- layer 2 ------------------------ layers { - layer { - name: "conv2" - type: "conv" - num_output: 32 - kernelsize: 5 - pad: 2 - stride: 1 - weight_filler { - type: "gaussian" - std: 0.01 - } - bias_filler { - type: "constant" - } - blobs_lr: 1.0 - blobs_lr: 2.0 - } - bottom: "pool1" - top: "conv2" + name: "conv2" + type: CONVOLUTION + bottom: "pool1" + top: "conv2" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { + num_output: 32 + pad: 2 + kernel_size: 5 + stride: 1 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + } + } } layers { - layer { - name: "relu2" - type: "relu" - } - bottom: "conv2" - top: "conv2" + name: "relu2" + type: RELU + bottom: "conv2" + top: "conv2" } layers { - layer { - name: "pool2" - type: "pool" - kernelsize: 3 - stride: 2 - pool: AVE - } - bottom: "conv2" - top: "pool2" + name: "pool2" + type: POOLING + bottom: "conv2" + top: "pool2" + pooling_param { + pool: AVE + kernel_size: 3 + stride: 2 + } } -#-----------------------layer 3------------------------- layers { - layer { - name: "conv3" - type: "conv" - num_output: 64 - kernelsize: 5 - pad: 2 - stride: 1 - weight_filler { - type: "gaussian" - std: 0.01 - } - bias_filler { - type: "constant" - } - blobs_lr: 1.0 - blobs_lr: 2.0 - } - bottom: "pool2" - top: "conv3" + name: "conv3" + type: CONVOLUTION + bottom: "pool2" + top: "conv3" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { + num_output: 64 + pad: 2 + kernel_size: 5 + stride: 1 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + } + } } layers { - layer { - name: "relu3" - type: "relu" - } - bottom: "conv3" - top: "conv3" + name: "relu3" + type: RELU + bottom: "conv3" + top: "conv3" } layers { - layer { - name: "pool3" - type: "pool" - kernelsize: 3 - stride: 2 - pool: AVE - } - bottom: "conv3" - top: "pool3" + name: "pool3" + type: POOLING + bottom: "conv3" + top: "pool3" + pooling_param { + pool: AVE + kernel_size: 3 + stride: 2 + } } -#--------------------------layer 4------------------------ layers { - layer { - name: "ip1" - type: "innerproduct" - num_output: 64 - weight_filler { - type: "gaussian" - std: 0.1 - } - bias_filler { - type: "constant" - } - blobs_lr: 1.0 - blobs_lr: 2.0 - } - bottom: "pool3" - top: "ip1" + name: "ip1" + type: INNER_PRODUCT + bottom: "pool3" + top: "ip1" + blobs_lr: 1 + blobs_lr: 2 + inner_product_param { + num_output: 64 + weight_filler { + type: "gaussian" + std: 0.1 + } + bias_filler { + type: "constant" + } + } } -#--------------------------layer 5------------------------ layers { - layer { - name: "ip2" - type: "innerproduct" - num_output: 10 - weight_filler { - type: "gaussian" - std: 0.1 - } - bias_filler { - type: "constant" - } - blobs_lr: 1.0 - blobs_lr: 2.0 - } - bottom: "ip1" - top: "ip2" + name: "ip2" + type: INNER_PRODUCT + bottom: "ip1" + top: "ip2" + blobs_lr: 1 + blobs_lr: 2 + inner_product_param { + num_output: 10 + weight_filler { + type: "gaussian" + std: 0.1 + } + bias_filler { + type: "constant" + } + } } -#-----------------------output------------------------ layers { - layer { - name: "prob" - type: "softmax" - } - bottom: "ip2" - top: "prob" + name: "prob" + type: SOFTMAX + bottom: "ip2" + top: "prob" } layers { - layer { - name: "accuracy" - type: "accuracy" - } + name: "accuracy" + type: ACCURACY bottom: "prob" bottom: "label" top: "accuracy" diff --git a/examples/cifar10/cifar10_quick_train.prototxt b/examples/cifar10/cifar10_quick_train.prototxt index 2d3a10a6c7f..de5b6c32c5d 100644 --- a/examples/cifar10/cifar10_quick_train.prototxt +++ b/examples/cifar10/cifar10_quick_train.prototxt @@ -1,183 +1,168 @@ -# quick config name: "CIFAR10_quick_train" layers { - layer { - name: "cifar" - type: "data" - source: "cifar10-leveldb/cifar-train-leveldb" - meanfile: "mean.binaryproto" - batchsize: 100 - } - top: "data" - top: "label" + name: "cifar" + type: DATA + top: "data" + top: "label" + data_param { + source: "cifar10-leveldb/cifar-train-leveldb" + mean_file: "mean.binaryproto" + batch_size: 100 + } } -# ------------------------ layer 1 ----------------------------- layers { - layer { - name: "conv1" - type: "conv" - num_output: 32 - kernelsize: 5 - pad: 2 - stride: 1 - weight_filler { - type: "gaussian" - std: 0.0001 - } - bias_filler { - type: "constant" - } - blobs_lr: 1.0 - blobs_lr: 2.0 - } - bottom: "data" - top: "conv1" + name: "conv1" + type: CONVOLUTION + bottom: "data" + top: "conv1" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { + num_output: 32 + pad: 2 + kernel_size: 5 + stride: 1 + weight_filler { + type: "gaussian" + std: 0.0001 + } + bias_filler { + type: "constant" + } + } } layers { - layer { - name: "pool1" - type: "pool" - kernelsize: 3 - stride: 2 - pool: MAX - } - bottom: "conv1" - top: "pool1" + name: "pool1" + type: POOLING + bottom: "conv1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } } layers { - layer { - name: "relu1" - type: "relu" - } - bottom: "pool1" - top: "pool1" + name: "relu1" + type: RELU + bottom: "pool1" + top: "pool1" } -# --------------------------- layer 2 ------------------------ layers { - layer { - name: "conv2" - type: "conv" - num_output: 32 - kernelsize: 5 - pad: 2 - stride: 1 - weight_filler { - type: "gaussian" - std: 0.01 - } - bias_filler { - type: "constant" - } - blobs_lr: 1.0 - blobs_lr: 2.0 - } - bottom: "pool1" - top: "conv2" + name: "conv2" + type: CONVOLUTION + bottom: "pool1" + top: "conv2" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { + num_output: 32 + pad: 2 + kernel_size: 5 + stride: 1 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + } + } } layers { - layer { - name: "relu2" - type: "relu" - } - bottom: "conv2" - top: "conv2" + name: "relu2" + type: RELU + bottom: "conv2" + top: "conv2" } layers { - layer { - name: "pool2" - type: "pool" - kernelsize: 3 - stride: 2 - pool: AVE - } - bottom: "conv2" - top: "pool2" + name: "pool2" + type: POOLING + bottom: "conv2" + top: "pool2" + pooling_param { + pool: AVE + kernel_size: 3 + stride: 2 + } } -#-----------------------layer 3------------------------- layers { - layer { - name: "conv3" - type: "conv" - num_output: 64 - kernelsize: 5 - pad: 2 - stride: 1 - weight_filler { - type: "gaussian" - std: 0.01 - } - bias_filler { - type: "constant" - } - blobs_lr: 1.0 - blobs_lr: 2.0 - } - bottom: "pool2" - top: "conv3" + name: "conv3" + type: CONVOLUTION + bottom: "pool2" + top: "conv3" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { + num_output: 64 + pad: 2 + kernel_size: 5 + stride: 1 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + } + } } layers { - layer { - name: "relu3" - type: "relu" - } - bottom: "conv3" - top: "conv3" + name: "relu3" + type: RELU + bottom: "conv3" + top: "conv3" } layers { - layer { - name: "pool3" - type: "pool" - kernelsize: 3 - stride: 2 - pool: AVE - } - bottom: "conv3" - top: "pool3" + name: "pool3" + type: POOLING + bottom: "conv3" + top: "pool3" + pooling_param { + pool: AVE + kernel_size: 3 + stride: 2 + } } -#--------------------------layer 4------------------------ layers { - layer { - name: "ip1" - type: "innerproduct" - num_output: 64 - weight_filler { - type: "gaussian" - std: 0.1 - } - bias_filler { - type: "constant" - } - blobs_lr: 1.0 - blobs_lr: 2.0 - } - bottom: "pool3" - top: "ip1" + name: "ip1" + type: INNER_PRODUCT + bottom: "pool3" + top: "ip1" + blobs_lr: 1 + blobs_lr: 2 + inner_product_param { + num_output: 64 + weight_filler { + type: "gaussian" + std: 0.1 + } + bias_filler { + type: "constant" + } + } } -#--------------------------layer 5------------------------ layers { - layer { - name: "ip2" - type: "innerproduct" - num_output: 10 - weight_filler { - type: "gaussian" - std: 0.1 - } - bias_filler { - type: "constant" - } - blobs_lr: 1.0 - blobs_lr: 2.0 - } - bottom: "ip1" - top: "ip2" + name: "ip2" + type: INNER_PRODUCT + bottom: "ip1" + top: "ip2" + blobs_lr: 1 + blobs_lr: 2 + inner_product_param { + num_output: 10 + weight_filler { + type: "gaussian" + std: 0.1 + } + bias_filler { + type: "constant" + } + } } -#-----------------------output------------------------ layers { - layer { - name: "loss" - type: "softmax_loss" - } - bottom: "ip2" - bottom: "label" + name: "loss" + type: SOFTMAX_LOSS + bottom: "ip2" + bottom: "label" } diff --git a/examples/cifar10/convert_cifar_data.cpp b/examples/cifar10/convert_cifar_data.cpp index 648dd37b792..8e223b212ad 100644 --- a/examples/cifar10/convert_cifar_data.cpp +++ b/examples/cifar10/convert_cifar_data.cpp @@ -1,4 +1,4 @@ -// Copyright Yangqing Jia 2013 +// Copyright 2014 BVLC and contributors. // // This script converts the CIFAR dataset to the leveldb format used // by caffe to perform classification. diff --git a/examples/cifar10/train_full.sh b/examples/cifar10/train_full.sh index 1767da6798d..4db7b9a98f1 100755 --- a/examples/cifar10/train_full.sh +++ b/examples/cifar10/train_full.sh @@ -2,10 +2,15 @@ TOOLS=../../build/tools -GLOG_logtostderr=1 $TOOLS/train_net.bin cifar10_full_solver.prototxt +GLOG_logtostderr=1 $TOOLS/train_net.bin \ + cifar10_full_solver.prototxt #reduce learning rate by factor of 10 -GLOG_logtostderr=1 $TOOLS/train_net.bin cifar10_full_solver_lr1.prototxt cifar10_full_iter_60000.solverstate +GLOG_logtostderr=1 $TOOLS/train_net.bin \ + cifar10_full_solver_lr1.prototxt \ + cifar10_full_iter_60000.solverstate #reduce learning rate by factor of 10 -GLOG_logtostderr=1 $TOOLS/train_net.bin cifar10_full_solver_lr2.prototxt cifar10_full_iter_65000.solverstate +GLOG_logtostderr=1 $TOOLS/train_net.bin \ + cifar10_full_solver_lr2.prototxt \ + cifar10_full_iter_65000.solverstate diff --git a/examples/selective_search_demo.ipynb b/examples/detection.ipynb similarity index 86% rename from examples/selective_search_demo.ipynb rename to examples/detection.ipynb index 6891a9e1504..feb3e36fe8e 100644 --- a/examples/selective_search_demo.ipynb +++ b/examples/detection.ipynb @@ -27,7 +27,7 @@ "!mkdir _temp\n", "!curl http://farm1.static.flickr.com/220/512450093_7717fb8ce8.jpg > _temp/cat.jpg\n", "!echo `pwd`/_temp/cat.jpg > _temp/cat.txt\n", - "!python ../python/caffe/detection/detector.py --crop_mode=selective_search --pretrained_model=../examples/imagenet/caffe_reference_imagenet_model --model_def=../examples/imagenet/imagenet_deploy.prototxt _temp/cat.txt _temp/cat.h5" + "!../python/detect.py --crop_mode=selective_search --pretrained_model=imagenet/caffe_reference_imagenet_model --model_def=imagenet/imagenet_deploy.prototxt _temp/cat.txt _temp/cat.h5" ], "language": "python", "metadata": {}, @@ -47,216 +47,178 @@ "stream": "stdout", "text": [ "\r", - "100 212k 100 212k 0 0 263k 0 -" + "100 212k 100 212k 0 0 852k 0 --:--:-- --:--:-- --:--:-- 858k\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - "-:--:-- --:--:-- --:--:-- 519k\r\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Loading Caffe model.\r\n", "WARNING: Logging before InitGoogleLogging() is written to STDERR\r\n", - "I0318 11:15:21.671466 2104947072 net.cpp:74] Creating Layer conv1\r\n", - "I0318 11:15:21.671494 2104947072 net.cpp:84] conv1 <- data\r\n", - "I0318 11:15:21.671500 2104947072 net.cpp:110] conv1 -> conv1\r\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "I0318 11:15:21.993130 2104947072 net.cpp:125] Top shape: 10 96 55 55 (2904000)\r\n", - "I0318 11:15:21.993155 2104947072 net.cpp:151] conv1 needs backward computation.\r\n", - "I0318 11:15:21.993165 2104947072 net.cpp:74] Creating Layer relu1\r\n", - "I0318 11:15:21.993170 2104947072 net.cpp:84] relu1 <- conv1\r\n", - "I0318 11:15:21.993175 2104947072 net.cpp:98] relu1 -> conv1 (in-place)\r\n", - "I0318 11:15:21.993182 2104947072 net.cpp:125] Top shape: 10 96 55 55 (2904000)\r\n", - "I0318 11:15:21.993187 2104947072 net.cpp:151] relu1 needs backward computation.\r\n", - "I0318 11:15:21.993192 2104947072 net.cpp:74] Creating Layer pool1\r\n", - "I0318 11:15:21.993197 2104947072 net.cpp:84] pool1 <- conv1\r\n", - "I0318 11:15:21.993201 2104947072 net.cpp:110] pool1 -> pool1\r\n", - "I0318 11:15:21.993208 2104947072 net.cpp:125] Top shape: 10 96 27 27 (699840)\r\n", - "I0318 11:15:21.993212 2104947072 net.cpp:151] pool1 needs backward computation.\r\n", - "I0318 11:15:21.993217 2104947072 net.cpp:74] Creating Layer norm1\r\n", - "I0318 11:15:21.993221 2104947072 net.cpp:84] norm1 <- pool1\r\n", - "I0318 11:15:21.993227 2104947072 net.cpp:110] norm1 -> norm1\r\n", - "I0318 11:15:21.993233 2104947072 net.cpp:125] Top shape: 10 96 27 27 (699840)\r\n", - "I0318 11:15:21.993238 2104947072 net.cpp:151] norm1 needs backward computation.\r\n", - "I0318 11:15:21.993244 2104947072 net.cpp:74] Creating Layer conv2\r\n", - "I0318 11:15:21.993248 2104947072 net.cpp:84] conv2 <- norm1\r\n", - "I0318 11:15:21.993252 2104947072 net.cpp:110] conv2 -> conv2\r\n", - "I0318 11:15:21.995401 2104947072 net.cpp:125] Top shape: 10 256 27 27 (1866240)\r\n", - "I0318 11:15:21.995414 2104947072 net.cpp:151] conv2 needs backward computation.\r\n", - "I0318 11:15:21.995419 2104947072 net.cpp:74] Creating Layer relu2\r\n", - "I0318 11:15:21.995424 2104947072 net.cpp:84] relu2 <- conv2\r\n", - "I0318 11:15:21.995429 2104947072 net.cpp:98] relu2 -> conv2 (in-place)\r\n", - "I0318 11:15:21.995432 2104947072 net.cpp:125] Top shape: 10 256 27 27 (1866240)\r\n", - "I0318 11:15:21.995437 2104947072 net.cpp:151] relu2 needs backward computation.\r\n", - "I0318 11:15:21.995441 2104947072 net.cpp:74] Creating Layer pool2\r\n", - "I0318 11:15:21.995445 2104947072 net.cpp:84] pool2 <- conv2\r\n", - "I0318 11:15:21.995450 2104947072 net.cpp:110] pool2 -> pool2\r\n", - "I0318 11:15:21.995455 2104947072 net.cpp:125] Top shape: 10 256 13 13 (432640)\r\n", - "I0318 11:15:21.995460 2104947072 net.cpp:151] pool2 needs backward computation.\r\n", - "I0318 11:15:21.995463 2104947072 net.cpp:74] Creating Layer norm2\r\n", - "I0318 11:15:21.995467 2104947072 net.cpp:84] norm2 <- pool2\r\n", - "I0318 11:15:21.995471 2104947072 net.cpp:110] norm2 -> norm2\r\n", - "I0318 11:15:21.995477 2104947072 net.cpp:125] Top shape: 10 256 13 13 (432640)\r\n", - "I0318 11:15:21.995481 2104947072 net.cpp:151] norm2 needs backward computation.\r\n", - "I0318 11:15:21.995487 2104947072 net.cpp:74] Creating Layer conv3\r\n", - "I0318 11:15:21.995491 2104947072 net.cpp:84] conv3 <- norm2\r\n", - "I0318 11:15:21.995496 2104947072 net.cpp:110] conv3 -> conv3\r\n", - "I0318 11:15:22.001526 2104947072 net.cpp:125] Top shape: 10 384 13 13 (648960)\r\n", - "I0318 11:15:22.001549 2104947072 net.cpp:151] conv3 needs backward computation.\r\n", - "I0318 11:15:22.001555 2104947072 net.cpp:74] Creating Layer relu3\r\n", - "I0318 11:15:22.001560 2104947072 net.cpp:84] relu3 <- conv3\r\n", - "I0318 11:15:22.001565 2104947072 net.cpp:98] relu3 -> conv3 (in-place)\r\n", - "I0318 11:15:22.001570 2104947072 net.cpp:125] Top shape: 10 384 13 13 (648960)\r\n", - "I0318 11:15:22.001574 2104947072 net.cpp:151] relu3 needs backward computation.\r\n", - "I0318 11:15:22.001580 2104947072 net.cpp:74] Creating Layer conv4\r\n", - "I0318 11:15:22.001585 2104947072 net.cpp:84] conv4 <- conv3\r\n", - "I0318 11:15:22.001588 2104947072 net.cpp:110] conv4 -> conv4\r\n", - "I0318 11:15:22.005995 2104947072 net.cpp:125] Top shape: 10 384 13 13 (648960)\r\n", - "I0318 11:15:22.006008 2104947072 net.cpp:151] conv4 needs backward computation.\r\n", - "I0318 11:15:22.006014 2104947072 net.cpp:74] Creating Layer relu4\r\n", - "I0318 11:15:22.006018 2104947072 net.cpp:84] relu4 <- conv4\r\n", - "I0318 11:15:22.006022 2104947072 net.cpp:98] relu4 -> conv4 (in-place)\r\n", - "I0318 11:15:22.006027 2104947072 net.cpp:125] Top shape: 10 384 13 13 (648960)\r\n", - "I0318 11:15:22.006031 2104947072 net.cpp:151] relu4 needs backward computation.\r\n", - "I0318 11:15:22.006037 2104947072 net.cpp:74] Creating Layer conv5\r\n", - "I0318 11:15:22.006042 2104947072 net.cpp:84] conv5 <- conv4\r\n", - "I0318 11:15:22.006045 2104947072 net.cpp:110] conv5 -> conv5\r\n", - "I0318 11:15:22.009027 2104947072 net.cpp:125] Top shape: 10 256 13 13 (432640)\r\n", - "I0318 11:15:22.009048 2104947072 net.cpp:151] conv5 needs backward computation.\r\n", - "I0318 11:15:22.009057 2104947072 net.cpp:74] Creating Layer relu5\r\n", - "I0318 11:15:22.009062 2104947072 net.cpp:84] relu5 <- conv5\r\n", - "I0318 11:15:22.009065 2104947072 net.cpp:98] relu5 -> conv5 (in-place)\r\n", - "I0318 11:15:22.009071 2104947072 net.cpp:125] Top shape: 10 256 13 13 (432640)\r\n", - "I0318 11:15:22.009075 2104947072 net.cpp:151] relu5 needs backward computation.\r\n", - "I0318 11:15:22.009080 2104947072 net.cpp:74] Creating Layer pool5\r\n", - "I0318 11:15:22.009084 2104947072 net.cpp:84] pool5 <- conv5\r\n", - "I0318 11:15:22.009088 2104947072 net.cpp:110] pool5 -> pool5\r\n", - "I0318 11:15:22.009093 2104947072 net.cpp:125] Top shape: 10 256 6 6 (92160)\r\n", - "I0318 11:15:22.009099 2104947072 net.cpp:151] pool5 needs backward computation.\r\n", - "I0318 11:15:22.009104 2104947072 net.cpp:74] Creating Layer fc6\r\n", - "I0318 11:15:22.009107 2104947072 net.cpp:84] fc6 <- pool5\r\n", - "I0318 11:15:22.009111 2104947072 net.cpp:110] fc6 -> fc6\r\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "I0318 11:15:22.271282 2104947072 net.cpp:125] Top shape: 10 4096 1 1 (40960)\r\n", - "I0318 11:15:22.271308 2104947072 net.cpp:151] fc6 needs backward computation.\r\n", - "I0318 11:15:22.271320 2104947072 net.cpp:74] Creating Layer relu6\r\n", - "I0318 11:15:22.271327 2104947072 net.cpp:84] relu6 <- fc6\r\n", - "I0318 11:15:22.271332 2104947072 net.cpp:98] relu6 -> fc6 (in-place)\r\n", - "I0318 11:15:22.271337 2104947072 net.cpp:125] Top shape: 10 4096 1 1 (40960)\r\n", - "I0318 11:15:22.271340 2104947072 net.cpp:151] relu6 needs backward computation.\r\n", - "I0318 11:15:22.271345 2104947072 net.cpp:74] Creating Layer drop6\r\n", - "I0318 11:15:22.271349 2104947072 net.cpp:84] drop6 <- fc6\r\n", - "I0318 11:15:22.271353 2104947072 net.cpp:98] drop6 -> fc6 (in-place)\r\n", - "I0318 11:15:22.271369 2104947072 net.cpp:125] Top shape: 10 4096 1 1 (40960)\r\n", - "I0318 11:15:22.271374 2104947072 net.cpp:151] drop6 needs backward computation.\r\n", - "I0318 11:15:22.271380 2104947072 net.cpp:74] Creating Layer fc7\r\n", - "I0318 11:15:22.271384 2104947072 net.cpp:84] fc7 <- fc6\r\n", - "I0318 11:15:22.271389 2104947072 net.cpp:110] fc7 -> fc7\r\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "I0318 11:15:22.389216 2104947072 net.cpp:125] Top shape: 10 4096 1 1 (40960)\r\n", - "I0318 11:15:22.389250 2104947072 net.cpp:151] fc7 needs backward computation.\r\n", - "I0318 11:15:22.389258 2104947072 net.cpp:74] Creating Layer relu7\r\n", - "I0318 11:15:22.389264 2104947072 net.cpp:84] relu7 <- fc7\r\n", - "I0318 11:15:22.389271 2104947072 net.cpp:98] relu7 -> fc7 (in-place)\r\n", - "I0318 11:15:22.389276 2104947072 net.cpp:125] Top shape: 10 4096 1 1 (40960)\r\n", - "I0318 11:15:22.389279 2104947072 net.cpp:151] relu7 needs backward computation.\r\n", - "I0318 11:15:22.389284 2104947072 net.cpp:74] Creating Layer drop7\r\n", - "I0318 11:15:22.389289 2104947072 net.cpp:84] drop7 <- fc7\r\n", - "I0318 11:15:22.389293 2104947072 net.cpp:98] drop7 -> fc7 (in-place)\r\n", - "I0318 11:15:22.389298 2104947072 net.cpp:125] Top shape: 10 4096 1 1 (40960)\r\n", - "I0318 11:15:22.389302 2104947072 net.cpp:151] drop7 needs backward computation.\r\n", - "I0318 11:15:22.389308 2104947072 net.cpp:74] Creating Layer fc8\r\n", - "I0318 11:15:22.389312 2104947072 net.cpp:84] fc8 <- fc7\r\n", - "I0318 11:15:22.389317 2104947072 net.cpp:110] fc8 -> fc8\r\n", - "I0318 11:15:22.417853 2104947072 net.cpp:125] Top shape: 10 1000 1 1 (10000)\r\n", - "I0318 11:15:22.417879 2104947072 net.cpp:151] fc8 needs backward computation.\r\n", - "I0318 11:15:22.417887 2104947072 net.cpp:74] Creating Layer prob\r\n", - "I0318 11:15:22.417892 2104947072 net.cpp:84] prob <- fc8\r\n", - "I0318 11:15:22.417898 2104947072 net.cpp:110] prob -> prob\r\n", - "I0318 11:15:22.417917 2104947072 net.cpp:125] Top shape: 10 1000 1 1 (10000)\r\n", - "I0318 11:15:22.417920 2104947072 net.cpp:151] prob needs backward computation.\r\n", - "I0318 11:15:22.417924 2104947072 net.cpp:162] This network produces output prob\r\n", - "I0318 11:15:22.417928 2104947072 net.cpp:173] Collecting Learning Rate and Weight Decay.\r\n", - "I0318 11:15:22.417944 2104947072 net.cpp:166] Network initialization done.\r\n", - "I0318 11:15:22.417948 2104947072 net.cpp:167] Memory required for Data 42022840\r\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Caffe model loaded in 1.621 s\r\n" + "I0520 12:14:46.505362 2522 net.cpp:75] Creating Layer conv1\r\n", + "I0520 12:14:46.505406 2522 net.cpp:85] conv1 <- data\r\n", + "I0520 12:14:46.505462 2522 net.cpp:111] conv1 -> conv1\r\n", + "I0520 12:14:46.505530 2522 net.cpp:126] Top shape: 10 96 55 55 (2904000)\r\n", + "I0520 12:14:46.505542 2522 net.cpp:152] conv1 needs backward computation.\r\n", + "I0520 12:14:46.505550 2522 net.cpp:75] Creating Layer relu1\r\n", + "I0520 12:14:46.505556 2522 net.cpp:85] relu1 <- conv1\r\n", + "I0520 12:14:46.505563 2522 net.cpp:99] relu1 -> conv1 (in-place)\r\n", + "I0520 12:14:46.505570 2522 net.cpp:126] Top shape: 10 96 55 55 (2904000)\r\n", + "I0520 12:14:46.505578 2522 net.cpp:152] relu1 needs backward computation.\r\n", + "I0520 12:14:46.505584 2522 net.cpp:75] Creating Layer pool1\r\n", + "I0520 12:14:46.505590 2522 net.cpp:85] pool1 <- conv1\r\n", + "I0520 12:14:46.505596 2522 net.cpp:111] pool1 -> pool1\r\n", + "I0520 12:14:46.505606 2522 net.cpp:126] Top shape: 10 96 27 27 (699840)\r\n", + "I0520 12:14:46.505612 2522 net.cpp:152] pool1 needs backward computation.\r\n", + "I0520 12:14:46.505620 2522 net.cpp:75] Creating Layer norm1\r\n", + "I0520 12:14:46.505626 2522 net.cpp:85] norm1 <- pool1\r\n", + "I0520 12:14:46.505632 2522 net.cpp:111] norm1 -> norm1\r\n", + "I0520 12:14:46.505640 2522 net.cpp:126] Top shape: 10 96 27 27 (699840)\r\n", + "I0520 12:14:46.505646 2522 net.cpp:152] norm1 needs backward computation.\r\n", + "I0520 12:14:46.505656 2522 net.cpp:75] Creating Layer conv2\r\n", + "I0520 12:14:46.505661 2522 net.cpp:85] conv2 <- norm1\r\n", + "I0520 12:14:46.505668 2522 net.cpp:111] conv2 -> conv2\r\n", + "I0520 12:14:46.506363 2522 net.cpp:126] Top shape: 10 256 27 27 (1866240)\r\n", + "I0520 12:14:46.506383 2522 net.cpp:152] conv2 needs backward computation.\r\n", + "I0520 12:14:46.506392 2522 net.cpp:75] Creating Layer relu2\r\n", + "I0520 12:14:46.506398 2522 net.cpp:85] relu2 <- conv2\r\n", + "I0520 12:14:46.506409 2522 net.cpp:99] relu2 -> conv2 (in-place)\r\n", + "I0520 12:14:46.506417 2522 net.cpp:126] Top shape: 10 256 27 27 (1866240)\r\n", + "I0520 12:14:46.506422 2522 net.cpp:152] relu2 needs backward computation.\r\n", + "I0520 12:14:46.506429 2522 net.cpp:75] Creating Layer pool2\r\n", + "I0520 12:14:46.506435 2522 net.cpp:85] pool2 <- conv2\r\n", + "I0520 12:14:46.506441 2522 net.cpp:111] pool2 -> pool2\r\n", + "I0520 12:14:46.506448 2522 net.cpp:126] Top shape: 10 256 13 13 (432640)\r\n", + "I0520 12:14:46.506454 2522 net.cpp:152] pool2 needs backward computation.\r\n", + "I0520 12:14:46.506463 2522 net.cpp:75] Creating Layer norm2\r\n", + "I0520 12:14:46.506469 2522 net.cpp:85] norm2 <- pool2\r\n", + "I0520 12:14:46.506475 2522 net.cpp:111] norm2 -> norm2\r\n", + "I0520 12:14:46.506482 2522 net.cpp:126] Top shape: 10 256 13 13 (432640)\r\n", + "I0520 12:14:46.506489 2522 net.cpp:152] norm2 needs backward computation.\r\n", + "I0520 12:14:46.506496 2522 net.cpp:75] Creating Layer conv3\r\n", + "I0520 12:14:46.506502 2522 net.cpp:85] conv3 <- norm2\r\n", + "I0520 12:14:46.506508 2522 net.cpp:111] conv3 -> conv3\r\n", + "I0520 12:14:46.508342 2522 net.cpp:126] Top shape: 10 384 13 13 (648960)\r\n", + "I0520 12:14:46.508359 2522 net.cpp:152] conv3 needs backward computation.\r\n", + "I0520 12:14:46.508369 2522 net.cpp:75] Creating Layer relu3\r\n", + "I0520 12:14:46.508375 2522 net.cpp:85] relu3 <- conv3\r\n", + "I0520 12:14:46.508383 2522 net.cpp:99] relu3 -> conv3 (in-place)\r\n", + "I0520 12:14:46.508389 2522 net.cpp:126] Top shape: 10 384 13 13 (648960)\r\n", + "I0520 12:14:46.508395 2522 net.cpp:152] relu3 needs backward computation.\r\n", + "I0520 12:14:46.508402 2522 net.cpp:75] Creating Layer conv4\r\n", + "I0520 12:14:46.508409 2522 net.cpp:85] conv4 <- conv3\r\n", + "I0520 12:14:46.508415 2522 net.cpp:111] conv4 -> conv4\r\n", + "I0520 12:14:46.509848 2522 net.cpp:126] Top shape: 10 384 13 13 (648960)\r\n", + "I0520 12:14:46.509870 2522 net.cpp:152] conv4 needs backward computation.\r\n", + "I0520 12:14:46.509877 2522 net.cpp:75] Creating Layer relu4\r\n", + "I0520 12:14:46.509884 2522 net.cpp:85] relu4 <- conv4\r\n", + "I0520 12:14:46.509891 2522 net.cpp:99] relu4 -> conv4 (in-place)\r\n", + "I0520 12:14:46.509897 2522 net.cpp:126] Top shape: 10 384 13 13 (648960)\r\n", + "I0520 12:14:46.509903 2522 net.cpp:152] relu4 needs backward computation.\r\n", + "I0520 12:14:46.509912 2522 net.cpp:75] Creating Layer conv5\r\n", + "I0520 12:14:46.509917 2522 net.cpp:85] conv5 <- conv4\r\n", + "I0520 12:14:46.509923 2522 net.cpp:111] conv5 -> conv5\r\n", + "I0520 12:14:46.510815 2522 net.cpp:126] Top shape: 10 256 13 13 (432640)\r\n", + "I0520 12:14:46.510850 2522 net.cpp:152] conv5 needs backward computation.\r\n", + "I0520 12:14:46.510860 2522 net.cpp:75] Creating Layer relu5\r\n", + "I0520 12:14:46.510867 2522 net.cpp:85] relu5 <- conv5\r\n", + "I0520 12:14:46.510875 2522 net.cpp:99] relu5 -> conv5 (in-place)\r\n", + "I0520 12:14:46.510884 2522 net.cpp:126] Top shape: 10 256 13 13 (432640)\r\n", + "I0520 12:14:46.510890 2522 net.cpp:152] relu5 needs backward computation.\r\n", + "I0520 12:14:46.510897 2522 net.cpp:75] Creating Layer pool5\r\n", + "I0520 12:14:46.510903 2522 net.cpp:85] pool5 <- conv5\r\n", + "I0520 12:14:46.510910 2522 net.cpp:111] pool5 -> pool5\r\n", + "I0520 12:14:46.510920 2522 net.cpp:126] Top shape: 10 256 6 6 (92160)\r\n", + "I0520 12:14:46.510926 2522 net.cpp:152] pool5 needs backward computation.\r\n", + "I0520 12:14:46.510936 2522 net.cpp:75] Creating Layer fc6\r\n", + "I0520 12:14:46.510942 2522 net.cpp:85] fc6 <- pool5\r\n", + "I0520 12:14:46.510949 2522 net.cpp:111] fc6 -> fc6\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - "Loading input and assembling batches...\r\n", - "selective_search({'/Users/karayev/work/caffe-bvlc/examples/_temp/cat.jpg'}, '/var/folders/4q/vm1lt3t91p9gl06nz6s1dzzw0000gn/T/tmpOcszAc.mat')\r\n" + "I0520 12:14:46.566017 2522 net.cpp:126] Top shape: 10 4096 1 1 (40960)\r\n", + "I0520 12:14:46.566061 2522 net.cpp:152] fc6 needs backward computation.\r\n", + "I0520 12:14:46.566076 2522 net.cpp:75] Creating Layer relu6\r\n", + "I0520 12:14:46.566084 2522 net.cpp:85] relu6 <- fc6\r\n", + "I0520 12:14:46.566092 2522 net.cpp:99] relu6 -> fc6 (in-place)\r\n", + "I0520 12:14:46.566100 2522 net.cpp:126] Top shape: 10 4096 1 1 (40960)\r\n", + "I0520 12:14:46.566140 2522 net.cpp:152] relu6 needs backward computation.\r\n", + "I0520 12:14:46.566149 2522 net.cpp:75] Creating Layer drop6\r\n", + "I0520 12:14:46.566155 2522 net.cpp:85] drop6 <- fc6\r\n", + "I0520 12:14:46.566161 2522 net.cpp:99] drop6 -> fc6 (in-place)\r\n", + "I0520 12:14:46.566174 2522 net.cpp:126] Top shape: 10 4096 1 1 (40960)\r\n", + "I0520 12:14:46.566179 2522 net.cpp:152] drop6 needs backward computation.\r\n", + "I0520 12:14:46.566187 2522 net.cpp:75] Creating Layer fc7\r\n", + "I0520 12:14:46.566193 2522 net.cpp:85] fc7 <- fc6\r\n", + "I0520 12:14:46.566200 2522 net.cpp:111] fc7 -> fc7\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - "23 batches assembled in 5.225 s\r\n", - "Processing 1 files in 23 batches\r\n", - "...on batch 0/23, elapsed time: 0.000 s\r\n" + "I0520 12:14:46.600733 2522 net.cpp:126] Top shape: 10 4096 1 1 (40960)\r\n", + "I0520 12:14:46.600765 2522 net.cpp:152] fc7 needs backward computation.\r\n", + "I0520 12:14:46.600777 2522 net.cpp:75] Creating Layer relu7\r\n", + "I0520 12:14:46.600785 2522 net.cpp:85] relu7 <- fc7\r\n", + "I0520 12:14:46.600793 2522 net.cpp:99] relu7 -> fc7 (in-place)\r\n", + "I0520 12:14:46.600802 2522 net.cpp:126] Top shape: 10 4096 1 1 (40960)\r\n", + "I0520 12:14:46.600808 2522 net.cpp:152] relu7 needs backward computation.\r\n", + "I0520 12:14:46.600816 2522 net.cpp:75] Creating Layer drop7\r\n", + "I0520 12:14:46.600823 2522 net.cpp:85] drop7 <- fc7\r\n", + "I0520 12:14:46.600829 2522 net.cpp:99] drop7 -> fc7 (in-place)\r\n", + "I0520 12:14:46.600836 2522 net.cpp:126] Top shape: 10 4096 1 1 (40960)\r\n", + "I0520 12:14:46.600843 2522 net.cpp:152] drop7 needs backward computation.\r\n", + "I0520 12:14:46.600850 2522 net.cpp:75] Creating Layer fc8\r\n", + "I0520 12:14:46.600857 2522 net.cpp:85] fc8 <- fc7\r\n", + "I0520 12:14:46.600864 2522 net.cpp:111] fc8 -> fc8\r\n", + "I0520 12:14:46.615557 2522 net.cpp:126] Top shape: 10 1000 1 1 (10000)\r\n", + "I0520 12:14:46.615602 2522 net.cpp:152] fc8 needs backward computation.\r\n", + "I0520 12:14:46.615614 2522 net.cpp:75] Creating Layer prob\r\n", + "I0520 12:14:46.615623 2522 net.cpp:85] prob <- fc8\r\n", + "I0520 12:14:46.615631 2522 net.cpp:111] prob -> prob\r\n", + "I0520 12:14:46.615649 2522 net.cpp:126] Top shape: 10 1000 1 1 (10000)\r\n", + "I0520 12:14:46.615656 2522 net.cpp:152] prob needs backward computation.\r\n", + "I0520 12:14:46.615664 2522 net.cpp:163] This network produces output prob\r\n", + "I0520 12:14:46.615682 2522 net.cpp:181] Collecting Learning Rate and Weight Decay.\r\n", + "I0520 12:14:46.615696 2522 net.cpp:174] Network initialization done.\r\n", + "I0520 12:14:46.615702 2522 net.cpp:175] Memory required for Data 42022840\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - "...on batch 10/23, elapsed time: 3.819 s\r\n" + "Loading input...\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - "...on batch 20/23, elapsed time: 7.571 s\r\n" + "selective_search({'/home/shelhamer/caffe/examples/_temp/cat.jpg'}, '/tmp/tmplkH92s.mat')\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - "Processing complete after 8.818 s.\r\n" + "Processed 223 windows in 16.525 s.\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/io/pytables.py:2446: PerformanceWarning: \r\n", + "/home/shelhamer/anaconda/lib/python2.7/site-packages/pandas/io/pytables.py:2446: PerformanceWarning: \r\n", "your performance may suffer as PyTables will pickle object types that it cannot\r\n", - "map directly to c-types [inferred_type->mixed,key->block1_values] [items->['feat']]\r\n", + "map directly to c-types [inferred_type->mixed,key->block1_values] [items->['prediction']]\r\n", "\r\n", " warnings.warn(ws, PerformanceWarning)\r\n", - "Done. Saving to _temp/cat.h5 took 0.160 s.\r\n" + "Saved to _temp/cat.h5 in 0.353 s.\r\n" ] } ], @@ -288,12 +250,12 @@ "stream": "stdout", "text": [ "(223, 5)\n", - "feat [6.90396e-06, 1.27811e-06, 1.82159e-06, 1.1020...\n", - "ymin 0\n", - "xmin 0\n", - "ymax 500\n", - "xmax 496\n", - "Name: /Users/karayev/work/caffe-bvlc/examples/_temp/cat.jpg, dtype: object\n" + "prediction [6.67012e-06, 1.26349e-06, 1.86075e-06, 1.0960...\n", + "ymin 0\n", + "xmin 0\n", + "ymax 500\n", + "xmax 496\n", + "Name: /home/shelhamer/caffe/examples/_temp/cat.jpg, dtype: object\n" ] } ], @@ -303,14 +265,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "In general, `detector.py` is most efficient when running on a lot of images: it first extracts window proposals for all of them, batches the windows for efficient GPU processing, and then outputs the results.\n", + "In general, `detect.py` is most efficient when running on a lot of images: it first extracts window proposals for all of them, batches the windows for efficient GPU processing, and then outputs the results.\n", "Simply list an image per line in the `images_file`, and it will process all of them.\n", "\n", - "Although this guide gives an example of ImageNet detection, `detector.py` is clever enough to adapt to different Caffe models\u2019 input dimensions, batch size, and output categories.\n", - "Refer to `python detector.py --help` and the `images_dim` and `images_mean_file` parameters to describe your data set.\n", - "No need for hardcoding.\n", + "Although this guide gives an example of ImageNet detection, `detect.py` is clever enough to adapt to different Caffe models\u2019 input dimensions, batch size, and output categories. Refer to `python detect.py --help` for the parameters to describe your data set. No need for hardcoding.\n", "\n", - "Anyway, let's now load ImageNet class names and make a DataFrame of the features. Note you'll need the auxiliary ilsvrc2012 data fetched by `data/ilsvrc12/get_ilsvrc12_aux.sh`." + "Anyway, let's now load ImageNet class names and make a DataFrame of the predictions. Note you'll need the auxiliary ilsvrc2012 data fetched by `data/ilsvrc12/get_ilsvrc12_aux.sh`." ] }, { @@ -326,8 +286,8 @@ " for l in f.readlines()\n", " ])\n", "labels_df.sort('synset_id')\n", - "feats_df = pd.DataFrame(np.vstack(df.feat.values), columns=labels_df['name'])\n", - "print(feats_df.iloc[0])" + "predictions_df = pd.DataFrame(np.vstack(df.prediction.values), columns=labels_df['name'])\n", + "print(predictions_df.iloc[0])" ], "language": "python", "metadata": {}, @@ -344,8 +304,8 @@ "hammerhead 0.000007\n", "electric ray 0.000004\n", "stingray 0.000007\n", - "cock 0.000060\n", - "hen 0.003055\n", + "cock 0.000057\n", + "hen 0.002985\n", "ostrich 0.000010\n", "brambling 0.000004\n", "goldfinch 0.000001\n", @@ -355,7 +315,7 @@ "...\n", "daisy 0.000002\n", "yellow lady's slipper 0.000002\n", - "corn 0.000020\n", + "corn 0.000019\n", "acorn 0.000011\n", "hip 0.000003\n", "buckeye 0.000010\n", @@ -365,7 +325,7 @@ "stinkhorn 0.000002\n", "earthstar 0.000025\n", "hen-of-the-woods 0.000035\n", - "bolete 0.000037\n", + "bolete 0.000036\n", "ear 0.000008\n", "toilet tissue 0.000019\n", "Name: 0, Length: 1000, dtype: float32\n" @@ -386,7 +346,7 @@ "collapsed": false, "input": [ "gray()\n", - "matshow(feats_df.values)\n", + "matshow(predictions_df.values)\n", "xlabel('Classes')\n", "ylabel('Windows')" ], @@ -398,22 +358,22 @@ "output_type": "pyout", "prompt_number": 4, "text": [ - "" + "" ] }, { "metadata": {}, "output_type": "display_data", "text": [ - "" + "" ] }, { "metadata": {}, "output_type": "display_data", - "png": "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\n", + "png": "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\n", "text": [ - "" + "" ] } ], @@ -430,7 +390,7 @@ "cell_type": "code", "collapsed": false, "input": [ - "max_s = feats_df.max(0)\n", + "max_s = predictions_df.max(0)\n", "max_s.sort(ascending=False)\n", "print(max_s[:10])" ], @@ -442,16 +402,16 @@ "stream": "stdout", "text": [ "name\n", - "proboscis monkey 0.923392\n", - "tiger cat 0.918685\n", - "milk can 0.783663\n", - "American black bear 0.637560\n", - "broccoli 0.612832\n", - "tiger 0.515798\n", - "platypus 0.514660\n", - "dhole 0.509583\n", - "lion 0.496187\n", - "dingo 0.482885\n", + "proboscis monkey 0.920136\n", + "tiger cat 0.916973\n", + "milk can 0.791307\n", + "American black bear 0.625850\n", + "broccoli 0.609467\n", + "dhole 0.513998\n", + "platypus 0.507829\n", + "tiger 0.497029\n", + "lion 0.481180\n", + "dingo 0.474689\n", "dtype: float32\n" ] } @@ -471,19 +431,19 @@ "collapsed": false, "input": [ "# Find, print, and display max detection.\n", - "window_order = pd.Series(feats_df.values.max(1)).order(ascending=False)\n", + "window_order = pd.Series(predictions_df.values.max(1)).order(ascending=False)\n", "\n", "i = window_order.index[3]\n", "j = window_order.index[13]\n", "\n", "# Show top predictions for top detection.\n", - "f = pd.Series(df['feat'].iloc[i], index=labels_df['name'])\n", + "f = pd.Series(df['prediction'].iloc[i], index=labels_df['name'])\n", "print('Top detection:')\n", "print(f.order(ascending=False)[:5])\n", "print('')\n", "\n", "# Show top predictions for 10th top detection.\n", - "f = pd.Series(df['feat'].iloc[j], index=labels_df['name'])\n", + "f = pd.Series(df['prediction'].iloc[j], index=labels_df['name'])\n", "print('10th detection:')\n", "print(f.order(ascending=False)[:5])\n", "\n", @@ -509,20 +469,20 @@ "text": [ "Top detection:\n", "name\n", - "tiger cat 0.882021\n", - "tiger 0.075015\n", - "tabby 0.024404\n", - "lynx 0.012947\n", - "Egyptian cat 0.004409\n", + "tiger cat 0.882972\n", + "tiger 0.073158\n", + "tabby 0.025290\n", + "lynx 0.012881\n", + "Egyptian cat 0.004481\n", "dtype: float32\n", "\n", "10th detection:\n", "name\n", - "tiger cat 0.681169\n", - "Pembroke 0.063924\n", - "dingo 0.050501\n", - "golden retriever 0.027614\n", - "tabby 0.021413\n", + "tiger cat 0.677493\n", + "Pembroke 0.064214\n", + "dingo 0.050635\n", + "golden retriever 0.028331\n", + "tabby 0.021945\n", "dtype: float32\n" ] }, @@ -531,7 +491,7 @@ "output_type": "pyout", "prompt_number": 6, "text": [ - "" + "" ] }, { @@ -539,7 +499,7 @@ "output_type": "display_data", "png": "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\nAAAAAElFTkSuQmCC\n", "text": [ - "" + "" ] } ], @@ -625,7 +585,7 @@ "cell_type": "code", "collapsed": false, "input": [ - "scores = feats_df['tiger cat']\n", + "scores = predictions_df['tiger cat']\n", "windows = df[['xmin', 'ymin', 'xmax', 'ymax']].values\n", "dets = np.hstack((windows, scores[:, np.newaxis]))\n", "nms_dets = nms_detections(dets)" @@ -663,7 +623,7 @@ "output_type": "display_data", "png": "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\nVcMl27kAAAAASUVORK5CYII=\n", "text": [ - "" + "" ] } ], @@ -692,4 +652,4 @@ "metadata": {} } ] -} +} \ No newline at end of file diff --git a/examples/feature_extraction/imagenet_val.prototxt b/examples/feature_extraction/imagenet_val.prototxt new file mode 100644 index 00000000000..14bfe770ef8 --- /dev/null +++ b/examples/feature_extraction/imagenet_val.prototxt @@ -0,0 +1,229 @@ +name: "CaffeNet" +layers { + name: "data" + type: IMAGE_DATA + top: "data" + top: "label" + image_data_param { + source: "$CAFFE_DIR/examples/_temp/file_list.txt" + mean_file: "$CAFFE_DIR/data/ilsvrc12/imagenet_mean.binaryproto" + batch_size: 50 + crop_size: 227 + mirror: false + new_height: 256 + new_width: 256 + } +} +layers { + name: "conv1" + type: CONVOLUTION + bottom: "data" + top: "conv1" + convolution_param { + num_output: 96 + kernel_size: 11 + stride: 4 + } +} +layers { + name: "relu1" + type: RELU + bottom: "conv1" + top: "conv1" +} +layers { + name: "pool1" + type: POOLING + bottom: "conv1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layers { + name: "norm1" + type: LRN + bottom: "pool1" + top: "norm1" + lrn_param { + local_size: 5 + alpha: 0.0001 + beta: 0.75 + } +} +layers { + name: "conv2" + type: CONVOLUTION + bottom: "norm1" + top: "conv2" + convolution_param { + num_output: 256 + pad: 2 + kernel_size: 5 + group: 2 + } +} +layers { + name: "relu2" + type: RELU + bottom: "conv2" + top: "conv2" +} +layers { + name: "pool2" + type: POOLING + bottom: "conv2" + top: "pool2" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layers { + name: "norm2" + type: LRN + bottom: "pool2" + top: "norm2" + lrn_param { + local_size: 5 + alpha: 0.0001 + beta: 0.75 + } +} +layers { + name: "conv3" + type: CONVOLUTION + bottom: "norm2" + top: "conv3" + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + } +} +layers { + name: "relu3" + type: RELU + bottom: "conv3" + top: "conv3" +} +layers { + name: "conv4" + type: CONVOLUTION + bottom: "conv3" + top: "conv4" + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + group: 2 + } +} +layers { + name: "relu4" + type: RELU + bottom: "conv4" + top: "conv4" +} +layers { + name: "conv5" + type: CONVOLUTION + bottom: "conv4" + top: "conv5" + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + group: 2 + } +} +layers { + name: "relu5" + type: RELU + bottom: "conv5" + top: "conv5" +} +layers { + name: "pool5" + type: POOLING + bottom: "conv5" + top: "pool5" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layers { + name: "fc6" + type: INNER_PRODUCT + bottom: "pool5" + top: "fc6" + inner_product_param { + num_output: 4096 + } +} +layers { + name: "relu6" + type: RELU + bottom: "fc6" + top: "fc6" +} +layers { + name: "drop6" + type: DROPOUT + bottom: "fc6" + top: "fc6" + dropout_param { + dropout_ratio: 0.5 + } +} +layers { + name: "fc7" + type: INNER_PRODUCT + bottom: "fc6" + top: "fc7" + inner_product_param { + num_output: 4096 + } +} +layers { + name: "relu7" + type: RELU + bottom: "fc7" + top: "fc7" +} +layers { + name: "drop7" + type: DROPOUT + bottom: "fc7" + top: "fc7" + dropout_param { + dropout_ratio: 0.5 + } +} +layers { + name: "fc8" + type: INNER_PRODUCT + bottom: "fc7" + top: "fc8" + inner_product_param { + num_output: 1000 + } +} +layers { + name: "prob" + type: SOFTMAX + bottom: "fc8" + top: "prob" +} +layers { + name: "accuracy" + type: ACCURACY + bottom: "prob" + bottom: "label" + top: "accuracy" +} diff --git a/examples/filter_visualization.ipynb b/examples/filter_visualization.ipynb index fe8773f23fb..6f494821028 100644 --- a/examples/filter_visualization.ipynb +++ b/examples/filter_visualization.ipynb @@ -37,7 +37,6 @@ "sys.path.insert(0, caffe_root + 'python')\n", "\n", "import caffe\n", - "import caffe.imagenet\n", "\n", "plt.rcParams['figure.figsize'] = (10, 10)\n", "plt.rcParams['image.interpolation'] = 'nearest'\n", @@ -52,17 +51,21 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Follow the [instructions](http://caffe.berkeleyvision.org/getting_pretrained_models.html) for getting the pretrained models, load the net and specify test phase and CPU mode." + "Follow the [instructions](http://caffe.berkeleyvision.org/getting_pretrained_models.html) for getting the pretrained models, load the net, specify test phase and CPU mode, and configure input preprocessing." ] }, { "cell_type": "code", "collapsed": false, "input": [ - "net = caffe.imagenet.ImageNetClassifier(caffe_root + 'examples/imagenet/imagenet_deploy.prototxt',\n", - " caffe_root + 'examples/imagenet/caffe_reference_imagenet_model')\n", - "net.caffenet.set_phase_test()\n", - "net.caffenet.set_mode_cpu()" + "net = caffe.Classifier(caffe_root + 'examples/imagenet/imagenet_deploy.prototxt',\n", + " caffe_root + 'examples/imagenet/caffe_reference_imagenet_model')\n", + "net.set_phase_test()\n", + "net.set_mode_cpu()\n", + "# input preprocessing: 'data' is the name of the input blob == net.inputs[0]\n", + "net.set_mean('data', caffe_root + 'python/caffe/imagenet/ilsvrc_2012_mean.npy') # ImageNet mean\n", + "net.set_channel_swap('data', (2,1,0)) # the reference model has channels in BGR order instead of RGB\n", + "net.set_input_scale('data', 255) # the reference model operates on images in [0,255] range instead of [0,1]" ], "language": "python", "metadata": {}, @@ -80,7 +83,7 @@ "cell_type": "code", "collapsed": false, "input": [ - "scores = net.predict(caffe_root + 'examples/images/cat.jpg')" + "scores = net.predict([caffe.io.load_image(caffe_root + 'examples/images/cat.jpg')])" ], "language": "python", "metadata": {}, @@ -98,7 +101,7 @@ "cell_type": "code", "collapsed": false, "input": [ - "[(k, v.data.shape) for k, v in net.caffenet.blobs.items()]" + "[(k, v.data.shape) for k, v in net.blobs.items()]" ], "language": "python", "metadata": {}, @@ -139,7 +142,7 @@ "cell_type": "code", "collapsed": false, "input": [ - "[(k, v[0].data.shape) for k, v in net.caffenet.params.items()]" + "[(k, v[0].data.shape) for k, v in net.params.items()]" ], "language": "python", "metadata": {}, @@ -213,7 +216,7 @@ "collapsed": false, "input": [ "# index four is the center crop\n", - "image = net.caffenet.blobs['data'].data[4].copy()\n", + "image = net.blobs['data'].data[4].copy()\n", "image -= image.min()\n", "image /= image.max()\n", "showimage(image.transpose(1, 2, 0))" @@ -224,9 +227,9 @@ { "metadata": {}, "output_type": "display_data", - "png": "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\nJwTIJ/RJ0no77dLI/G/J9pIyGlMzSQjAHB/VtqEqumrmUA+tVWeXvRXTMqnqLlHvTAogeLqqqqxu\n6vbfJ9s+QKqmSHyf3Lh9x8zMzpDunBx6IjKNvONUFLtxr5E86xxXTW2kKVLlQsq+gPbRai0K3JiL\nHAcdQ6rMayqC19c0sj5HDKb0uibo1ArzxwZIH45z7U8Ur+B+tIhlDW2dTHPgMGM238xW0b0o/DpF\nU+0m0v3zG5u7M839/vf9X+2xzYVLmX39f/+T5Xlu48m47ZPhUPTOkO4ZibYUCd0jSfdTj+tUjJE5\nx3neicw16jfpc9OuBaJOTZPZl19+Wf7WpZY6qTX09VRIyT1cj/p52lv3H7i0j2qLzVZuDun97+0z\n9ejbtKBZt5DHSZDepTd3fOzSvUqt4NwYjXx7OXaqd8fn8/ZtX4DEKZNKup3fj3tiQsxU7aajI5XZ\naDRqKR36XLdpXJmnXBT02eGCrvSZ0diNdVn5MSZ9ZyEp1bvffBltRyGC3AN18bSw5dZNl9JLMv8+\nQe3Dxcp///D+xwPRdET6/LVXfbpRU7+7IpDNQ4QIESJEiBAhLhlRswvG+DeOH/mRH7G//Mu/fKsv\nGyJEiBAhQoQI8W3HD//wD9tf/MVf7PzdlbxIhQgRIkSIECFC/EeIkNoLESJEiBAhQoS4ZIQXqRAh\nQoQIESJEiEvGlbxI/dmf/Zm9613vsmeffdY+85nPXEUTQvwbxdNPP23vf//77UMf+pB9+MMfNjMn\nNviRj3zEnnvuOfvxH/9xO2WFYojvqPj5n/95u3nzpn3v935ve+zNxvZTn/qUPfvss/aud73Lvvzl\nL19Fk0NcMnaN9Sc/+Um7c+eOfehDH7IPfehD9qUvfan9XRjr79y4e/eu/eiP/qi9973vtfe97332\nuc99zszCs/1tRfMWR1mWzTPPPNO89NJLzWazaT7wgQ80L7744lvdjBD/RvH00083x8fHnWO/9mu/\n1nzmM59pmqZpPv3pTze/8Ru/cRVNC/F/GH/1V3/V/O3f/m3zvve9rz32RmP793//980HPvCBZrPZ\nNC+99FLzzDPPNFVVXUm7Q3z7sWusP/nJTza/9Vu/tfXZMNbf2fHaa681L7zwQtM0TXNxcdE899xz\nzYsvvhie7W8j3nJE6vnnn7d3vvOd9vTTT1uWZfYzP/Mz9oUvfOGtbkaIf8Nonqhf+OIXv2gf//jH\nzczs4x//uP3pn/7pVTQrxP9h/NAP/VBHP8fsjcf2C1/4gn3sYx+zLMvs6aeftne+8532/PPPv+Vt\nDnG52DXWZru16sJYf2fHrVu37IMf/KCZOf2pd7/73Xbv3r3wbH8b8Za/SN27d6/jkn3nzp1WUCvE\nd35EUWQ/9mM/Zt///d9vv//7v29mZvfv37ebEEi7efOm3b9//yqbGOJfMd5obF999VW7c+dO+7nw\nnP/HiN/5nd+xD3zgA/YLv/ALbaonjPV/nHj55ZfthRdesB/4gR8Iz/a3EW/5i5QqjYf4jxd/8zd/\nYy+88IJ96Utfst/93d+1v/7rv+78PoqiMAf+g8a3Gtsw7t/Z8Uu/9Ev20ksv2d/93d/Z7du37Vd/\n9Vff8LNhrL/zYjab2Uc/+lH77Gc/2xo2M8Kz/ebxlr9IPfXUU3b37t32/+/evdt5uw3xnR20JLh+\n/br91E/9lD3//PN28+ZNe/31183M7LXXXrMbN25cZRND/CvGG43tk8/5K6+8Yk899dSVtDHEv07c\nuHGj/UL9xV/8xTadE8b6Oz+KorCPfvSj9nM/93P2kz/5k2YWnu1vJ97yF6nv//7vt6997Wv28ssv\n2+b/b++OURQGwiiOfxYeQrALKihxcgexHVsbKy/gJfQWCum0slOx9RiCltqIhWiR5m2xkGJhFxxw\nQ+D/q0JI8cFj4BUzmSyz1Wpl3vv/HgMf8Hq97PH4vovq+Xzafr+3OI7Ne29pmpqZWZqm+UJF+f2W\nrffelsulZVlm5/PZjsdjfooT5XS5XPLn9Xqdn+gj63KTZOPx2Nrttk0mk/w9a/sNRexw32w2ajab\niqJIs9msiBHwAafTSc45OefU6XTybG+3m3q9nhqNhvr9vu73e8GTIsRwOFStVlO1WlW9Xtdisfgz\n2+l0qiiK1Gq1tNvtCpwc7/qZ9Xw+12g0UhzH6na7GgwGul6v+fdkXV6Hw0GVSkXOOSVJoiRJtN1u\nWdtv4IoYAACAQPzZHAAAIBBFCgAAIBBFCgAAIBBFCgAAIBBFCgAAIBBFCgAAIBBFCgAAIBBFCgAA\nINAXDgQs9hLe6aYAAAAASUVORK5CYII=\n", + "png": "iVBORw0KGgoAAAANSUhEUgAAAlIAAAJOCAYAAAB8y+mTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvVuvbUl6JfTN+1xr7cu5570yqXJ1uXwpqavLxt1WG9lq\n2SpAAlmIdksgHvyGUEvAD0BC8GBekMBPSDyBZPkJWY2EAdMS0ICw3U2bbptul123rKzKPHlOnrNv\n6zKvPMQYESPOXFVuNlm9wYrvZa8da645I2JGxJwxvvGNL5vnebZkyZIlS5YsWbJk/48tv+sKJEuW\nLFmyZMmS/f/V0otUsmTJkiVLlizZLS29SCVLlixZsmTJkt3S0otUsmTJkiVLlizZLS29SCVLlixZ\nsmTJkt3S0otUsmTJkiVLlizZLe2H8iL127/92/ajP/qj9vnPf95+7dd+7YdxiWTJkiVLlixZsju3\n7NPWkRrH0b7whS/Y7/zO79hbb71lP/VTP2W/8Ru/YV/84hc/zcskS5YsWbJkyZLduX3qiNTv/u7v\n2o/8yI/Ye++9Z1VV2a/8yq/Yb/3Wb33al0mWLFmyZMmSJbtz+9RfpD744AN75513/P9vv/22ffDB\nB5/2ZZIlS5YsWbJkye7cyk/7hFmW/ZnHNGdn1l1dfdqXTpYsWbJkyZIl+9Tt5PHGrp5eH/3uU3+R\neuutt+z999/3/7///vv29ttvR8d0V1fWnJ1afXJqZu7FanXvnpmZKWUrz5eAGb+d5KusKNyHIpSN\nxejOUYbConLNHabe/U5e+vzn/EiZ1GkaJ3eucZSLDfgz+KJyct/PUyhjTfLMnSOfJ//d4D8v2z9P\n4TjWKRulTrhWUYS2+n7Mwm/NN23G75Qe5z53h1Df/d7106TtH9huPS8/h75jXYqisusPb+zk9Y0V\nhWtPXYdhV1buuKrKcXz4rmma6Dszs6Zt3TnKypdVlftcyngZ+gFt2PuyFxduEtzsQtl+59o4DO5v\nWYZzZKhKVoT2z5n7POv4K137sywcV2Os5UXopzJ3ZbPc935wv9ntXX2Heeu/ywseH8ZahlGUydRl\n9+uQ5GgrC70nc1QP95kNwd8+tIHnOxzCifvO1bOX4/rO/Z2nyfbPd9Y+XFlZueu2q3CfispVtFzJ\nnER/Z5m7xjTKGJ5QT5nsw8C5E9rFcZznuolzn+dFidkk8ym6keY4nv4rjPuyDP0144yzrJw8X0Q3\n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\npZdeko997GNhbf8Y9q6/SLHSeLCfPvve974nL730knznO9+RP/iDP5C//du/LX0eRVGYAz+l9qPG\nNoz7e9t+7dd+Td544w35x3/8R7lw4YL85m/+5g/9bhjr9571ej157rnn5Gtf+1pJ/VskrO0fZe/6\ni9SlS5dKUvLXr18vvd0Ge2/bBc2mvbW1Jb/4i78oL7zwguzs7Mjt2y7z9q1bt2R7e/udbhHsPWQ/\nbGzvXedvv/22XLp06VzqGOw/x7a3t/0D9Vd/9Ve9OyeM9XvfptOpPPfcc/K5z31OPv3pT4tIWNs/\njr3rL1If+chH5NVXX5Vr/397d4yiMBRFYfhauAjBLqigxJc9iO2ztbFyA25Cd6GQTis7FVuXIaid\nNmIhWKQ500UYmAEfzITA/5UhxYXDg1Pk5V4ulmWZrVYr897/9xj4A6/Xy57P946//X5vcRyb997S\nNDUzszRN84OK8vspW++9LZdLy7LMzuezHY/H/BYnyul6fe/3W6/X+Y0+si43STYej63dbttkMsmf\nc7Y/UMQX7pvNRs1mU1EUaTabFTEC/sDpdJJzTs45dTqdPNv7/a5er6dGo6F+v6/H41HwpAgxHA5V\nq9VUrVZVr9e1WCx+zXY6nSqKIrVaLe12uwInx6e+Zz2fzzUajRTHsbrdrgaDgW63W/4+WZfX4XBQ\npVKRc05JkihJEm23W872B1gRAwAAEIg/mwMAAASiSAEAAASiSAEAAASiSAEAAASiSAEAAASiSAEA\nAASiSAEAAASiSAEAAAT6AoIkxbPQ11/CAAAAAElFTkSuQmCC\n", "text": [ - "" + "" ] } ], @@ -244,7 +247,7 @@ "collapsed": false, "input": [ "# the parameters are a list of [weights, biases]\n", - "filters = net.caffenet.params['conv1'][0].data\n", + "filters = net.params['conv1'][0].data\n", "vis_square(filters.transpose(0, 2, 3, 1))" ], "language": "python", @@ -255,7 +258,7 @@ "output_type": "display_data", "png": "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\nRK5CYII=\n", "text": [ - "" + "" ] } ], @@ -272,7 +275,7 @@ "cell_type": "code", "collapsed": false, "input": [ - "feat = net.caffenet.blobs['conv1'].data[4, :36]\n", + "feat = net.blobs['conv1'].data[4, :36]\n", "vis_square(feat, padval=1)" ], "language": "python", @@ -281,9 +284,9 @@ { "metadata": {}, "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAAAlIAAAJOCAYAAAB8y+mTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvVmMZddVBrzufG/dGrqqJ3d1t912d2yn7cSN00msYCU2\nAZIIlBAJMaNEihASEeKBJxBieCK8gQCJB3iIEInCbEREIDYZyGA7wdjGieeh7bbdXdXVNde9dcf/\n4f7fqu+svc65p6rbFD///l6q+95zz9nz2ftba32rMBwOhxIREREREREREbFrFPe7ABERERERERER\n/19F3EhFREREREREROwRcSMVEREREREREbFHxI1URERERERERMQeETdSERERERERERF7RNxIRURE\nRERERETsEW/JRupLX/qS3H777fK2t71N/uAP/uCteERERERERERExL6jcL11pPr9vtx2223y4IMP\nyvHjx+Xd7363fP7zn5e3v/3t1/MxERERERERERH7juvOSD366KNy5swZOXXqlFQqFfmZn/kZeeCB\nB673YyIiIiIiIiIi9h3XfSP1+uuvy8mTJ/X/J06ckNdff/16PyYiIiIiIiIiYt9Rvt43LBQK1+Wa\niIiIiIiIiIj/DfjABz4gX/3qV93vrvtG6vjx4/Laa6/p/1977TU5ceJE7t/Pzs7K9PS0iIhcuHBB\nP6/X6yIi0u12RWTki5UFbNY8F7BqtSqdTkdERIrFESk3GAxkYmJCRETa7bbew3tOrVZL/H97ezuz\nLEePHhURkY2NDdna2grKVSqVctXJw9TUlGxvb+tv+R6lUkl6vZ6IZG9euT2AYrGobYPfdrtdKZdH\nQwb35e/zutvhvuVyOegHkVFfjPtt1jVpmJycFBGRzc3NoKyFQiF3+b36YkygXXq9nszNzYnIzvjo\ndrs6xg4dOiQiIouLi7K2tpa4//z8vI4Jnkuo+9TUlIiIrK6u6neNRkNERm2K8Ya/L7/8sl67ubkZ\nlJnH74EDB0RE5PTp0yIymoNXrlwJnoFxdvDgQRERuemmm7R9Dx8+LCIin/vc59wxjd8Ay8vL2paV\nSkVERmMSz0N7r6+vS6vVCu6Hel66dEmvxX2YHX/ppZe0fCjj97///eB+6JsPfOAD8uCDD4qI6Did\nnp6W5eXlxGfjgLb8zGc+I3/4h38oIjv9Oj09LU899VTi+nvuuUeOHDkiIiJf/OIXRSR9bbjhhhtE\n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\nMag5S4F1k7zemMo9NpvNApuhGL1SqPqDDWDlaPWseJ5lptSfr5hp/t2XzVYI9T7k+txfUzrfxvT2\n1DcmFTCi2JSjo6PG2Impzvs+5HcGLO5yuWxkE+h0OtJsrAJ9vBWC3S9S7L2aR/nv3NzsnzXLvaBO\n0+k0zJEcpINrcR6b+9pYvCojVVFRUVFRUVGxJi7UR4p9LYDlctnYxXY6HckgqV0xl4N/SxykY/5Q\n5yFdkFOdVtf539uE9vPuw7MYpaHrpQ70sfNSdeTdmNqZKf+qknKZaeRylW+RYh9T5ymk6sLjTok5\nqnZfuXLFzE4FEs1Od4u9Xq8hidDpdAKDoELTU2HrjLM43vO1ijlQvhQ+3PrKlSv2ySefNMrGDpLZ\nFCVayn2g/NIUUrIBAPsCATzeU75Uy+UyyVrg+XNeRQ7VToF3zyk/GDAcly5dCowGmKbpdNpo+2g0\natRFgd+LVCi+WbOPcjIT6p1ix+IU48h+WP6+7JSektVR73wbdfIU28Jty4kqmzUtJ6k+x7vC8xj6\n4+DgIDDXKdaLg7+4XiibHdVLcsGqflH9u46/8zpzlhfmjY0DFeiT85GyZQZf//rXlzdu3Fh+6Utf\nCsd+7/d+b/nSSy8tv/zlLy+//OUvL//0T/80/Pbv/t2/W965c2f5hS98Yflnf/ZnskwzO5f/+v3+\nst/vLzudzrLT6SzNbOVv/x//1u12l91ut/U9Y2XnrknVC//1er1lr9eL/u7rjPNj1wwGg0af8/Wq\nXiX1zLVznb4cDofL4XCYbTv/588Zj8crbR8MBiv34OvwN847S5tUvbnP8Yz4PrjvCy+8IJ+bOubr\n2u/3V9o+Ho9X+gXvR+45oC96vZ5sr+9v1R+qzmqscV3x23Q6Db+jzlxvVSd1TM0tsXGixn1Jm/g8\n9e7hWOncsrGxsdze3l5ub28XPyeMA+43dT76+fLly8urV68ur169Gsq4evXqyjuCvh+NRsvRaFT8\nLqTm9E6ns5xMJsvJZFLUF7H/uH6p9qLv+X1MtWc0Gq2MN5S/bv1i91DvUcn3h9vB70Pb7yjmVt8v\nm5uby83NzWSbVN+ptqa+W+s+89j4X+e7rf4bj8cr72u3213pZ/TZaDQK/R1D1rT39a9/3b7//e+v\nHOt0OvYv/+W/tL/6q7+yv/qrv7Lf+I3fMDOzN954w7773e/aG2+8Yd///vftd37ndz6TlCkVFRUV\n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\na665Rg4ePCiPPfbYdhT5AwurLe+9917Zs2ePzM7OyuzsrDzyyCP6t9CWnfH222/LZz/7WTl8+LBc\nf/318rOf/UxEgm1uBZ3aMtjm5aNWq8nx48fl6NGjcujQIfne974nIsEuTVyhm4NRFEVRq9WK9u3b\nF50+fTpqNBrRzMxM9Oqrr17JInzoMT09Hc3Pz8c++853vhPdd999URRF0Y9//OPou9/97nYU7QOP\nJ598Mnr++eej66+/Xj/r1HavvPJKNDMzEzUajej06dPRvn37ovX19W0p9wcRVlvee++90U9/+lPv\nu6Etk3H+/PnoxIkTURRF0crKSnTgwIHo1VdfDba5BXRqy2CbW8Pq6moURVHUbDaj48ePR0899VSw\nSwNXlJF69tlnZf/+/TI9PS3pdFruuOMOeeihh65kEf4rEDn3A/7whz/IXXfdJSIid911l/z+97/f\njmJ94PGpT31KRQ2BTm330EMPyVe/+lVJp9MyPT0t+/fvl2efffaKl/mDCqstRWyR19CWydi5c6cc\nPXpURNpCidddd5288847wTa3gE5tKRJscytA2pdGoyHr6+syOjoa7NLAFd1IvfPOO6oGLtLOCwUj\nD+gNfX19csstt8ixY8fkl7/8pYi0lZ+R26lcLseUoAOS0antzp07p/nmRIKt9oqf//znMjMzI3ff\nfbdS/qEte8eZM2fkxIkTcvz48WCb/yHQljfddJOIBNvcCjY2NuTo0aNSLpf1yDTYpY8rupGyUmsE\nXB6efvppOXHihDzyyCPywAMPyFNPPRX7e19fX2jnLaJb24V2TcY999wjp0+flhdeeEGmpqbk29/+\ndsfvhrb0UalU5Pbbb5f7779fkzcDwTYvD5VKRb7yla/I/fffL6VSKdjmFpFKpeSFF16Qs2fPypNP\nPimPP/547O/BLtu4ohup3bt3a34vkXZgIO9gA7pjampKRNo5zr785S/Ls88+K+VyWXMEnT9/XiYn\nJ7eziB8qdGo711bPnj2r2dkDbExOTurE+o1vfENp/dCW3dFsNuX222+XO++8U770pS+JSLDNrQJt\n+bWvfU3bMtjmf4bh4WH5whe+IM8991ywSwNXdCN17NgxOXXqlJw5c0YajYb89re/ldtuu+1KFuFD\njWq1qokrV1dX5bHHHpMjR47IbbfdJg8++KCIiDz44IM6eQR0R6e2u+222+Q3v/mNNBoNOX36tJw6\ndUpvSQbYQOJXEZHf/e53eqMvtGUyoiiSu+++Ww4dOiTf+ta39PNgm5ePTm0ZbPPyMTc3p0ega2tr\n8uc//1lmZ2eDXVq40tHtDz/8cHTgwIFo37590Q9/+MMr/foPNd58881oZmYmmpmZiQ4fPqztNz8/\nH33uc5+LrrnmmujWW2+NFhcXt7mkH0zccccd0dTUVJROp6M9e/ZEv/71rxPb7gc/+EG0b9++6Npr\nr40effTRbSz5Bw9uW/7qV7+K7rzzzujIkSPRDTfcEH3xi1+MLly4oN8PbdkZTz31VNTX1xfNzMxE\nR48ejY4ePRo98sgjwTa3AKstH3744WCbW8BLL70Uzc7ORjMzM9GRI0ein/zkJ1EUJa83/6ttGVLE\nBAQEBAQEBARsEUHZPCAgICAgICBgiwgbqYCAgICAgICALSJspAICAgICAgICtoiwkQoICAgICAgI\n2CLCRiogICAgICAgYIsIG6mAgICAgICAgC0ibKQCAgICAgICAraIsJEKCAgICAgICNgi/g+y+O+i\nLiOpjQAAAABJRU5ErkJggg==\n", + "png": "iVBORw0KGgoAAAANSUhEUgAAAlIAAAJOCAYAAAB8y+mTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvWmMZGd1Bnxqr+qu6mV6pnumZ2s845nxPthjY7CDsQ02\nKAFsRWADghBZCPEzUn5EUaRApEREikR+JMqPECUmQraTKIEYxWZJbIMN48HG+4KX8XgWd8/Se1dX\nd1VX1fejvufUc9/31K3qHjvDl+99/kxPVd173/2e85wt0Ww2mxIQEBAQEBAQELBuJC90AwICAgIC\nAgIC/r+KIEgFBAQEBAQEBGwQQZAKCAgICAgICNgggiAVEBAQEBAQELBBBEEqICAgICAgIGCDCIJU\nQEBAQEBAQMAG8Z4IUg8//LAcOHBALr74YvnLv/zL9+IRAQEBAQEBAQEXHIl3O49UvV6X/fv3y09+\n8hPZvn27XHvttXLffffJJZdc8m4+JiAgICAgICDgguNdZ6SOHDkie/fulYmJCclkMnL33XfL97//\n/Xf7MQEBAQEBAQEBFxzvuiB16tQp2blzp/5/x44dcurUqXf7MQEBAQEBAQEBFxzpd/uGiUTiXflN\nQEBAQEBAQMBvAm666SZ59NFHze/edUFq+/btcuLECf3/iRMnZMeOHed1z1KpJEtLSyIiwi5dfX19\nIiKSTLaItWq1KtVqdV33npiYEJEWk1ar1USkLeglEglpNBreNfjeci/LZDL6G6stqVRKRCRy37j7\n4Lu1tTXtp9UmIJlMmvfGtdazksmkd++4Z3A/6vW6912hUNAxqlQqHZ+7HqTT0aW6trbm/aZUKsmm\nTZtEROTkyZMi0poH97epVErbw/1Mp9NSr9cjbbX6mcvlItcmEgm9Bmuo2Wz2rDDgfujj6uqqbNmy\nRURE3ve+94mIyMLCgszMzIhIe0xXV1dldXXVax/aPDQ0JCIit912m67F//iP/9A2j4yMiIjodwsL\nC3oP9IfHAu3r7++XUqkkIu1xtvqzurqqbcFYNBoN2b59e6Sdx44d8+6xbds22b17t4iIvPrqqyIi\nMjc35/2uWCzq/V599VVzf7nt7+vr074ODg6KiEg2m5WzZ89Gfv+BD3xAisWiiIg89thjIhJdd5df\nfrmIiExPT8vp06e952JP/fu//7uIiPzVX/2VPP744177cbYBmUxG11EcCoWCroVrrrlGREQOHDgg\n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\n2dxfsD+cusFncmerTbnE0A/OWA4mRIUXKwuN3Tg+E7pHzp1mFndHqKz8Ofh7w4wUf+fZTLNmIAP3\nncW67A72x/l+mc0/I0qO4NmHbrfbGLdOpxPaxQwnF1j37Uu5Hk8DJQRWUK4uzjSfEgIz26JqRubE\n2SWIuQpT7BTXV1T3vVTcnLpGLFRfHZ86LueeKw3OUlIL3/dYpvTUeVPf8Wect0/NnZL5pPrPbCb3\n58/+7M+ibTVbkpH63d/9Xfv6179uZmZf//rX7fd+7/fC53/7t39r4/HY3nvvPfvRj35kv/IrvyLP\nsbq6GooMl+RpqKioqKioqKj4aaLVamU3UtkdzFe/+lX71re+Zffv37cbN27Yn//5n9uf/umf2u//\n/u/bX//1X4f0B2Zmr732mv3+7/++vfbaa9bpdOyv/uqvopYBNB3eOllZWQnpBcDesAaK4XebSvMT\n+20psLPFeRZN/sk4KzcnrPEXXnihkRJhf38/7LQ5maLyZTOUf9mHsd+8edN+8IMfzH128eLFwEgx\nK+KtbKVbaLfbDU3bYDCQVhHYJE55kQqLBpgBBLvDob/cFs9cTCaTMNb4jNuGsVdCfgVlAY3H4zDO\nYGKZhVJzhoMRwBb5BKP8d84yRJ+uXr3aYKTW19eTCe9YJ4S/VTZzTi3A4nazefYJx7VazdpjKpOz\nSh/hfwOkLNajo6PGnGi1Wo0q8jlLmRlMr/VTz0BO+8IaKG9Jc12wlI5Dhaufho2KtRlQ7JRaf9A3\nJbhmKM0Q692UYNh/tqjOy7c5lf4A11IsY+x8Z4GYCNu/U2Pz3msZj46OiqPs/XHsceBgCID77uvq\ntVqt8Nmi+t/YupZaO9S4qTYDJferNTtLfrcQn1TdlC/fYHbygsLLq91uz0URmemM3woXLlwIriZM\nYs6ojNxC7L7kxcZP/FRqfCAVbcJuC+WSwGdwp81ms0YOndFoFNqhon/4xaiyP/sJv7W1FcaDN8bs\nlgOUeweRdPiONxa5yEoVUedLdKg280aFc/fA1cnRlt7tolxxLARFBNyDBw8aUUwxtxZHE6Y+4/ab\nHY+xNzzW19cbglF+keL5GI/Hob8sfAcwD7rd7lw+GrP5AAhgbW0t3LtUSSMuKcQvvNKIH+XuUxGY\nOVFtKVJuCPXSV8ensqJzBvQUOIoJUIEjOUE259fyn8WE5T6PVMy4S7VPubzUWndWr7ez3gSlrsH/\n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\n/5ufn6/VZX5+nt5r50TsPttG7HM2D1g7vGuvxn+sju122+1L7B8dL2yvnTt2TjT5j/UL1hn7HOdB\nznilyt7Pf6z/cH3YPY3VGedg0/ql5hPWRccLx81b/7i/sHlurw0Gg+x2aL/l7j/6H+4FTZ9l48X6\nPqfPW63W1H6BfWH7xfa5V6bd0/G/ubk5Oob2P1YvNg6457J91hvr/d6XO0/Yf8vLy9Xy8jL9Ds3y\nn/Z3DK5pr9fryV/8xV/IU089JV/60pfkr//6r+Vb3/qWfOxjH5P3vve98t3vflfe8573yMc+9jER\nEXn66aflU5/6lDz99NPy+OOPy4c//OEDD7ZVUFBQUFBQUPCagaeRsviN3/iN6t/+7d+qhx56qLp0\n6VJVVVX18ssvVw899FDQRn3sYx8L9//qr/5q9cQTT1CNVOx0iad/lAzm5+enTtFWq6P32/KYBISn\ndJR69JpKiL1er6YJYf+lJB7vBD43N1fTeohIdd9991X33XffVBv1b09DYP+z0gs+p6f1VqsV6oDt\nPX36dHX69OmpsbFSDkooKLHY+1BCQimB9a9tH5MoYlIGatRifcTGk11j7zh+/Hh0HOfm5moSjO0L\nOxdimr8cSTp3DuAYYT2t9tS23ZPk7O/4PNNw5K4LT5JOlROT0u19uRqKWTQ+qXHztMC570j1R9M6\n41pB7URMe4L/Me0I03Cw9ZjSYHt9iZp9e43t+ey/mLaraV3Ys6idze17+66YllKB2l/7fcT/UlYI\nVq/BYFANBoOq0+kEqxHu357WS9/R7Xbp3NY662+sXxcXF2t7amo8tLzl5eXa/Wx9xb4T9r2qBcS+\nb6SRQjz77LPy1a9+Vd7xjnfI5cuX5dSpUyIicurUKbl8+bKIiLz00kty/vz58Mz58+flxRdfzH1F\nQUFBQUFBQcEPFbICct65c0fe//73y8c//vEQvVTRatVzLNnfGSaTCSVuYoRkJZEdOXJErl+/PnVf\nVVWuS6oCXbUZUZoR4/B3G2xyMplMuR+LpINgeuZNJAEqcfDYsWPy/PPPT903GAzCeyogeLI2e2RJ\nDApYAZFR/1aX/uPHj8ulS5dqz9v3YdtZcEZGJkfifizQHGI8HtfaFHNr1b89wiNzxWUu/fgOHZu1\ntTXq0u+RObHPvCjbeJ/+7ZFvY/PKPoPzAOvpEcZTJGb9nZFDY0EXvfp7azhWB72f9YMXoTk3qnOK\n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\nSUVORK5CYII=\n", "text": [ - "" + "" ] } ], @@ -302,7 +305,7 @@ "cell_type": "code", "collapsed": false, "input": [ - "filters = net.caffenet.params['conv2'][0].data\n", + "filters = net.params['conv2'][0].data\n", "vis_square(filters[:48].reshape(48**2, 5, 5))" ], "language": "python", @@ -313,7 +316,7 @@ "output_type": "display_data", "png": "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\nIqIb+upwfU7EnNLtAIqW6LIF1113XURErFy5cqB9WVKCPjkZZyGTfI6lAeuINU4nE0VjgYay6CJA\n6ygThZZ0ArQ5xmueZknv+B4hq30p/51IEmTlU2jnciyMwQ7NLphr2tGCyr7gMRo18+kkhowTXt96\n660D399xxx0H2mcJ3cbHx5s+gMeB5ozc3H///QOf22rG3ELT1ltvHX1YtmxZ853f/va3ERGx2267\nDbRx8WFbJhz+Dl+QJ3if+QhMTU018jss+auteRS3Zf49TjRz5o55RybLNco4oQGekrbA4wR8Tt/I\njR3ava623377gbGUewC8Y/xr166NiIgddthh4H0Ajxk/37/pppsiop0rgHzZgXxqaqoTuMFag054\njSx6XC4IjYbuAAhQav0REVdeeWUjg6b7wQcfjIh23bLG4LXXhdNd7LTTThHR8sX7TpkcknEwL06C\nzDOdWJU+PE4X8YU/yJn5uHHjxmb/d3ob86VMsBvRFitmzngGYH3BZwoz33jjjRERseeee3b6Ri4Y\nL+/b0uj0QrwyZx4nY4NWaGOuynQc8JS5gKY1a9ZERMQee+wx0Ld/05Fd5IbC2+6fMTHGVatWpeuf\nfXGm8mMzoVqkKioqKioqKirmiHmzSD3wwAOx9957R0TE+973voiI+Na3vhUR7ckUcArmVHv//fc3\nGgYaIchC6bNCqWha9MOzeEVbBmhFDz30UHP6tvZuWoDDfW3B4JRvDYZTva0pGzZsaPqErlWrVkVE\nN6zbPmD77bdfRET87Gc/i4iupoamhXYMzXfccUdEtFpBRDfZncPbPRfwHA0cywI8z4p5wl98Afba\na6+IaDVceFK22XbbbSMi4pWvfGVEtNoaYNwveclLIiLi0EMPjYiISy65JCIifv3rXw+0p38nSR0Z\nGen446FxMo/QmYX9k5COfvbdd9+IiMb6evvttw+0L62xaHH0TZJYYJ8IeA/PswKiWHb4PnPghI9T\nU1MdqyUyaL4gg/vss09ERLzmNa+JiIj/+q//6qWdcWKJRHavvfbaiBhMkskaYt1i3dh5550jIk/f\ngJy4LIct3ryPfEErVqZy3bEusLC/4hWviIiIK664IiK61i60ZfYVvofFzRZv7z/Im+cmop1nngEN\nzMF222030J41iMzZtw5LFkBOnv/850dExMtf/vJmfmwFQO5vueWWiGgtL/SBvAMXFGfc/H7YglWm\nG4An9jsFyAuyZUscfruAPdj7blaId8GCBc1eyTzyDCd3ZZ1gSWL+sbyV+1xEe8MBDQcffHBEtHNV\n+py6zBo85DfItyO2VNEX32M/MO1Yz7lduv766yMi4kUvelHT1mVp7Avmkmv2R7zmmmsiopUTzxG0\ns9ahYauttopddtlloC3ygIzaAl/edsyEapGqqKioqKioqJgj5s0itWzZsvjmN78ZEa0mnmmwnFjR\n0B988MGhpS1855klluPZaEfPfe5zI6LVcmw1QGvadddd47bbbouIvFQBf7sAKPA9MzQ6oorTsbWd\nTTbZpHkPDQCLkS1S9MU9OrzEgoWGDdACsQ7Sznft5fg87gyZH4pLqQA0FD6nfI+joCK60TdXX311\nRLTaoGll3n/+859HRMRf//VfR0TEQQcdFBFdC5b9u8DixYs7lhS0HZ6NVocmaVlkjugH+ULzQvYA\n2uRjjz3W0I/fgP0prOWhaWFFMs9d3sOvfRZMJ4d1JAxAs0ZTPOSQQwZot+XNRc2xdDgSK6JbTBZe\n811bXmxhxTKVlf5BvmhH/32FYtkXfvGLX0REO//2gQNYxbFU4FMFbVnRWvjAsycmJjq+HewTq1ev\njoh2/qHbEbPID5Yn+JCVWkGOkMMXvOAFnZIngHnGtwd5YA/LrKnQYr54HcG/DRs2dKzcvgWgD5d8\ncZkmwJxhBWHNsh/Y4vnYY481eytWS/Y970XsNfSJ5RWa+B7gtuDmm2+OiIivf/3rEdHOMb9tEa0s\nOrkttGWlU7D60S7bu6CFOcdXE766LFAfTchiZtnnN+iGG26IiNby5pIzzAVWaPaCRx99tGMFhA+M\niz55ZvWRqqioqKioqKj4PWPeLFIjIyPxvOc9LyJabQhtPysFgXf+pptummp1nN5d2BYtx35GaM18\nD62AU7KtQGgqU1NTzckfbdeal6MTbM3wOF2MEW0qu9+fmprqaMicqE0L2hync2vHHic0owVx6keD\nK/nOs+A54+or4VGOk+9Zo7ZG4ohKNFrmovTBQMthPtFinLsJYO2BP1/5ylcG3rcGC6C5LAJq6wXz\nyJy4ZIxpYdyW0Sz6kX6f85znNPPJPJmHWdkWR84AR+04EsY+FaOjo808ISN819ZOeAuN3//+95tx\nRHQtb8gLn0ODc6FFdNcWmjJzYwsD1kLGX+4x5bgBY0KDxTIBv8qxwlvG4/xgXv/MDX1Cq3O3eazs\nP8hqWb4KuAA2Gjc8zcptQJPnxrKOdYl9qLw1cHSaraPMEWvQVh2sCNBAO5cvAqXlJisQDFzEF17T\npyOl2WucfysrLL3FFls0cmCrh+efvQqfMebTVnYAn7BcYYHit65s76LzzKNzeAH2k//+7/+OiHbP\nZbxeR96jkAfkpJxzr02exZ6a+RaztrAqZyWGAO3LKFjLlqNSAePMypYZ1SJVUVFRUVFRUTFH1Fp7\nFRUVFRUVFRVDUGvtVVRUVFRUVFT8jjFvPlLvfve7O7XYXJOMmlJHHXVURAxG6XBXzX3q5z73uYho\n6w9xcqRP5+6hjo/rfgHXc6OmUNnePkGu4wQtgOgU7pEZ50UXXRQRbU0hnu1su9yVU/fn6KOP7vhy\nOecW9aeob8f4Xd+M++RPf/rTEdHWIOOOm/6dN+XCCy9s6hU526+jFJlPasoB+21AC7W5qJ/G5/C5\njNa4+OKLI6Kt+eQ6fgY8pKaUs2f7/h15oT337tD6+OOPN+OmFhZ8sV8C8u6acrSnHc92nThq8zFH\nk5OTDU/wq2B9UFMK2ULmkCXXxaPWFjynP3wcGC9yc+mllw7QXtLvnDXwkJpyrkEJmIszzjhjoG/4\n5ZqVyOhFF13UrDn4gWzRJ/5b9E3tROYOfw3miD0H2fV+4azi4+PjnTpuwP40ruPFumCctLMfG/LC\n/DNGvjc6Oto8C1qOPPLIiGjXJHQjW8gD8w9fXBe0jAws+zffH3300Wa9ZvVQXXPO1SiobwfPHTHI\ns5gjaIEvCxYs6ETV8Uz2OfZF+0rZR4r21PFz1C7fY/9Avk455ZSGV54n5qKsV1nSYprgC+vfv4sA\nPiHLl1xySbOeM98f/M6oKUluR/sEIpOsI2ozumad/b+efPLJZi+C566EAE3wyTUoXe+z9FeOaPcX\n1pH9oRYsWNDwnvnk98JyDk38ZvMbnaFapCoqKioqKioq5oh5s0iVUT5oOVl9GzROTpgjIyNNhtLM\nw999onk5Cgttz5mMswrsfH9kZGSAnj5a0GZ431pdFrUFra6G3Red4kg/TvPWOHg2GpMjiJwXyJY8\n5+cpsydbK+dvWxrdHpqZX3jrSBnG5HpQ9F9avujD0Zq0zTLhu7q5tUHTQoQMmtnSpUs7PIcua4jQ\n6Nw9PBva0Ybolzw0oKw4zzhchR4gW/CDSCiirCy7tjyROd117krabYFifFndN+bfWYWd64l+bRW1\nZSqiu+6RmbImYt84+Z4jwiy7yIP3JPp1tGRE1xKBzGRRu8B7kqP2bJFjbU9MTKTr2eMlGstRe9AG\nHxzF6bXIHPK9zTffvDeqNqKdN8bLXuT8Ywa0E5WH9d2Wh7LqAOPMLCX8bUs+smuew1fyDDIWIufI\ncQWefvrphgbWHK/Osm2LNXxhzTqbPOvF/OT7Zc1Kr8mXv/zlEdHmWjLdtuQyl1kEOe29zvqi3pyr\ny781XkPQzrMdSew5Yk5pV94YeT07vxj0wsvZ+nNXi1RFRUVFRUVFxRwxbxaplStXNtlP/+3f/i0i\n2ppy1AwCnA4PPPDAiIg4/PDDm5o+//iP/zjQFu2HEyZaGqdZ5zBBs+JU63t7W8do99BDDzU5p6hX\nhXYH6AtthRpKX/7ylyOia5HgtIx2hI8B4ye/CHj66acbTYI2BxxwQER0LSmcvMkwi7ZDTh9nwrZ1\nECsROW76qnmX1ecjujWyABoHn1MXzZYpgMZJ1vk3v/nNERFx1VVXRUTE5Zdf3rRFI4If5AXKoi2s\nzZE3hTwotmC5Aj1z+uCDDzYZrAF8QVbRRMkXY9i3DE0U65frPpW5oWjDfJa1EMvxIUPQDS1kCwfI\nz+te97qIaLOP/9M//VNEdLOPL1q0qKEfGcNyYF85ZMgZmVk/Xv/OQ4WcoHGXPiLOUcY4bJkArFH4\nwFomQzeZ74Grw9N/X341+EEmfqoKUEPNFkZbS9gfyXXFK2C/oD/k65ZbbunUq7PVD58pxkH+NPcN\nkBtk0PsF/IMPa9asaaoiOCM3e4krNjAOWzH4m/FTtw0af/rTnw60Zw9YvXp1Mz/sEc5/ZR8grMDI\nqMfJ7wVzSS5BaCRTPthss82a/Y7Prrvuuojormf7xNo3zns6e5Et+exZpe8hvzXM/6te9aqIaGWM\nKgOA/ZLxsgbhhy2e/q1y3kbnxovo+iUh/9n8s3Zpz5iy32hogW+Tk5NpPjF4hTWTv2utvYqKioqK\nioqK3zPmzSJ11113NVoAWuD+++8fEV0NhrpwnA4vv/zyplK8K2KjnVq7y3xebE2xJuaIorImE/Si\njdnahVaIpnDllVdGRKs5OuOvrSOMjVNyX007Z4Pl9J5lZOWZaHd9Pk/l347AQgsq747tP+E77L6K\n6OWz0ZLQghyFgoZFP2iXl112WYcW13RyjUBrJMggvN1rr70iovVHsDUNjZvvMadPPfVUGj0DD9FM\nebXlDX5lz7RVrYxMw5rDOG3FcbQNMoVVzxXUsfageRMV+73vfW/g2WBkZKQZJz5O0GJDBPnNAAAg\nAElEQVTZwkJDH2j1zPMwrRHtlr/tI9PXR9aWeUbz/vGPfxwRrUZtKzNgruxDVK5RrEDIBRYoeJv5\nDtIHfLRVHbDGsSqwz+y0004dSwrjgA9XXHFFRLQWWO9z/M2aY276LNIR7b7ImO+7775mj7HPG33y\nuaNU7fPiuqlYMqHBfOR34u67725kjfVgvyR4yv7GnsTatC8Ya5pnsN/Qvy2Bk5OTzV7Bs5gLr/+s\nHqBpNZAXfieRTazxEd3s6ETb8htjC7YztTOHyLLniPH7ZqfPH5D59xry76fhaFbmwr+j9pNkXSxa\ntKhjHfe5gHXDOOwLmqFapCoqKioqKioq5oh5s0hFtJYnayyc4AGnXSIlRkdHO/WZvva1r0VEexpF\ne0FT4kRsaxfaHidVNFZHwwFOvyMjI53K0W7LSdjRA0RKGPbXYgzQ2FcnzbXCHHUGrO1yv9xnYYro\n1hp07qM+i5f7sGUKOGIQTT3L+cSY8FdBAyWSrLR4ua6hIwitSaOJ8Op21rx439Gem266aWf8fBeZ\ns+xZXhwpBl+wBmRzVFqw0OpsvWJ8WOhcB81WMOYZvy/4SHtrx08++WTzDLR1tF1r9dBGX2jxfeMp\naYdmZNjRYBFdXyhH4dg66hp0rufocTLv0MAr+0wp664H6txdli1HMdE3/LNPpX1noHlqaiq1pOCn\nw7ORLctmNgdY6ky797qlS5d2rBygrAkY0c5BtrfwLNYe68bWJFCOHZ5jrfH8A/fJrYH3Lr7P747r\nI5r20jLMbww1ZjMrEPNvC4yjOi0froNZzqHXOd/FQmernuubMgfsL5YP2sNv5Il2JR/oI/OR8s2L\nnwH82wT8G8j3lixZ0lnP8BT59e+jfeoyVItURUVFRUVFRcUcUWvtVVRUVFRUVFQMQa21V1FRUVFR\nUVHxO8a8+Ui9613v6txt24ufOnGu4zQ5Odm5/6TODjWCuNt0fS76pi6T61txf+u7bvLnUINqcnKy\nuTd2Vmz6Pumkkwbed0QDljnGSd0f4IzpjJ/aTCeddFJzzwzdjkKgrWtnufYUr7Q/7rjjBtrbb4PX\nj33sY01b31U7eoIaYdRa8ufAdcJcU4y5Ke/MoZu6XKYB2vib9tSIYo7o274Ubg8tpW8B9HziE58Y\naEuf+GEg99BC7Szam+fmK+0Z6/T0dIfucn76aMnyLMHzk08+eYAW+5ZBE3N63HHHdeq3OToz43nm\n08C6oL6h/d08t+edd16njpvllnF7XTjbPnz0GjUfXV9ybGysmR/XTnPuKddxZP3bV8j+eK7l6P7L\nvrNaePaVcR1H+nY9M+8vrm9W7pseJ3XZaMsezXccrQbtniP7s0Fbn3xltx+0hS/0aV8p70Uep/nI\nKzULy3qLtmZ4L0JevB765DyiXf/2B/Q6+fjHP96pb9kntxHtfLpOJO28TqC9rPsZ0f4eIQMLFy5s\n2rK30Iezpvv3Itu77FNL/6wj+i9rF/IM5tO19hx96300Q7VIVVRUVFRUVFTMEfNmkZqenu5oFun9\nozTy0grgaANr885tZA3FGVldqds0lf1bS7NlxXWKsvp32VgcpdCXR8aZlkGm/dg6Noz35ldfHSza\nZNqf33c9xKx+EzD/0KqyqMAStnqYFsuJtaOsb1s8yrpehvseBs+Vo1v62jlaNeO5I4GycZrnw2S3\npHOYPGQ0+nPD/OibG2vOWV3LjGbXi/S6svZvq3TJl8zimtHv2qOe0yyPmOVqbGys8x7Pcn1LRyGW\nfZTPthXY/Tv79NTUVFo7Fdiq68oIpt17crZHl9bHbB903xnc3pF1w9Z2yYfMYlS27XtW9rnf9z5R\n0u42XoOmxdawYX7NthayRzsbefl/r6XZ/v67H9OW5duanp5OeZo9Y5h8NO1m1aqioqKioqKioqKD\nebNIlT4ozllhjdSaV5nDxH5WzuvCyZjnuT15mOiT3DTklchomZiY6Giz1hhstTCyzMaZZtGneTE+\nXhmfaXHdpsx6Zjg7eZ8Fy3TZQjdMYxjW3loxY7VVpfy/5y3LTcK4kJdsDgG5YMzHjRs3dnKrDNOG\nM7lw31l+rZJvXkOZtmuNui8jdx+t1tz6LB5uY4tsBvvpZdaULDda+b41aFsvsr4z66jliDE65xs5\ngcp9zbJjn43MOmKfKF4tT94vyhptzlHmcfEd2mVr1HwwnwC57ko/xmwt8jd77bD8Qa57Cu+hPbNI\nlc/KrN5+f7bWdfsKZZap8nm2dpoW5zIE9DlsjjKfqj76hq1J+wpmOZsMW6a8tiO6+bPYe/lOtk/y\nPnxyPjLTQE4r73l9fWfIrONGtUhVVFRUVFRUVMwR82aRKjX/zBIBbPEpo/Z8eucE6TvsPutFRFcL\nQvufjY+E/UiyzNa2GmX+OvyNRmrN1JltSyvAsHFa05rt3be1pj7areUafp/x2D8ju6/2PbstNH13\n4h5f5mdkC1um/QOezVyWGqnnx1F3w3zeMl8K+854jNPT053otGxeod+WqEyrs/+KfchKWjJLi2He\nwjfXwXL7zGpQ0mJZ9Hczi4TXKLBGmq3dvooCmc9LJueOcoPnrmVp2u3Xaat7+R7WHFv5Mv/MzEpk\nWlwJYP369b10lN/NLO5ZBn9bLjzHoLRgZxZ4w7KUWUHdzvvLMIt22WaYT6Wzx7uvzBLXZzVyFCKv\n2bqwJTK7mfGz+R5z7+jX8v+2TPJdrJvAEcmONM6sxraiTUxMdHiaRdL6N2kY5u0gVTLW5uXMfNhn\nlswOLxYqGOWwdooS2vRJ+5kYSVubQU0Lm3MWzg58YMgcRMvnZ2HJ2SYGX+wcm20Y2ULrw7AfPOCF\nYPNvdlWYlWvoo9vfyX4QfHj1uH048uY9mwPpbK8ZfY0626vABQsWpH0CeG6nYW8gGU1ZAeqSNrfN\n5NyHvWE/EFkKi74DvJ89THGgD4diu7i52yMvXrMlLZ4T7yVZiRi/P4x2H3qffvrpNAgHeL/InMef\nbb7mklYfSt2Gqxn/WFtueJ/DGmty2H5RwkqK37eMzeSwXPaT7R9gcnIyVYAM3s9+e2br+Nx3IM0U\no2EH6eyK2+19uPU6LMfCPDoFz7CAIP+++HfVtPSlPsmUGx+gnu1Bql7tVVRUVFRUVFTMEbVETEVF\nRUVFRUXFENQSMRUVFRUVFRUVv2PMm4/UCSeckDrocer75Cc/GRER73jHOwbaTUxMdO6mKZtQls0o\nX7mrxaH1nHPOiYi2XAn3qSTotM8UqfMpV7BkyZLOvbtLPhx55JER0Tp48jkOv/gIfPrTn254EtF1\nMuZO2Wn8TzzxxI4/he+2XU4gKw3icgWk/Df/oAWfkgsvvLBTTgD49E5a/ve///0DfZgW7r4pKXH0\n0UcPvG952WSTTRoeepz20+BZtKdEAM82zxk3pTOQl5n8npBbl+Ww3x7jcIkg2jlJLLRTgoYSRGNj\nYw39TuNxwQUXRERb8sc+QP4b2Tr22GMH+mGuoI11Ah/f8573pL4gyD+0vP3tbx9oZ78K1gftKW9h\nR3fKUMCniy66qDM/Gc+ZI2TLtEA7IdQu++S1XwZQMJ/HHHPMQF9Zws2sFAbPdhoJ1gXt7f/2+OOP\nN+P1vkgb9kHWB3sRfbPPuT17EDyn/RFHHBERg3489k9EVujbco6MMW72LuY/K5nD+/D9rW99a0QM\n7j/2CSzltqTVDvzAZXyQPQdIwB9oP+aYYzrJW/1bhJy7FJbLeTEe5pRyaF4/8JHv/cM//EOznp22\nA7485znPGaCF9vYVtJ+Wy/LY964MnDn77LMjouW5y9TY74x9jr0LGfW+Alyai/6hpaQduin540Sz\nLkdG3xmqRaqioqKioqKiYo6YN4tUCVsmhoXcTk9Pd6w2wNYhlx2whcIe/2gaWURRqfkPK4mRJRLN\nQosdteAyDW4/Pj7e0bhdAgSgxfG+rVxZlNJsE5L1tc34khVMhib34xQFTrJaahpO0pdZgwB9WIvr\nK/lRwknixsfHOzy0BYLP/SzTniVgnSmalXlnPE4R4XXA31nYP/3x6jnrQxbhmSV/taUWjTOTRctJ\nn7+CLQqep2HpD8yfYWs6+37ZBzz0d7yevRc99thjEdFNLAhsZSstelmkrK1EWYJGv0/EMHLVl4ql\nbDc1NRXLly/vHSfILBJe//DRVjQwUyQmvGH/s2zZosjnWQJX02RroWV9/fr1HQtTn4Wk7JN9INtP\n/Tffw3o8U9RiFhGa7S3eD0GWwgQ+OEFr2d6Rg9nvm2ln3SMHWXRjFoG6cOHCNJ2J12+WHDRDtUhV\nVFRUVFRUVMwR82qRsh8Sp0DnqnFStcnJyeY71rxt1eHuNysnQIkYl0zghJpp9uPj4813spwTzpdh\n7SfTAuyfM1NJCU7nvLp8AkBDsEUhK52DNgktvPp7M9E57DQP36Dd99LAc2Jtoa9EDPC9u2lC20e7\neeihhwY+9xzBx76cYZn10qU/stwkjM/avpPnAeZoeno6zY8DbO2xb0dWWDezWMyUt4rPLIMgK76b\nWY2h3SVH6Kcci9erLZLD4Nw0w/Kxsb/0WUdtebZ2bnmBdicazNrzTFtyR0dHO3xg3s3LzIqYJcnN\naPHf4+PjjXXK1gwnhbSFwbRAM3PB2OwjVz474hl+e6/1emYN0ZfHk82RrW22roINGzY08+M15TXo\nOSPHYWaxcdkv7xMl3+2X5d/a2ZbtgkbvNzyLOff6KfluH2FoYO/NinlntHhvypJrjo6OdubHlnpk\nqS//1UwYapF629veFitXroz999+/ee/hhx+O1772tbHXXnvF6173uqYuXUTEWWedFXvuuWesXr06\nvv3tb8+KiIqKioqKioqKP0QMVdOOOOKIeNe73hVvectbmvfOPvvseO1rXxvvfe9745xzzomzzz47\nzj777Lj++uvjS1/6Ulx//fVx1113xZ/+6Z/GzTff3Gt5mZiY6PhGgEzz6ivDYMuAyw+gnaAV2CLh\nYrU+iXLvDMpMr77T9zh8j+6ovSwtf1auxJr66OhoMy5HMvmUvm7dugFas9IfwM+yT81MpTAynwXg\nLNLAhaaBNS9rV6W82IcD7STzebK26AKpHgvyYItln1XIFoWyfEb5OeBZpj3zeyoz3TsC1tqrLbJ8\n174NAD7YHw0LjK0M5fctv+7bvh22lrhvF/udyXdsmLU385GAt7MtoO21aT/Psi/6dqSk5wirhvci\na83ZWErLnn1h3Mb7o+fIVuCM94DnMdaFCxemWcKzig+sRfPFvmK2eHq/6LshgC7/XtiCb7/GzFKX\nZdM2Fi1a1LG0s29lFihHGALTwp5u9GUIt2UoiyAF0GYLU5at3nscv0N9Prjw3OWqsqhsQDvkJPOl\ntJ9w6feU/c7ZKp7Nf4ahFqmDDz44VqxYMfDeV7/61Tj88MMjIuLwww+Pr3zlKxERcdlll8Vhhx0W\nY2Njscsuu8Qee+wRV1111awIqaioqKioqKj4Q8OcfKTuu+++xrdo5cqVcd9990VExN133x0vfelL\nm3arVq2Ku+66q7eP6enp5vSX+TkBF+9ctGhRGk3mSABO1C4yCdBEHNWR1c8ra225rbUS50ey1pvV\nt/N4s8iJkgeZNgt8EueO30U3s/aO+is/z+6ws9N8ZjXxnTbw/Tt/l9ovsLXPOXysHcM33t9ss80G\n3s/40lestC+qMqJbUyzzS3EOlmHWkVLe0HKzyCdoySLF3J75pl9owSrgNbt+/frOWsnq8zkPEJ9n\nkZVeV5n1qHzP/nqMf1j9Que/yaKcbF3qs764jqWtGX0+j+V47GNlebGfS2nRzLR6Wzuy6KQ+6/9M\ntPh7pf+PeWw5H1ZrzXu5965sjFNTU50C8JZF+8TQLotStXwM8wddtmxZ57eE/cBrCCsO4/M6MWyh\nx3+zz1LnHEzD8kPZmoqc2HIHXDDb+26fhRj6Mj9Ew+shs6baWlxaU/t8+frofbb4X0ftjYyMzOhU\nXMvBVFRUVFRUVPz/FtOzwNq1a6f322+/5u+99957+p577pmenp6evvvuu6f33nvv6enp6emzzjpr\n+qyzzmravf71r5++8sorO/1FRP1X/9V/9V/9V//Vf/XfH8y/DHOySB1yyCHx+c9/PiIiPv/5z8eb\n3vSm5v0vfvGLMT4+HmvXro01a9bEi1/84rk8oqKioqKioqLi/zyGXggedthh8YMf/CAefPDB2HHH\nHeP000+Pk08+OQ499NC4+OKLY5dddol//dd/jYiIfffdNw499NDYd999Y+HChfGpT30qvdr7u7/7\nuyZtAveSW2+9dUS0d5zUw6G+Fd76k5OTHf8TaqFR84m+8Om47bbbIqK9E/2Xf/mXho6Ibk4ifGWI\n0oIWai1FtNEk+ANAC3WZqPvF+Pic6AxoueSSSyKirSnoPDKOCqRO1Dvf+c6GVzvvvHNEtL49PIPa\nSdCy/fbbR0TEDjvsEBERN9xwQ0S0fhmu44VfAnfjvr8/77zzmr4dXem8P9QUYz7djnt2XmkPz+07\nxBgnJiYaHtKW8TD/zkVGLSzmn2g05vLuu++OiNZHgPmnZpn93rbbbrt48MEHIyLizDPPHOibunTI\nwf333z8wDtfDQ654hqNBmf93v/vdTT/2M2C8lkV8G5lXeMjcUYOOWlv2MSFSCD5eeOGFEfFMzSpH\nwGW10KDbkT2Mk36ob8ecOi8VNCE/5513XsNzxsf80zeyRd/UN3MNsi233HLgffYX1gXPxi+F/WXp\n0qVNW9fxs38Zz2KO3DdjYC9jrlzfzH4eGzdu7NSrYz55Nq/ILH9TUww5tx8rvGZfRBbpv5QBr2v4\nwvxvs802A30h915z1OaDVsbJHoYcsV9Q4/Dxxx9v5oe9g9+Qiy66aIDuLbbYIiLaNYmc8yzkhdps\n9rWxbEL7scce2/hhOds3r5/73Ocioq0RyF7kqFdeoZ39gn74zbK/47nnntvw0PmxysjfiJaHzD98\nYB2wP/Is17fj98ER2MuXL4+zzjorItpae661aL8tfosYJ3KBvDBO+IWsu35qOZfQx3yalswPlTWa\nYehB6tJLL+19/7vf/W7v+6eeemqceuqpw7qtqKioqKioqPiDx7xmNt91110jotVibrzxxojoes5z\nokQj22effRqtzZmo0W4feOCBiIi44447Bt7nRAo4BTuLbJYJnRPq7rvv3lgW1qxZExGt5gico2dY\nRla0IUeSYW1y9t3R0dFm/NCJ9SOzBMIXNAa0vCwjOM9+5JFHIqK/Hp61nGxcwDlH0G7QLKARoIEw\nV8gN/L7zzjs742S+4Qd9OvdKWZ08orXY8D5yYTC3e+65Z/OeI6UYd5mBPKLVfk0LfW677bYD32fe\n3b7MfbXddttFRDufzvYMsAJvtdVWERGx4447RkRrUQHOxs8cIbumZXp6ulmTw3Lx8Pcuu+wSEe0c\nsY4yvtga6hxvEd0IT9YHPM9y80Dz7rvvHhHPWNcjugojsu39oS93keWecdgKBKxhM1dYR007+wT8\nwNr82GOPddYEdN97770Dz0bWDOc0g59ZnVBHpJb5kzxPjirDEoWcO1KSdvTN9xm/97oy6pHUPVgk\nHUXOPgENtqpncwStrAvky/vF1NRU0wdWQnjq/dxWP1v/LE+Mc9WqVRHRyg17dWltYk0hKzvttFNE\ntFYyIu8B7dhjneMpy7LunHDO01cC+mhTRuWX8PwzFtcmBI7+LKPhPZ/wlD0IHsKPLGLSqLX2Kioq\nKioqKirmiHmzSK1bt66xLHCaR/OyBstpF2vBqlWr4p577mn66WvL+7TDcsDJE/iu2O3te0K7O+64\no9Hq8aewLwunXzQnNNEspwl8OOCAAwa+jyZ+8803D7Sfnp5uTszQjWblcXIqR+t3rUJb6tACbB1z\nVtqyb8NZlA2sBWiJmdXAGhq0QmNplUTbQ0vBaoi2g8YB0EjWrl0bEa025zpYgLEiB8jZwoULO5o0\nNOCHBj9cY8rjXL16dUS08s7cXn/99b3tH3jggUZrxYqRZf296aabIqJdazzDVgNoZL7pd6Ys27SF\nh9DH+gBooNCArKKxm488k7mlX9fHimg1ZfuLZBY61iIaKOuHV1tHoRH/Hiwel19+eUR0LRgReRbs\nvrZle6xHjBOfIOD8ZPB5+fLlnflBnpFXLBJYBW+55ZaB9vCY7zGnyInnFL5gZXn88ccbnmf1SukT\n2GIPkOUXvvCFEdGuK68H0zIxMdGMF8tLdiPB/MNL+2MCfptYD8wRMpzlTItoedYntyVtzD+0s9cg\n0wBZ59YFvtiKXI6DvZJn24cUIFvcSOy9994D32d9AFtbWReuMxnR8tB7tWkF8MX5uOjbPHe1D+Z+\ncnKy8yza8rto65d5nqFapCoqKioqKioq5oh5s0gtW7as0dSBI2wAGgqn4LIYMlYMt/VJOotS4CS+\n2267DXzPmVoBmscjjzzSWArwM7C1wzXSnIHYlhw0evjiukbW1JYuXdr4RVj7M92c3g888MCIaDUw\n+OI7bzRRNAz45vv+iMFaRn3jy7KD04d9q6yRoFFAw5VXXjnwPD6HJxGtFuMMxOaL/W7QMNEGbdlD\nU+WZ1157bUQ8o8FYS2e+rSFlNeUY9ze/+c2mz4h+nke0fN1mm20a7R66MisAVmDWUp+FsRy3x+Bo\nyLJ/5gNZyqx69O31XEZAlnA2bawBzGlJi3nMZ173Br4gaNysQWukrEmsw/CF55XWV7Ry+xlhBTTP\n+S6yh7VoWJZy1s0VV1wREc+MObNIY0lDzvHp8V5kiwz9OVu727MGRkdHG+uV93PPJ3ICXzILxa23\n3hoR7Rwg6xktm2yySWMhY5263Bnj5naBvpHlrMIDfknMP+vE1pFNNtmkY/Xok9vyWTzb2cUzvyT2\nOPvMlXxh3Ox3rkdneYEG5Nw1WW3Bguc8Gx891k9pCWT8zB/PhhbfSCFz8Iu+oNHtAWMs60VaFqHb\n8+79YxiqRaqioqKioqKiYo6Y16g9TpacnF3PJ2u/bNmyNHrA1hHnqPDp1bW4fO+anXZXrFjR+U5W\nGRuNy3WarGm6/hXgRN5X94/v2NplWlwxG03BWhBw/SbaZ3XfoKfsE2S5OeALp37nzwLmM9/rs6ZB\nn6Op6NuyZflA03StNmANFE12amqq4wtmHyFr4uY5tGNldY1F919GRTFPWeSk14u1QPPcNSiB5ayE\n86n1+UdEdP0zsAbb9wFAG++jXfdF1DAetHNHzpqHWE08n7TP9hfze6YadPDFNTS9/p3LznnYMgs2\n7/OcxYsXd/r23oGVw7w1LbZMZXucrZHj4+Md+t3WdTGxHmWRUpklxygt2+xbWTSzfWJsWcraOx/X\nTL54tihl0ayO7qa9o2EB/PLe5bxTJejDkePIEvC6cW67YXs6/dOupAVeeY1llld4zpy4dmVWJ5R9\nqHy2ee7obvZe0zgM1SJVUVFRUVFRUTFHjExnJpff50NrIeOKioqKioqKPyBkx6VqkaqoqKioqKio\nmCPmzUfquOOOa+7Qs2yj1CyjNlt5f+2og7PPPjsi2po/gHbOnkqtPer4cD/LnbozO7vW3sKFCzt3\ntvRBTaGTTz45Irp5b7h3hXZqkNEe4AvCXThjoO7P8ccf3/TljM6uhUb9KVsDfWcOLfCczxkjvjO8\nnn/++U1beEVbR2FQC4k58l03NLsenvunPTRMTU11aqHRN6/OYA4PPf/2kYCvZ5xxRkREnHLKKb20\nPPnkk804Xa/MecNcQxHZok4ctDjqjfdpT52o0dHRjp8hfzOf1JTjc9dBA9Taom/XtATIEevuuOOO\na8aJLCGvrEHq+L3vfe8beLb97nil1pbrmzkaFD6ed955TX27zPeLOfjsZz87ME5rmo7yo6Yc8uV8\nQ4xx4cKFnZqSHle2/l3fjr7tf1Wu/7I9+8VTTz3V4eEHPvCBgT6ggXFCP+Nkv3BknH0qGSv188r6\nkI6E8hp1xCNgvPCF+Ue+TINrs7KmFyxY0FkX8Mo1JR0h5/XNXsT6B4768u9R+TsH7EcFz4866qje\nvgH9wEdk12seIOsf+chHmvWf9c28ffjDH46IZ2rsluNxtCbtv/CFL0RE97fLud82btw4UH+wbOOc\ndbxSPxXZBfYVY/4/+MEPRkQri2WdP8bCvFJrD1n0GcRzBO0ZqkWqoqKioqKiomKOmDeL1MjISHOS\ntDXAsFa5cOHCjoXBbTmlO/+NT+2OkOAUm0WngMnJyU5kgr/jCLFh0QmuNQQ/stwt5bPNI7d1zhme\n4ShH4MhC194qx2ZtzJFzRmYNyebI/VjT7cvibb5YcwSWQbTeLEeJI2vK5/k9W8NcA8pwtM0wPpbP\ntnUmowXAhyzrvK2JzoXVRzvPpu8sLxifI0NZLjPTYhnvi361xmyeZ5GPbm/raEZL1i6iKyu2pDki\nKIv69LhNe19UWJZlP4ugy3hP+2F5hEBpLcoigh0hx9rMaPQcOqLKvC/3NEenmeeOzvbcZFnpHXmb\nZfyfnp7uyBjIqg9klv2sHZ/7ZqTc68xDr+dMFrN59liyfcc0lnTxW0IOvGx/RDazyhZ9NWgjulF+\no6OjaV1G0z8sR5VRLVIVFRUVFRUVFXPEvFqkfHLONFhOrpwwly1b1qkEDnznzymW/BDWGFzNnKzJ\n2f19+Ty0HZ7lvunDGpg1B0B+FF7xT8hqM0Xk2l52qrcWl2mi9hHxHXLZf6ZBZvPJnNhamFmqrBVk\nNEd0eWStznyx3w3wXAHnsCppy7QX+2fYZw5k/LLGCUrN3HLcVwuv7CPTxE2z12aW02zJkiWppcV8\nseUq8wUBmeWBsZTt7QPmHDSmzTnebEXK+OhalVgyy/b4etjS6nxCwHm0rBV7/tmbGAOa+lNPPdWh\nm3xZmc9blqnaczWML6WlLsvdZSs3dNuvBtjKyDPYP8zH0rKVyQ5g3hifb0eyNeqxZTcZ4+PjnbXn\ncQFkCQsLfMjySDGHWe68sr1/JzMrL7CV2HOY3ez4b8ZU8gXeMU5eybeXVXCgL0CBubIAACAASURB\nVCqIUHXDvxfAOcSefPLJzu9a5kOb/UZnmNeEnN4wfPgxYMLExES6oTNwmE0JFR+w3Cdg84OxWWHR\n9evXN4euviu3iG4SSG+o3sy82dG/k6OBRYsWNX17czYPnWDOJlcvUpuuae+ki+V3s2uULKmd/3bi\nQuDNOzuYlf/3BgqfssAGX/05UScgMR39Y5bebLPNUqdZH7SzqywnJuUgjVxkB7Xp6emGDvr0ZuSN\nE7lnk7a8WE7849dHi8eZHUbdlw+a2UHSV0UOlCi/67IS7guw3imV4mCDviS4Ea2c0H/fdYrHO5Pc\nRnQPafCzdOAu4cAPSstMT0+nV7tek5lMWUl08sRs3y33DQd8mO7MJSBL9ujDTnYt1SfT2T5nGp1w\nN3Nspp1dB7xflA7OjCtbFw7WsKxlV9tOBkr/ZTJdX8n64GBZtIIBmLvMFYRDEX+zPkpa6JNybMi1\nA8IAxc3ZsyzDppF+eC2v/rIk2F572fkiQ73aq6ioqKioqKiYI/5POJtbK/JJ3e02btyYmtycun9Y\nqQTg0g++IjDGxsY6ZVfct7U5axrWpCiYigUCYPJ0/wsWLGjMlra8ZOPLeJtZgXw1lmmZ5Xey1P3A\nzrEO3x2mkfoKrGxvGoYlf3X5FZvuLZv87SLRo6Oj6fVIVrQ6uzawdpRpXmVJIWvQmandGpdDyoGd\n0X2V2XdFbitGFiSRWUsyc7odQo2yfXb9ZxM+sPyjibvgKbC8OFijtBplVy2ZNcjWDxdBz0on9TlQ\n2/JqixHavcv5mHYXge67Ti1pKANkHFQAvP7t0G459xUnV4G29JuW8sobOc9KhPlqN7PUQWNZCLcc\nS5811YE9ICttYovusCAVMNP1mwMeTG9mqfFeNSxgyjT20Y5ce76zK2wsSsgsn2c3GL6Opt9Fixal\nbgbmS/Z7maFapCoqKioqKioq5ohaIqaioqKioqKiYghqiZiKioqKioqKit8x5s1HivIJEe29NHfe\n3EtSfoDSCbyPX1BExP333x8RbZp90sNzn8p9LHeh3PWTwj8rncIz8JUgRTztJyYmmvtUl/KgremG\nFu78eaX8gMssGNwFUzrhPe95T3OvzniJ9MMPAb5QfsS+PY6AoXQCZRaYE/hGO+61zzrrrIZu4Pv4\nslRBRFsihM/vuuuugTHQ/p//+Z8H+ALNzA3fW7BgQSMrLhHEHMF76Eb+KClCqCxwJOlnPvOZiIg4\n7bTTIqIb/bZx48amb+afchL4vBFVZX8T5ujtb3/7AM32qaM95Q3gy5NPPtnwzD6CWbkiotWYX+SI\nvinjsHLlyoiI2HbbbSMi4r777ouINvSYcjinnHJK0yeRjdAEb5FzxrnddtsNjNcRtS77BP+QWVKa\nEBl0+umnxxFHHDEwTkeb4V/DHFF+xMld2VfwmSzHWdJq36Knn366WUNHHnlkRLRy7jB2ZPL0008f\nGCc0Oz2E55/+7Xu1ZMmSpi08L8umRLTRzIyT8TBOaEH22FecFJF1x75YRlTZb499C7lF9rxPuNTS\n3//930cJ5Al5cAki9rqFCxd2EqYyn8gWexHj45W58b7IOmIPgs+sC6I/KW9y4okndsp3sTbpm/JT\nrDlgnynauxSOfzfpn+eec845zXyy5nbccceIiLj22msjIuK2226LiIhLL700ItryM/SF/65/P9i7\nXDrngQceiIhBP0HKlUGL5RtfKPpm/pGt0tep5I9LBMFH5oi9esOGDR3ZYv2zRzu6G5mkLE+GapGq\nqKioqKioqJgj5s0itW7duuYUiIZOdFoWzcBpeptttok1a9b09uucRFlBVOCcPXyPk6nvRNEKHnvs\nseYz6M+iTbbaaquIaE+3aOymhffpD82Lk7qjX9avX9/0OSz/iaOvnPvJgG/33nvvQDssE8xFRDcn\nif82X7KU/mjJ/hw+OKKiL/oJLRUNCp7R9y677NLbt/MAZdFJ5GuiXzTziG6OKmhxKZSsXA3v8z0+\nR34MZPbhhx+OW265JSIidthhh4hoNU6ABQnZcsK8LGJs1113jYhn1lxEV/MG09PTzXq2NdiWJnh9\nxx13RESrUUKz5YW5wOIFDfCnnFNH8mSRfqDUVstX9pwy/01Eu86Yd2hzpG1JryPksPJllmcnqmRu\n2B8A7zuScHp6Os2XxLqlb3L09CX7Ld93BOqwfWNsbKyTiw6YH8yZE22aBvjGvMPzvmhmxsz8Ma9Z\nKRR/nq1/sNNOO0VEO8fsC+7/iSee6JSRgYe+yfC+UEblRnRlGUss68jroZSBrbfeOiIiDjrooIE+\ns1xcnjPnp7PsMqdOQu0yahEtz1y+x3nlAHODhYnP6SfL9YZ1sYwk9XzSFgsatKxatap3nBmqRaqi\noqKioqKiYo6YN4tUmRmcUyCnXWfw5US5YsWKiHjmZJnleXA+GPq29Qug1VvzBD6RoomvX7++sRRk\nJT9cANe5fKw1Qgsnb5dAsAaz+eabN+OxZcraS2aByIrXctr3qd95U8r3XCIkO80zDqxEAM3z1ltv\nHXjfuZ1crqK0BNm3ie+gMTEeo8wKHdHNWA3s54JcLV++PM0mj/aPVQfrEFYzwHpwpm/GaxnFQvHY\nY4+l1gmApSrLk2TrGGuNdjfffHNEtJqbLRj33Xdf8x6WZeTYFkZkE2sIMgzPSx/I8llo/ba+lhYs\n+8Ix31n5HWv7nl+vUVuJXAGhXHfInC2M0Oi9yFaQrJQScK43MD093ZlPLChY/e68886IaPlUWlYj\nutnj2ZucdR24nMno6GjHugcYP33ax8cWSdYN7W+//faIyLNvsyZHR0ebcfUVz41o93PGhdwzN7bU\n7L///hHR8hFavP5KWjILm2kp/S3L8bkMjceJfDHWvuoWe+yxx8B70M13LUPe983rrJA8a9g55Up5\ncX456EUu+ip4RLQ+kYzbmdwBc9dXLNptGT9t2bvMy2GoFqmKioqKioqKijli3ixSm2++eXOqtQ+M\nT6ScXO+5556IeOb0y4nZp3ROqS4YygnZ969Zvacsc2tZUNg1nbJTemb18WmXk7a13Cyz85NPPtmp\nsZYVI0abc/2mbLy0QwvglM9rSYstUs4Sm/lTMFeOgPP8ozXAPxfCLLUpPsOfwlEm5iHjwRrkiDrz\n0bX2wMTERMfy4uzBaL/24wO2xKCh8X0/k7GsXLmyE21ii4ELhKLloS27Jh3rBKsRcwCf+jKI4z/H\nuKDbfUMjssU6cr0uj5N+Xe+xHGtWzLxPViK6ma1Ni+HIQct6KS+ev6z4LmActuRl1QccWQTt9qWK\naP3KHKWX7XPsn2jm9nfymsZqVEbiZfsioK1rlnqfxAqKFQX+IVee09Iq4kz+XkPIPzz3nmXaoRU+\n8sre7d+XpUuXduYdntMX6MuOX9Ls3wv7Flp2S0sYvCM6j9+NzP+Kv22ZyQpFuyh4Vuw8ol0XtHFl\nC8+nrb+2uGVzCkoaskzl3I7gS5ZVH8lQLVIVFRUVFRUVFXPEvFmkFi5c2Jz+0ExcSRtgqShfs9pZ\n1s6yGkvAGizt0chMC/1PTU11NKjMquPq1lmtNecA8im/D9ak4ZH79p23eW1NCiuhtWqsAaXm7Qra\n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\niTvvvDPOOeecuOyyy+Iv//Iv48Ybb4wbb7wx7r777vjHf/zHuPvuu+OJJ56I3/qt34p77713sIDW\n/v37eyfGoRocyBExOnnOzs72rDrgE6WtHZ/yOdVyksYayKgkWuvC/bJl7boYfr9q2fne1BJZ7Z7F\nxcVe9kiWbcLnzpDK6ArsechoYIaQFeb095bNBJnGpDozrZzozNadf+uMKsbKdVCA6xS1GSSZR873\nor8uPOcsR9dy8fxp74c87RppwVyyF9i1jYAzRSeFUu7ataune9cuA4yBvWNZnST6wrzgPkNFcz0G\nHv8sg5Df8T3rw2PkdWEanzbLLys4mq1n95+9yfcEjBFj29a+yvbWrKaT23ZmmQubeh1Z9v3793dt\nZGsO2PtnWfD+IGtGig4YA2cutt9ln5uc2x485qD324z25/nnn+8VkkRXWV045g16yfZo5qYzKe35\nbuG9xW9iDM8PE1EDk8I7u7u93pRQkwqP0n/Ww6R90Zm5YGZmJt2jTfGEbC9JHakjjzwyzjzzzIh4\nwQ33qle9Kp544on44he/GO94xzsiIuId73hH/NM//VNERHzhC1+It771rTE7OxvHH398vOIVr+g4\niAqFQqFQKBT+/4YXHSP18MMPx7e+9a143eteF08//XRXOfyII47o6uM8+eST8frXv777zdatW7sq\n3cbatWt7Fib/9+nYsTQLCwspkSmnW96NU1uFOlGZNWhrkZO1ZWnpGmz5ZDVKXIMjq5fj98+O87Cn\nZseOHT1rhdO4rTGsAF7Dog+svawSNid1/qLfVu++ty1LW6DIknls7AWgfcYmI7Fsv7MllXkwHQPk\nelPZ+EPjwDzZsmVLj2aBd/605UrEWS0WrKFJljd45plnesTW9oYw99A93zP+Q9Z7xPiai+h7BcDj\njz/e8yzYYnabXO+2s/gNZCd+cahqMm23RKXt5x5/e1oZE9eIA8T9OD7S92mvsecsi08jxoX1z5gi\nQ0adZC/a6tWre3J7TvGbLGaG+c1853rG1B4JYlF5Lhx88MFp5WnqxnksaNufZ4TDQ8wG7pOJa90G\nNftM0sw+Z53TF8ekIrvXdBvPa0+U1wVtueaXK38D9iqev8wXe3pauKp+RsuU/T/z7MII4jp2zItW\nLzA2UE2e75B7ktfQzxfPRfTseTE/P9/bt6CGQsf28r7YOlIv6iC1c+fOePOb3xy33nprj6l5amrq\n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\nubnB+vXrB2vXrh0899xzSyL3iwnjxuCyyy4bXHvttb1rawz2PJ544onBvffeOxgMBoPNmzcPjjvu\nuMEDDzxQ62AvIhuDWgd7DnvVI3XPPffEunXrYs2aNTE9PR1vectb4itf+creFOGXGgPlFfzDP/xD\nvP3tb4+IiLe//e3x93//90sh1osWr33ta+OlL33pyGeZzr/yla/EW9/61pieno41a9bEunXr4p57\n7tnrMr/YMG4MIsbXg6kx2PM49NBD4/TTT4+IXZX4TzjhhNi4cWOtg72IbAwiah3sKezVg9TGjRtH\nytCvXr26qtruJUxMTMQb3vCGOPPMM+PWW2+NiF30GJARH3LIIR1dSOGFQ6bzxx9/PFavXt1dV2vj\nhcWNN94Yp512Wpx33nnda6UagxcWjzzySNx7773x6le/utbBEoExeM1rXhMRtQ72FPbqQaoqmi8d\n7r777rj33nvjzjvvjJtuuim+8Y1vjPx9YmKixmcvYyGd13i8MLjgggti/fr1cd9998Vhhx0WH/jA\nB9Jrawz2DGZmZuKNb3xjXH/99R2fHah1sHcwMzMTb3rTm+L666+Pl7zkJbUO9iD26kHqiCOOGOG2\n2rBhw8jJt/DCAYLogw46KH7/938/7rnnnjjkkEPiySefjIhdxKGQoxZeOGQ699r46U9/GkccccSS\nyPhix8EHH9w9vN/1rnd1ry1qDF4Y7NixI974xjfG2972tvi93/u9iKh1sLfBGPzhH/5hNwa1DvYc\n9upB6swzz4yHHnooHnnkkZibm4s77rgjzj333L0pwi8ltm7dGps3b46IXSzwd911V5xyyilx7rnn\nxu233x4REbfffnu3wAovHDKdn3vuufGlL30p5ubmYv369fHQQw912ZWFPYsnnnii+/+Xv/zlLqOv\nxmDPYzAYxHnnnRcnnnhiXHTRRd3ntQ72HrIxqHWwB7G3o9u/+tWvDo477rjB2rVrB5/4xCf29u1/\nKfGTn/xkcNpppw1OO+20wUknndTp/Zlnnhm8/vWvHxx77LGDs88+e7Bp06YllvTFhbe85S2Dww47\nbDA9PT1YvXr14K//+q93q/Mrr7xysHbt2sGrXvWqwde+9rUllPzFA4/BbbfdNnjb2942OOWUUwan\nnnrq4Hd/93cHTz75ZHd9jcGexTe+8Y3BxMTE4LTTThucfvrpg9NPP31w55131jrYixg3Bl/96ldr\nHexBFEVMoVAoFAqFwiJ6dsjvAAAAYElEQVRRlc0LhUKhUCgUFok6SBUKhUKhUCgsEnWQKhQKhUKh\nUFgk6iBVKBQKhUKhsEjUQapQKBQKhUJhkaiDVKFQKBQKhcIiUQepQqFQKBQKhUWiDlKFQqFQKBQK\ni8T/A2aklexSCttuAAAAAElFTkSuQmCC\n", "text": [ - "" + "" ] } ], @@ -330,7 +333,7 @@ "cell_type": "code", "collapsed": false, "input": [ - "feat = net.caffenet.blobs['conv2'].data[4, :36]\n", + "feat = net.blobs['conv2'].data[4, :36]\n", "vis_square(feat, padval=1)" ], "language": "python", @@ -339,9 +342,9 @@ { "metadata": {}, "output_type": "display_data", - "png": "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\n7hd2Yb58+bKLy/p8afsTPZ88hDVR/f39Lj5y5Eiuz6WvTVqtUxp9HbUmKnzdwo7ytWpvb3fx4cOH\ncz12mhUrVrj42WefrdvzIh+MRAEAAETgJgoAACBCy+t1zjuEU7+bXUdHh4vrudinvqzNcs2LTHnk\noRmveT1pR/qVK1d6j61Zs2bYn9Frrp81M78lQdLCqWZ+egtXF/7JqNd7fcqUKd62pt/yWLFAywV0\n4eOiaQf5bdu2DbtPWdd8tBu67i0tLYklGoxEAQAAROAmCgAAIALpvIJ1d3e7uKenp27PS2qp/kbb\nNdfFXLMuft3W1uZtz58/38UvvfTSiM9Br3nY0fqaa974P6Km88KFZ7N2u8bvVCW1tGrVqmH/fcOG\nDYU+r5YVvOUtb6nL81blmo82pPMAAAAKwk0UAABABG6iAAAAItCxvABai6F1I4CZ2fvf/34X6zR8\nM7Onn37axWHtTtVkrYNSYdfpcLsWe/bsye1YqD6tTerq6nJx0TVR2l4ldhWKqtEaK72uMZ/x0YaR\nKAAAgAjcRAEAAEQg15SitbXV29ZhzrSOtpqGGc0LBmN4Sd23Ub7Jkye7WNsvmJlt3bq13qdTGVOn\nTs2036RJk1ysi6+n0e9Vs+yrEWzevNnFeUz5j1k8edeuXSN+Hn2PmfkLZZ8/f37Ex8uDTt/XBaBJ\n511d9E1Ud3e3TZkyxcaMGWOtra22fv16O3bsmH3iE5+wffv2WXd3t/3oRz+yadOm5Xm+AAAAlRCd\nzmtpabEnn3zSXnzxRVu/fr2ZmT3wwAN29913244dO+w973mPPfDAA7mdKAAAQJXUlM4LO3j+9Kc/\ntbVr15qZ2ac//Wm78847G/pGKkzFxaTm9u3bl9fpXCEcBp8zZ05hz4XGpwu2Hj58uJRz0HSPmd9l\nXFMHW7Zs8fa74447XJw0un3LLbd427qYazgLMommkhYuXJj42Pbt2xOPMX36dBcfP3480/NW3cmT\nJzPtpys0aLotTexi4ppyi0m1hjOnNa1WpLlz53rb+/fvr8vzZqWflVmzZnmP6WzEel2vqqtpJOq9\n732vrVq1yv793//dzMwGBwfdSuodHR02ODiYz1kCAABUTPRI1DPPPGOzZ8+2w4cP2913323Lly/3\nHm9paWF9HwAA0LSib6Jmz55tZr9LEXz4wx+29evXW0dHhw0MDFhnZ6cdPHjwiqFAAACARnD//fdf\n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\ndE/aNZ80aZKLq9ZpvdHoR+kv/uIvvMf27dvn4t/+9rcuPnjwoLefzkrT11NfJzP//aIpstG2OK/+\nvvX8bhnNwvcY1714XPNyDF33lpaWxO9WRqIAAAAicBMFAAAQgZsoAACACJVqcaCrvYdTzmP202mc\nVamDUnlP7Y+ZtlqFOihtzbBnz55MPxO2gdCaoyoIO6/v3bvXxTrVPWwR0dra6mKtjwpbIWi91Gir\ng8LVac3MsmXLvMfCVgtDwi7xVW+d0Sx0xYHYljHNrsrXiJEoAACACNxEAQAARKhUOi8tNRezH+JN\nnz7d29YO5mfPnnWxdss1i+s0nTWFp+dU9UV3NeVsZjZnzhwXa2pOO5Sb+Qsha8pO22GE9Lps377d\ne0xbXeg5hSnApMW/0+iiwPr7mfmLLOvxjhw5krifxmHHfP3M15qaz3tx7aJNnTrVxfp5S0th6+uZ\nlL4Lkb4rjn5+w7SpfpflsRpEkfTci3y/tLW1edta+qJ/f6qAkSgAAIAI3EQBAABEqFQ6D8XQ4eIw\nLZSUGj1+/HimY6el73TR4qwpojR6TlnPryzhkLNeC+2eryk7M78zuaZkNHVm5qfm9HgzZszw9tMh\n97lz57pYF0Q289NsAwMDLg4XydWU2+LFi4c9tpk/7K+/R/h+01SVHjtMc2rq6te//rUNp7293ds+\nfPjwsPtVPX0X6uzsdHEVUzwYnn4GdIH5MFWl3w2Dg4MuPnr0aKbn0WOH3+9h+rxWt956q4v1Oz1t\nIeHu7m4X9/T0ZHqe2bNne9s6i5x0HgAAQBPgJgoAACACN1EAAAARWl6vc7vjtNWQAQAAqiTtvoWR\nKAAAgAjcRAEAAEQopcWBLo5ZL+94xztc/PTTT0cdI+siiHfeeaeLJ06c6OJf/OIXUc8bQ4cedQqs\ndsQ1i1sEef78+S4OO3P39/e7uAqLG4edtLN2u543b56L9XfcsWNH4s/oNc/7Pb5q1SpvO2lK8Qc+\n8AFv+8UXX3SxvjaNTFshnDx50sVlfK+MRmFaQ79fdPp5Pcs2tFVGuDi5tuLQafkvvPCCt9+hQ4dq\nOofwu0a/N7QVTEzbgfBaamsU/VsUruSQ9JkIF6vPux2NHu/mm292cdiaRls66N+irOeg7V3MzJYu\nXTrsfuHfIm21oG1cwhU4srSZYCQKAAAgAjdRAAAAEUZNx/KNGzfWfAztBp029LtgwQIX/+AHP6j5\n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\n", + "png": "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\nnA4bAACgXKOuiRocHLS2tjYzM2tra3P1LEePHrX169e7/RYsWGD9/f0jPgfTxMeey5cvR7Z3797t\nYk0J+6OXCxYsGPFnoW0gMHZo64KpU6eOGJuZnTx5srBjypN+r7a2trr4+PHjqR5PDRQwejXNzmtq\narKmpqbEnwMAADSiUY9EtbW12bFjx6y9vd0GBgbc/3g6Ozutr6/P7XfkyJHImmjqypUrgYcLAACQ\nvyeeeOKW+zTdvHnzZtIOhw8fto997GP25ptvmpnZX/3VX9ncuXPty1/+sj355JN25swZe/LJJ23X\nrl32mc98xrZu3Wr9/f328MMP2/79+98zGtXU1GSzZs0yM7OzZ88G/mq4FX1bqzgiOHv2bBfr1Gw/\ntaKdzvV3quIU36qf80aU9pyPGzfOxXQor43/J6MK1/qECRNc3IiLglfxnI8Fw+e9qanpPe/BsMSR\nqMcff9w2bdpkJ0+etIULF9rf/u3f2l//9V/bY489Zt/97netq6vLfvCDH5iZ2erVq+2xxx6z1atX\n2/jx4+3b3/42bzQAAGhYtxyJyvwFGYkqRNVHRRiJQhYYiSpeFUdFGIlCHmoeicpLGTdPusgt/avK\nN2PGDBfPnTvXxXpzZWbW09Pj4iK/HPmjW38WLVoU2dbFq3kPG9vwf8zNGme2JeoDa+cBAAAE4CYK\nAAAgADdRAAAAAUqpiSpDPdVBaT2OWXw9h18D4q/CXmVxHcenTJkS2Z4+fbqL9T28ePFiZL9au+D7\ntVjNzc0uPnjwYE3PjWJoDRTS0YJs/3umnr4zx1odlBaWFzw3DB5GogAAAAJwEwUAABCglD5Rw+0G\nyhou1t5DZtH02aVLlwo7Dp3ar0vkaArLzGz//v0uTlpMVPstaTuAqvcU0dSZtj4wi743AwMDLvYX\nNA5pSaDn2W+fcPXq1VTPoegTVTzOefH8PxktLS0uPnXqVNGHMybQJ6ocafpEMRIFAAAQgJsoAACA\nAKWk8+6//34zMzty5EjkZzrjSrua+6mWiRMnulg71SalusaaekpzaHo1JI1mFv0ddaadXh9m0ZSn\nXi/nzp0Lel1VT+e8Ueg592d2XrlypejDGRP8PxnLli1zMTNZ80E6rxyk8wAAAHLCTRQAAEAAbqIA\nAAAClNKxfLizdkdHR+TfdZr6G2+84eJdu3ZF9tO6Geqg6l/aVhczZ850sV/DpLVP06ZNc7HfCmFw\n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\n", "text": [ - "" + "" ] } ], @@ -358,7 +361,7 @@ "cell_type": "code", "collapsed": false, "input": [ - "feat = net.caffenet.blobs['conv3'].data[4]\n", + "feat = net.blobs['conv3'].data[4]\n", "vis_square(feat, padval=0.5)" ], "language": "python", @@ -367,9 +370,9 @@ { "metadata": {}, "output_type": "display_data", - "png": "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\nAKPl0jLmx6doAAAAAElFTkSuQmCC\n", + "png": "iVBORw0KGgoAAAANSUhEUgAAAlIAAAJOCAYAAAB8y+mTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXu0XVV1/79XXhXFVitGDUKCPIJJSAIJb0RRELTl0aHS\nWjt8a2VYhjrUWqn0ShltGLVDqtZRWx9gHbXKaFHUIUUoBHmGR0AQJAEBBZVaaavVWh/l94e/z933\nfO+dWWvvs885NzA//5zk3HP2Y6251lnzu+eca+rhhx9+WEmSJEmSJElrHjPpC0iSJEmSJNlWyYVU\nkiRJkiRJR3IhlSRJkiRJ0pFcSCVJkiRJknQkF1JJkiRJkiQdyYVUkiRJkiRJR0aykLrooou0bNky\n7b333jr77LNHcYokSZIkSZKJM9V3Half/OIX2nfffXXJJZdo8eLFWrdunT71qU9pv/326/M0SZIk\nSZIkE6d3RWrjxo3aa6+9tGTJEu2www767d/+bX3uc5/r+zRJkiRJkiQTp/eF1AMPPKBnPOMZM//f\nbbfd9MADD/R9miRJkiRJkomzfd8HnJqaKn5mxx131M9+9rO+T50kSZIkSdI7e+yxh+699955/9b7\nQmrx4sX61re+NfP/b33rW9ptt90GPvOzn/1Mj3/84/Xzn/9ckrTzzjtrp5120jOf+UxJ0n//93/P\nvC9Jr3nNayRJv/IrvyJJuvrqqyVJ3/3udyVpRvH6tV/7NUnSdtttJ0lat26dJGl6enqr1/y4xz1O\nkvTkJz9ZknT//fcPHOfpT3+6JMWNuP0vm/GP//iPt3o+rv8nP/nJwPtPecpTJDX3/eMf/3ir1/ur\nv/qrkqS3vOUtkqQPfvCDkqQjjzxSkvTQQw9Jkh7zmF8KjoTBbd68WZL07W9/W5L0hCc8QZL0v//7\nv3rsYx+r//zP/5Qk7bvvvgPno31OOOEESdJ73vOegePCYx/7WEnS//zP/2z1+uHXf/3XJUnf//73\n5/077cjr85//fElN/9Ce3Odtt902cF077rijJOlHP/rRwHEPOeQQSdITn/hESZqxO/q/ZC977bWX\npMYu/u3f/m3gOmgHzvv1r3+96v5g++231w477FDdjs6KFStmjiM17cs4Kt0f9/F///d/nc5Pv7zz\nne+c93y08y9+8QtJ0n/8x38M/H333XeX1NjR9773va2ej35+17vepTPPPHOoa4+gLZmzuKfLL798\n4JW2W7169cD3Nm7cONT5I1sZFQv1fLvssoue8IQndH7KwdMSxsInP/lJSdKDDz4oSfrhD3/Y6nj0\n90477SRp7tznY+Gv//qvJWlmrh2VoDCp/jv//PMlNfbP63HHHSepae+//Mu/lCQ97WlPk9TM2czt\nzBGnnHKKJGnp0qWSmt/Kb3zjG5I0k8zm7b5kyRJJ8W92iV133VU//elP9V//9V+SpKOOOkobNmwI\nP9/7o721a9dqy5Ytuvfee/XTn/5Un/70p2d+gGezyy67aOedd55ZRCVJkiRJkiwEcNAk6bnPfe5W\nP9u7IrX99tvrgx/8oF7wghfoF7/4hV7zmtfMm7H3ne98Z+bfKEmwZcsWSY1Hj/eBEsCqFaWLhRhK\nGI8XUaRKoEwccMABkqT9999fknT77bdLku6+++6tfh9lpwQKjHtTKBpcR0mR2mWXXQb+/+///u+S\npK997WuSfqkwSY03/NSnPlVSo/AB7fuYxzxmwDNCUYmUCbwFlC8+31aR4j5QTOhHtwf4yle+MnB/\nJSJv7+abb5bUeEG0w9FHHz3wOQbST3/604H3UUi83/Ey+d7jH/94SXPbkXaK+PnPfz6jfHQB5ZH+\nxyuuhevcddddJZUVIcfbi/ul37BHcEUKojCBZz3rWZKkH/zgB5Kadpeaey2NobZgq36t2OqqVasG\nrgW1DfWZeyklSdPmtFmk1i40UBFRAlBr8eJnz/ez2WGHHVqdZ8cdd9Quu+wy872SooOt8fQCNR/o\nL5SoZcuWSWr6raRoMFYY44w53venMSgqe+yxh6Tm6QBzqT+tiOA+UEwWCvyW+VMPfrN5n/lt9tOr\n2fCbRnvQPzwdAf9tov27Kn38BnGe2rmv94WUJB1//PE6/vjjR3HoZATwCDNJkmQh485gkiwERrKQ\nagveF4OEVSXcd999A68oNwcddJCkRjFi9YpiUgurej9OSYniOl0himD1zPfwUlk9R565Ez3Hx6vh\nflBEaC88eODv7tUQa4S3jRIItA9eN3AfrOoPPfRQSc19cv/EDLm3R/9H3gRe37Bw3ZwnWkjus88+\nkhpvlnbnFdWD9sDb4nXt2rWSGm89ardRwfm6lopzb4z+Kak9T3rSkwb+7wol9hX9KH7zm9/c6vFR\ntvByZytXfcWcRCqij9Ebbrhh4FqAuYp7RIHg+9gAcZFAm9OGHt+30GDsYGuooSgTkRJVgjnL23u7\n7bbTT37ykxnlsdTf3r7MeXD44YdLmtvfqPtcx+LFiyU1ChaKCtdHf6GUcZ7ZGexS81TC1WzGCO3I\n91FGsHGUGuZsv26ud1LQDiir9BPtVau0L1q0SFLTv/y2ef/50wnaN5qj6B9+o7AP+oPrZnzWKqa5\nRUySJEmSJElHJqZILV68eGbVyGoQz5nn7Kw+iSki9oJVL14eHix/91Ukq/rIu+PzeBu1GSGstqM4\nBrwIvFLuj/PhhUTZfMDqnMySaJVMPABeEqt5vEK8RPDzcb14DVyvKzauiLnXB3hPeE30M+87JUXu\nwAMPlNQoWVx/dLwIFES8nAiOT//gpdBvtE8Ug8T7xEnceeedVecdFo9RqlWkUErpJ7/OkhKFgln7\n+KVrHJP39+z760uR8tgLVEbHlSiHeyRuDrWcMRaNnVHbCHjsVtvEn7333ltS0+6o+B4jFLVTFAcX\nKYD8JhAjxNwbHd/b1+c8z7Dl+u+66y5JzW8NqjyfYy5GreY6GDuMAVefsSOul+/5UwHGIgqTx6WC\n22nPG5W0hhgz1HgUOTLBXa2OoH25X5QmYszuueceSc1vO4oh7U6/+28rv0X8pvE57IDfBt73mLqI\nVKSSJEmSJEk6MjFF6sc//vGMt+bP0fFSeP7JKhtPmxoSV111laQmroBVrCsopTgDVr2+2i/V04m8\nScCLYFXLdeFt4JWUMjVcKfBVsj/HR7HhviPPn/Zl1Y7Cx3VyvtlpoG1AgelLJeC6UMTaZvyA93OU\nZYi3if3hXeNlYqelzA68nOhztLPHsPWFe8XYE96be2PYA+MNO8cOImWRdirFsqF61GZfOj5eZmfy\nlNTdcYONMoeU4i6xcVeH/e/Dxtl5n6P0tM3wZIyghh922GGSmvhC+vrSSy+V1Cg94OopRAogNoZK\nT0xLSRkEn7OJ6eLV/85cQVxfNGe78sjTDVf4+K0rZTZzvKgGneNxqKOilC3JdfNUh99A2oHfmFq4\nf5Qtvz//jeL/xKUyXlgb+JqCpzT0hyvHtaQilSRJkiRJ0pGJKVI/+MEPZlaXeFcoDXgFKCqR93XF\nFVdIaqqjcryunq5DrBarbLyvWvAS8ELw2lg1U2sFzz7yzjiOZ4YA90v7sdr2VwcvlNU398lxOG/X\nbLm+q/Z6didKHN6he5OlLDOUvaiuE94JShHeKV5OyR6okeKV4p2abZWGwfsB+6G9GDfulXFdVEpH\n8URpdEWKcepZt/wf5cgrzreNlfI6abPHA57vuBQpr3ju0PZ4xCVo80h5WrlypaTGJukzzs/Yje6f\nvsQ2UUldha4F5YXvU4GaOcXrKg0LihB93vZ6ia0BjoOCQXtj44DCErUr1+HZdj5X007YqcfqQPRb\nEDGu2CifS3ysM7a5H+YIjyPGPkrxrR5H7E+bfPy5ndFfXBftTvvy28Z4Yi6iH/3+IlKRSpIkSZIk\n6cjEFKmdd955jmLCqj56Pu7gPXi9pNpIe4dV65577impWTXfdNNNnY7H9eFBu8LD+yXvwytUu/fr\nipl7QXyfzBMyIFxZIU4A8DZRziLaVjRvC+1FPAfeHu0WnTfyglEwsZeokrp7+20rfPt+WvS/K1C0\nX1Qbpm+8vbAfrovxQ4YM/c/fI3WF+4y8ON5nnNGPtNPsCuVbw+N5ZiumbePmhm3rqOI50Lee6Rop\nWaV6O/QJY5jr5vx8j/tidwZsnL5EYWHuRTXnuG1hLiF2iX5gzHjGcFe4P8Zw2zpVrvChino9IZ/T\nSnMbtohqTbv6bxH9wlhyhaStEuVEcZY8DWGMehYb7dB2HLid0g6+wwDHZ+yW4ouBOYJ+8fN5XS/G\nlbcn9804pJ1KWY+pSCVJkiRJkoyYiSpSnunA6o9MjNLzfmA1yuo/UhhK4O2xaub5bdd6N15vyBUO\nVuWlfbiIZ8D7jbxGYoLcs8frIfOBz+Et4pV4TBFeWakabV8xaeBxD3gN7nXg/UUxdJHd0D5kkCxf\nvnzezw2z353U2DH9Rf+5OuHP4/l/rUIzLJFXhl2QJYt9RDFz7mUD7Yh36H+PKvVH4KVy3Nnjs208\n37CqX7XHasoX1x7VuMOj94xZr3vE8fg8Y4fjeiwVfctc50pa19gyxiKqNnMWKmutAlGC+2Y/VJQv\n9s8swT6NgC3Sjl6L0JUoty/GNO1M+0VztI9pzke/DqtIRXB//lSE+3S76grf5z4YmyhCq1evltQo\nZKW9DLF/fmO8P7Arr7DP//ke9hkpozydoH1qf/sgFakkSZIkSZKOTEyR2mWXXWa8AbwkVpOs8lkN\nRl4Sq0aUKFbXXesesVrFu+ha14fVPl4f1+/PaVm1E1fA/73OEYoL3gwZJsD9slr377sSwOfd+8GL\nRRGhblLJS3Jvp20GCdlgtJPHELlS4956pPSUrpfz4UV5PANZktx/7V6IgFdKxkpkTx4XM2olival\n/VCaaAfaETvGq6RfUdrce8V+omxNjz/huG1rItGOHj+xtXOPCq/H5GOdOYkxjlLD+3jC9AE2g637\n2KPvyF6jLaLaXx4TQh2rSHnoanvYBuqlx8r0BffvTzNq8fpA9BPXz1yDYoKiwSu2Tz/zeZQ3bJG5\no6Ro+NzZFZ+7nb5i1Er4+bE/zo/67zUPI7wOlFdGp739KRTtyfXQX1E8r4/fUvytk4pUkiRJkiRJ\nRyamSC1atGjGG8MrwHNHOfG9zVyZYp8n3ynda03UgiLhtSVKzK6sLDVeBq94O9wPXhSrZV5LmT+0\nA6t5KO2EzvvEROFtcb94kShZrOYjr5Xz01/cP9fnMWX0M96bH7+0t6HXCME+6Hfar1QF2BUMskOp\nLcPze/CsUK/VE0G7ohzijUW1gUZV0TzClTLUELwy+pF+or+57qj2C2qGxx1xPuyQV/qRDCzaqaRQ\noe7Qnnxf6q+ejo85lAjP3GT/R7LHtmzZImmuCok6jUfuqqhnonIer7+DzbqtM6eQgcsc5rFJjPWI\ntvtWglfLZ47pW11l7HJfXlOspABRe/Doo4+W1PSzV6CnH7ySOrbM2PA5m/6+5ZZbJDXtccIJJ0hq\n2oU5kusfdg4YNrapL7zyOfZ46623SoozlyNoR17Zw+83fuM3JDVzM/bP3Mzcwt89VhDoH77H5/l/\nbbumIpUkSZIkSdKRiSlS3//+9+fEAeC94L3hLbgSxWrTPWu8lNIO09FeX3iFJa/WY4zcA8c78v19\ngOe5HAfv03cAB19Fs+/TwQcfLKk+puv666+X1CgleHceU8X9R6txz6bk/lAIUMi4zyOOOEJSozSg\nANVm2gDtRJwJXk0pcwo7QlXAa8X7jupDUXMH77EUK8b1oJC41xzZlbf/qPFaN3jVHmNIP3vsWGQX\n9K8rSh4TCGRQ0X+M/yguwffrYnzNHn+1WXQlXJ1jrnFb4ZpRenwMosbSpry6ullb+Xzjxo3zvt9X\nHaKuEHvE3MuYQ4kA5gSvK1QLc+THP/7x7hc7CxQJVHH6xcfqmjVrBl6xcfZ7jWofujrflwIVMWll\n6pprrpE0N/bp85//fC/Hv+GGGyQ1ipTvOsFvD/1Df/rTGn86weexB8ZRbT+lIpUkSZIkSdKRiSlS\nP/rRj7Rp0yZJc2tw4HWUappcd911kuau+llVHnfccZIa7xLFxGtm4HUS51Dy6nx169fJKjh6Duxx\nA3hlrI5pD66T9/FaPUaH81Anir+7t8Vx8Kr5/zOf+cyB8/rzYo8581U63ptXVfZYLN/PqBa8DL5P\nO6CgcHwqt3u9KbwP7Ip+57pdZfDaKpy3VC8LJRV7uvrqqyU19hHVLOJ7KKsoWl4FuLTDPQoa7YDy\n55lN9A/96v/HO+O+URW8pkuEjw/sErv3SvX0SylDxuukYUez61KhctFWnjnLdxnrfi/77LOPpGZM\n8D3uwVXju+66S1IT3+XZQihZ2LDXysN2fZ/LKJ5u1PhY5zp5H0WJMcZYYoxhqz7WuX+PJ52UggaX\nXXZZ1ecuuuiigdeutM38RdGkXUtZqX1nSTrYQzRW+6oXVgv2wzj2zG/sz+0aBZU5nuv+5je/Kan5\nbajNAk5FKkmSJEmSpCNTD49r2+jZJ52a0vT09LhPmyRJkiRJ0prp6ekwzjUVqSRJkiRJko5MLEZq\nHIoU5xiX+jWp85E5Eu0wT3wHz+fJMPHK4FQyp/YHmRDEhbz85S+XJP3VX/2VpCYOwuM4yNwhBos4\nCmKRiFshziLKWnuk9h/3f+qppw6cz2uwlKitJE9cy5vf/GZJ0sUXXyypieHi78SvEG9A/Sj+Tz+S\nNQnYEXa2bNkySdK6desG7q+WKKu2xPT09EycGbEcxKUR00F8FrZOBix/5/PYLjFO3PtZZ50lSVq/\nfv3MOccB5/nYxz4mqYkT5ProA8+WOuiggyQ1sR+MbcAWia1h7J500kmSpI9+9KOSpFWrVklqbIIK\n6dT34ToY0/QhcZJcH+1LPxDTctRRRw3c56jhPGSTeQ08+p85lJg6YucYM2QeE2ODXQH3x9xJu2BH\nxMjxfWLriJO8/fbbB67P97Ok3ekXrv/FL36xJOlv/uZvJDWxf1w31+V1zrx+mlfq931BeZ/6TtwX\ndsDnidv0TG3GqbdzBO31lre8RdL47SUiFakkSZIkSZKOTEyRWkisWLFCUuMt4QVA273cxg2eO3Wi\nUIjI+CBjAW/0zjvvlNR4N3ibeAUoFVFNEq/Ejne0cuVKSY0XQ22dpUuXSmq8FhSo++67b+D7XE/X\nHej7ZlSZU9H+YJ71h/cYVaOOlCj3KrFfwE6ATDbPJq2tck3mDCoFryhSbWmrRM3mAx/4QOfv1oAt\neG2tcYGyBFH9IojqToHvwcbxUaQY457pfMcdd0hqVGbPfGUsY0OetUctsEnPqTfeeGOrz6OYoKh5\nJm6pkjs1/GhHn2O9LpLPhb4vLRnZtL/PCbxP+5PNSr97lh12HdU0ZI7ymnnM7V5ZnuOjXDpcn++B\nGDHM3DBKUpFKkiRJkiTpSCpSajx3YlQclIFJe08ReHnEN+BN4DWwisdrIL7C6znxPer1oJx47ROP\nN/G90/AuiFdBGaP9qP8FPN/neqNK4+NmVDV8IhXB9xzsWvHcvViPaSrtRxYx6tpGqB4cf9I1huaD\nmJ/aXeH7hrE+rgrWjHHulzkGRYk502OzsBXfvQJVnOMwtwKKjStv48ZVXSeqCee7XjgeoxbRVpXn\nel1Joh94RfGK6j1FSpQfj9+U2r0UI/Xca/2VVPCuc8+ee+4pqRk3PCVB7Xdlti2pSCVJkiRJknRk\nm1CkWOWjePStDBHTEdG2Eve4QfnxzBiPRSIThefctCOrcrwoFCa8Rq+WizfD+dx74vN4F3hhkVeC\nV9o1W2uhULsD/ajia1BLUBFQvrzCPv3TVlWp9Qaxs7bQ/9gf9tWmWnLbzMe2dFXJvOI5r6UsJWfc\ne6nR9hs2bJDUZK1hO1GlbsYAajRzgWfroaRArcIxarrOQSX7iOIjhyU6L7sd0A9d9/jzPSKhq7rt\n3+c3qkTXcc1TDuZeFLBhlShIRSpJkiRJkqQj24QiNamdzfEaUXxGTVdFBq/WY2z873iXKFGlbES8\nQ1ekULxQKLyeEfeB0hTFPBGLxXN3/u/7cS10uH7iRkoKp+/7BMSW1WbLOagEngFDrRbYd999Jc2t\n6dIXXfsPO8MuOc7Xv/716mOMSokCrrGtMsTYYKyM+jr7gqws4hiZg7G1UkwN98lc4NluPvd0VUz6\nJoqBGpZR/YbRH67w+dzdNbbPf4NRfmv39mMOGjb+ld/ktnjcJUoYKn5t7FpEKlJJkiRJkiQdmZgi\ntf322xefr/J8l4h7VttkIbXxVGsgtmPJkiWSGu8xqoHRN6N6Lg+uhJRizfAmPTYGxQmvBCUJJYTn\n0HixkRdC7BmxRXgtCz0mzaF9amP3PBuP+8f+UALxvmrjRlAHUJxQQTwug/ONiq5xPNgn9+HZhgsB\nbBmbbwuKDHNLFFdH39fGh7X9PHMpYzhSgrg+z/YifjLKrkPJQiXHJjgf7VBbP+iRwqgyXsHtiDmA\nseXxxm1/c/itof9q5xIqsKOIRXZasuNIzS/BbwrtQczYi170IklNBf+upCKVJEmSJEnSkYkpUjXR\n/nh9y5cvl9SsJqmD1Dd4XcS4LFq0SFKzeo0yVCaNZ2VFRMoG3mVUt8iPj3KCV4OXw/Ny/l7rbfJ5\n4ijaZjItFGrjBbw9Ue6IsQLsn9dSFWtA2aNdPauyVvHj+6gXHKcUF9M1zgW1ZyHWj4JhY5uwETx0\n4sC8DlPkkWML3oee8VhSGlAGSvs0Mk/T9/QNMUQeH0lGMHi8H3MN9901Fok5me9jk6W5bNKMOt7W\n7dP71+eotooUx0ORquWuu+6SFGct0p8lSnNPCd9DkKdPjMeu/ZOKVJIkSZIkSUcWdNYe3tfmzZsl\nSbfeequk0dcZ4nk+ypfvVbbQQMlpm3lQ61X4c33ag+fjXj0Xr7U2XgMFEC91oSp/feHeF/8ntgyv\nETWgrReGtxVVR671ulA9iFXkeni/78yzhaxEQV+KlFd0riVSExlrUQxJFItVW0Ebj53jcB0oYRyX\n64iukxgp5qyusWYeV+ixZwuVcds4/UD7eKxQW7h++q32ONhH9CSK35hRx8cy12InPKUZtj5bKlJJ\nkiRJkiQdWdCKFDETrBp53o43M+rYJbw1Yk54/t9XNdS+aLsvE+DVtY0n8HpR0R5stUoe2VnLli2T\ntO3U2HFqqxa7EoiXRsYKdu0KUK3XRNwIypPXXqnNHOL8nJfjbqv90wfDquEoUihRrkx19Yy5LuZG\nPG5iQlasWCGpySwt1ToDvs/3GPv83+eeSHFgLmDuJH6SOj5t4bfBd3XoOheOi3FfH2OVOcT7x2Pc\nSkQ1BIdlXPXD+M3iN+/222+XNHy/pCKVJEmSJEnSkQWtSJG95V4LHv2oMzNYdaOILZR9oJyuz5VL\nz+vxIj0TB6/Z4ztQpugvvJwvf/nLWz0P+3etXr265rIXLLUxYa5o4o3hXaOwYue1cSR4+WSbRrFV\n9E9tBfW+qhI/Ehi27hGKFPFwePi1FadLqjgZlmSvYUOct+0+pXwPxYdXxjY2Fs0lzAnMJWSeEn/q\nVffbQvstdCVqXHhlc37DsC+PoUMRrVWZfS/LYffaGzfEEXMfXXeRcFKRSpIkSZIk6ciCVqTAs9Ha\n7AbfBwtViQL3UslkGfa5M96reyvr1q2TJO21116SGmUQpWO33XaT1CgpVNq+8847B46Dt/ubv/mb\nkqS1a9cOHG9bo+t+TXjreNUofsRK0Y5R5hXQnihH999//8D3oW1lc7+uEvT/IxEqdne1UVR2Yplo\n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\nqalxPs4kbNmyRdu2bdOmTZt0yy23aPPmzX1/n5qacltNiFLdu11Gz3ve8x7t2rVL27dv12GHHaYN\nGzakn3V7jIaXX35ZF154oW666Sa98Y1v7Pubx8h4efnll3XRRRfppptu0kEHHeTxMQtjXUgdccQR\n2r1798z/d+/e3beCNePhsMMOk/TqYdEXXHCBtm7dqkMOOUTf/va3JUl79uyZOaDZjJ6s7uN4eeGF\nF3TEEUdMpIyvJ9785jfPfFlfddVVM9sTbo/x8IMf/EAXXnihLrvsMp1//vmSPEYmBW1x6aWXzrSF\nx8e+jHUhddJJJ+mZZ57R888/r1deeUWf+9zndN55542zCK97/vu//1vf+973JEn/9V//pXvuuUcr\nVqzQeeedp9tvv12SdPvtt88MGjN6sro/77zz9Nd//dd65ZVXtGvXLj3zzDMzUZZmdOzZs2fm33fe\needMRJ/bY/T0ej1deeWVOu644/T+979/5vceI+MnawuPj1kYt3f7XXfd1Vu2bFlv8eLFveuuu27c\nj3/d881vfrO3atWq3qpVq3rLly+faYPvfve7vbe//e29pUuX9tavX9/793//9wmX9LXJxRdf3Dvs\nsMN6CxYs6C1cuLB32223zVn3H/nIR3qLFy/uHX300b277757giV/bRLb41Of+lTvsssu661YsaK3\ncuXK3rve9a7et7/97ZnPuz1Gy+bNm3tTU1O9VatW9VavXt1bvXp1b9OmTR4jE2C2trjrrrs8PmbB\nR8QYY4wxxnTEmc2NMcYYYzrihZQxxhhjTEe8kDLGGGOM6YgXUsYYY4wxHfFCyhhjjDGmI15IGWOM\nMcZ0xAspY4wxxpiOeCFljDHGGNOR/wM+hTPIf67+9QAAAABJRU5ErkJggg==\n", "text": [ - "" + "" ] } ], @@ -386,7 +389,7 @@ "cell_type": "code", "collapsed": false, "input": [ - "feat = net.caffenet.blobs['conv4'].data[4]\n", + "feat = net.blobs['conv4'].data[4]\n", "vis_square(feat, padval=0.5)" ], "language": "python", @@ -395,9 +398,9 @@ { "metadata": {}, "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAAAlIAAAJOCAYAAAB8y+mTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXmwZVV1/7+P4ecYE1TG7qZnuuluUHFGCVKoKasSCk3Q\nYDRGo+IQUxoNIjg8BQWNxuCMUSOSKhVNSolJiEMxKCoYhka66QmaZhQxmsQ4RIP8/rA+7/T9vrd7\n77PPucPrXp9/bt337j1nn73X3ves71lr7an77rvvPgVBEARBEASt2WvcDQiCIAiCIJivxI1UEARB\nEARBJXEjFQRBEARBUEncSAVBEARBEFQSN1JBEARBEASVxI1UEARBEARBJUO5kbr44ou1evVqrVy5\nUu985zuHcYogCIIgCIKxM9V3Hal7771Xq1at0le/+lUtWLBAj33sY/XpT39ahx9+eJ+nCYIgCIIg\nGDu9K1JXXXWVVqxYoSVLlmjffffVH/7hH+qLX/xi36cJgiAIgiAYO73fSN1xxx1atGjRzPuFCxfq\njjvu6Ps0QRAEQRAEY2efvg84NTXVy2eCIAiCIAgmgcWLF+uWW26Z83+930gtWLBAt91228z72267\nTQsXLtzld+5///tr77331i9/+UtJ0i9+8QtJ0r777itJeuADHyhJM///6U9/OvD9Bz3oQZKkn/zk\nJwN/n56eHnjNsWTJEkma1Vl77fVr4e7ggw+WpKTC5udbs2aNJGnjxo1F5y/l4Q9/uCTpz/7szwbO\n15aHPexhkqT/+I//KPo853nve98rSfqv//qvOT937LHHStJMXNxHPvKRgf8/7nGPkyTdeeedkqTb\nb799l+crvb7f+q3fktTYT6md+Pne8Y53SJIe+tCHSpL+93//V5L0ox/9qKgdzj77/Hqa/cZv/IYk\n6X/+538kSWecccbAeYdNaX/e7373kyT95m/+piTp+9///sD/mQ+/+tWvis73rne9S5K09957S5J+\n/OMfD3xu9erVkqRHPepRkqStW7dKkv7zP/9TkmYU7ptvvlmStGPHDklNf97//veXJL3yla/Ueeed\nJ0ki9BPbZu1wWGP4///7f/9v4Bp//vOfD5xj+fLlkqSTTjpJkmbOd9dddw0c9/jjj5ck/d///Z8k\n6Yorrhg4zrp16yRJ//3f/y1p9hrB+VlD/uAP/kBSfuwe8pCHDJzX50ApOVthTW57/GXLlklqxm7T\n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\nksgLQgAAAABJRU5ErkJggg==\n", + "png": "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\nfnMq53NaFbalttdaRchBqSKDvC/Mz6ifuBcyP0pKFPe8WmV60SecXXbZZesGrM9//vO1995766mn\nntJ3vvMdvelNb5IkvelNb9K3vvUtSb82rpNOOkk77bSTVq5cqdWrVzd3TJIkSZIkyXKn2lV97LHH\ndMcdd+glL3mJnn766a1e4s4777zVO/n5z3++NeNM+rWyUMpCqeH444+XJB1xxBGSYkWqllIMVO1T\nPPEDpZiZEpyvpERFEHPFzvGMh9eRKuExZnih7vUSy4Z3WooX6PuePvJ2++651wr9gPLk2Zb8rPUS\no33cYNqbC7TuBemwx10JlEzwLNO+kIlF9qgreNvai/elz2W+y/+/5CUvkdRdG3+PlJux+rIV3zvQ\n8QzkoXul0R+sBZ5hDX0VO1TaKC4Wm2EOljKdSzDnqF/UF9ZSMpuJeVsqRWpHATtpvSeydvSNUfS3\nMtwrsF/estTGRPVVNquy9n75y1/qta99rS699NKtRfFgbm5uUTmvVepLkiRJkiSZNddee+2ify8q\nUv/zP/+j1772tXrjG9+oE044QdKvVah///d/1y677KJf/OIXW2NyVqxYMeEBPfnkk1U1bLzWi3sf\nxDmgbkVZYF7hfOtFDoxv4LjUa0LR4qGyVHNjbCUlejh1Jadv9iHeH0/txAD59fH/pYdkr59VS9Sf\nYytRqKrufeAtu3rh7aptDyqJ7ywP/H/kdQ/NxCrFKLZSO76RilGLx0S5KrRtv3kfRfGJjOnmzZsl\n1dvo2PWI+sJ6OlYWYAnGmP6K1pSha2t03rGy74aqvjfeeKOkLkvthhtuGNymFsZ6C+Lss88+krp7\nHLUAS/cQV/iGKlLr16+XJN18881N348yo4G1F4WRe2ZpLT/66KN1/fXXh39fdIV95pln9La3vU0b\nNmzYumWAJL3mNa/RFVdcIUm64oortj5gveY1r9HXv/51/epXv9Kjjz6qBx98UIcccsiiDUySJEmS\nJNlRWVSRuvHGG/WVr3xF++2339b6DhdccIFOP/10nXjiifrCF76glStX6hvf+IakX78/PvHEE7Vh\nwwY95znP0WWXXVb1aq+U1fXDH/5QkrTnnntK6qra3n///ROf4/2qV3ElAr+2wrLDU67v1wQlj7uv\nkoJCwXnc24uO58pdqxdGzBVP7a7wET9SygCiv1Du+u6rVAuKC3WGUNRK7cPb9f7kevH+yHosqRZc\n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\najtMAAAAAElFTkSuQmCC\n", "text": [ - "" + "" ] } ], @@ -414,7 +417,7 @@ "cell_type": "code", "collapsed": false, "input": [ - "feat = net.caffenet.blobs['conv5'].data[4]\n", + "feat = net.blobs['conv5'].data[4]\n", "vis_square(feat, padval=0.5)" ], "language": "python", @@ -423,9 +426,9 @@ { "metadata": {}, "output_type": "display_data", - "png": "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\n", + "png": "iVBORw0KGgoAAAANSUhEUgAAAlIAAAJOCAYAAAB8y+mTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmQXGd1//9PW5K1jHZpNFpmrJEtWbIs28gYQ4ipYGOR\ngkq5WKoUTCo4LGFJioI4IRAXkIHKFwwJBQRwFRVciVOkjJ0UYAOFsU2MKpg4smzLmyRrsTSaGY1G\ny2hfjdHvD//O06c9VzPdt+/W3e/XP75+ZtT3mZ7unnvPOc95SufOnTsnAAAA1OyCvCcAAADQqLiQ\nAgAAiIkLKQAAgJi4kAIAAIiJCykAAICYuJACAACIKZULqQceeEArVqzQsmXL9JWvfCWNUwAAAOSu\nlHQfqZdfflnLly/Xww8/rEWLFul1r3ud7r77bl122WVJngYAACB3iUek1q9fr6VLl6q7u1sTJkzQ\ne97zHt13331JnwYAACB3iV9IDQwMqKurK/x/Z2enBgYGkj4NAABA7sYn/YClUimR7wEAACiCxYsX\na9euXZFfS/xCatGiRerr6wv/39fXp87Ozqr//bRp08LxsWPHEp2b6enpiTzOA3OJxlyiMZdodv56\n5nHBBeUA/e9+97ua/u3EiRPD8d/93d/VPZekJPG8JIW5RKt1LhdeeGE4/u1vfytJmjJlShiz4/37\n94ex0Uqh29rawvGnPvWpmuYyYcKE8No/deqUpFfqpJNQpN/RH/zBH2jdunXn/XriF1LXXHONtm3b\npl27dmnhwoW65557dPfdd1f979O6eAKA0dR68eSdOXMmwZkA53f27NkRY3YRI5WDEdWuI7OLsThe\neuklvfTSS7H/faO4/vrrs72QGj9+vL797W/rD//wD/Xyyy/rgx/8ICv2AABAU0r8QkqS3va2t+lt\nb3tbGg8NZ/bs2eHYwqv+7uLo0aOSuFvO07XXXhuOLeLx9NNPh7FWuJsD6nXVVVdJkpYtWxbGjh8/\nLqny/TQ4OJjtxArCp9NqfQ74+1A/OpsDAADElEpECtnwqx8tEjVjxowwZsWzQ0ND2U4Mwfjx5beY\n1Tb4wmQiUigq+/yop3YsKStXrpT0Sg2usc+13bt3h7FWjUghX0SkAAAAYuJCCgAAIKaWSu35/hvN\n4ODBgyPGfO8Q5O83v/lN3lMoFHsPWqpGkmbNmiVJFf3ntm/fnu3EMIL9Xny5gJUT+BTayZMnU5/L\nAw88IEnavHlzGDt9+rQknbdJIpAVIlIAAAAxtVREasKECXlPIVG+aLlIS1jb29slle8YJRqtevV0\n0G509rPPmTMnjM2fP18S0dSiOXTokCRp3LhxYcw+Q/0iiiznYv9FMfgsj702/GeaLbBJqtt5URGR\nAgAAiIkLKQAAgJhaKrV34sSJvKeQCAuh+g2eTV4pPh/+t+NJkyaFsbxSezYH3/G9nr2lknDFFVeE\nYyve3bhxY17TyZSF+o8cORLGLN3X29uby5wQzVI0+/bty3kmxeRLRazMwrqttwq/n9+SJUskSQsW\nLAhjO3bskCS9+OKL2U4sY0SkAAAAYmqpiFSzKGI3bF9MaHeweRVS+2JuK2r2Rap5RaQWL14sSbr6\n6qvDmEXq/NL/qLYWzcJeExs2bMh5JiP5CIO9nv1rKe9IJopl8uTJ4bitrU1S5QKbVni9TJ06NRzb\nAgS/aGRgYCDzOUnlIniLgKeNiBQAAEBMXEgBAADE1FKpvSlTpuQ9hUQdPnw4HBcpjJx3byR//rxC\ny8YX4V988cWSymkAqZwGzaI7NKJZ527f28qKhv1r6cCBA9lODKmrp6fb0aNHw3HU66UV+DIT20Ta\nLyzKa/FTVik9Q0QKAAAgppaKSPlO4M2gSFEoRPNF+FaY6ZcMW0uOU6dOZTsxBNaKwbcTsd9Rq0UY\nWk1Sv99WfZ34iJO9f6K6mPvC/Gb8rCMiBQAAEBMXUgAAADG1VGqPDS+zYd26fQoL5efDd/X2CwaQ\nr/7+/rynkIhmK2FAcfliczv2JSczZ86UVLnQi9QeAAAAgpaKSDUyv2Tejv1VvkXb/JJc6zRry7ul\n8l3D9OnTw5jfGykJRKKi7dy5U1I5YidJmzdvzms6hWFF+NaNWJKGh4fzmk7D888jkCYf/bTXnf9b\n1dnZKanyb9WePXsyml12iEgBAADExIUUAABATKT2CqSrq0uStHDhwjBmfYbmz58fxixl54v6LBXi\nN4y0oma/saSFYn3Hbd/RGel5/vnn855C7izsb691SVq+fLmkyv4z9nr2xfibNm2SJM2aNSuMsYBk\nJN9ZGslrb2+XVPl6tddhq5U12N8iSZo3b56kyrIR+9vSjAXmHhEpAACAmErncriELpVK6unpyfq0\nAAAANevp6TlvxJGIFAAAQExcSAEAAMSUW7F5nqk9f+68U4zMJVpR5/Ktb31LknTw4MFEz+GL/0fb\n9PPTn/505Lzy4M//D//wD5Ly20jb5pL3c+LnEGcuUQtJ8ppL0mwOX/rSl8LY2bNnc51LkZ4X5lLJ\n5vBP//RPYez48eOpn9c+ay+4oBxn+tSnPjXqvyEiBQAAEBPtDzAq35HWCu0mTJgQxnxrBWPRFb8M\n277PL5e1vc383XfU4xXJ6dOnU3ncqCiUV/Tlw3lFopqN3Q03cwuDvKJQaExjfeZaR/V6Xlf+79xY\nn8VRiEgBAADExIUUAABATA2R2vObcBIWztbJkydHjPk00+zZsyVVdl63zrY7duwIY7ZZ8r59+8JY\nVDooi2LCelin+UY0d+7ccGwdh33R/IEDBzKfEyoV/fUPZG3mzJnh2D6j/OKcSZMmSYp3bWCP4/tD\nnTlzRlLl5stjISIFAAAQU0NEpEqlUjieNm2apOYuxmwkdjfg9z+zMf97s0jOWHcN/t8UUdLL07Pk\nI4l2bHsvSuXfW1oF9bVIooC0EbXaXm3AWKL2hfVZKnvPHD16tObHtqiTP4d9NtrCj2oQkQIAAIiJ\nCykAAICYGiK1Z8VfUjmkZ0XOUrlAswhpAEtNtUqIftu2bZKkPXv2hDFLe0UVqvs+UZbu82FVH7It\nokZM6RlfKJ930bz/PVt43T+3v/vd7yQV4z0NID/79+8Px/a54NVTDmLXFv5vkKmlxIGIFAAAQEwN\nEZHyUQwrjvWFs3kVKNudtF+eafvzDA0NhbFGvqv2V+p27H8e6wJbbaGf/11aJNHfZRQ9IoVkWDsM\nqfw68GNRd4itzhe/Fr3TPbLVzK+NqCiUV0/2xyJSftGNISIFAACQAS6kAAAAYip0as96Ey1evDiM\nWRogry7Mfi4dHR2SKotkbSPeRk7neX4DxzibOb5aVBrWh26jCtSTOF+rFP/Xw9IDWaQG/O/Dp/RM\nEq+1ZpN1CUN7e7skad68eWFs9+7dkujjVzT+PZTXZ55t/BuVEhsrPZe3qBIW66tXDSJSAAAAMRU6\nImWRHn+1WISuy8YKrP3+ccPDw3lNpyH4IvwoSUfyihSJmjBhgqToCEzW7G7LtxGxQv9du3blMaXc\n2B6EfsFEESPKvg1MlucbGBgIY0Siisl2XJDya9GSdDbB2AIuKXqxWRI7MvhrDMuE+ed0zDnGPjMA\nAECL40IKAAAgpkKn9iyMfPjw4TCW96a2vb294bhIm7w2iqIXHaapCCk9093dLancC02Sjhw5ktNs\nzs/3FUsr3WYpiSKm87ysC/DjbAKLfDTz56r/jLLUnk9z2yKZev4O+zSeFc3X8n4jIgUAABBToSNS\nxop0pXIhmN9/J6+IkHXp9t26LXrWyHuyIR3Tpk2TVG7hIeVXDG+RHv86LVJEyiLPWUTx0iqSrYeP\nxNkdsr8Lb7bu1ahP0aOp9fDtN4zPUvli9LgOHToUji0TZu+7ahCRAgAAiIkLKQAAgJgaIrXnw3gW\n6i9CgbcV+PnUIyk9nM/06dMlVYaMDx48KCn7140VEvt0kX+f5a1I/b/y4FM1zZy2Acbi+zRG9TGz\nz9Ck2GdxLX3biEgBAADE1BARqb179+Y9hUh0MW89c+bMkVR5t+KLx1/N9mOUyst4fYSh2kiULbJI\nSl9fn6R4S+qtaL4evoDUCqt90ag9p7zHgNaW12IQIlIAAAAZ4EIKAAAgptxSe+PHj6/oWGrF4z5t\nYF1MDxw4EMaiwm3W2dT3c/J9pkytKQm/kWGtKRBfgG6pC9/7ZcaMGTU9Xtby2mB3xYoVmZ6vVidO\nnJBU/WIH/33WPTfO5rO+z4mx94//Hdmxdd2XonsOjfZ69rsH2HvAf3/Ua9fScmN1WLaCe/uvVC6+\n9ynPagvfZ86cWdX3IVn+NdLqCwOakV8Qk3eftaw7+sdBRAoAACCm0rkcbidKpZJ6enqyPi0AAEDN\nenp6zht9JSIFAAAQExdSAAAAMeVWbP7f//3fFYWp1rHU9+TZtWuXJGnu3Llh7Morr6z4fknq7e2V\nVFmUZo/ji+asQPIv//Ivw1jeKUZ//iLN5R//8R8lVRYPW7G+72lkfZB8d9moYmorUPaFyvY79Bu0\nWsHxhz/84ch55cGf/1//9V8lVb7+rKA8qaJMW2TR1dUVxl588UVJ0uc///nIeeWhiK/dvOfh58Bc\nKjGXaMwlWhJz8b3pxloIY2zRmr8WGWsORKQAAABiyi0idfr06YpIhN3h2523NzQ0FI4feuih8z6m\nLS+XytEnv/x8tA7UqGTL/D1bRu/3PqqW/duidqmvlnUEr/buJg6L6G3fvj21cwCNiLYLqEWcz+k4\n1wlEpAAAAGLiQgoAACCm3FJ727ZtqyjOjdPt+dWiNoDNujN3q1m+fLmkynRfVBfuZpFmSi9t3d3d\n4djS5VFdz4GiWbVqlSRp2bJlYcxSML/5zW/CWFRJApA2IlIAAAAx5RaRSiNqQSFi9mxPPn+naAXZ\nvtC/maNURbdw4UJJ0nXXXRfGbGHGxo0bw5g/BorE2tjMmzcvjNmxX6C0Y8eObCeGQurs7JRU+Xqx\nNkm+VU+UqPYHYyEiBQAAEBMXUgAAADHlltpLA+m8eJ1c67FlyxZJUltbWxizhQM+tYfaJZWq3rNn\njyTpkUceGfHY9jWgyIaHhyVJW7duDWO2CwILJvBq9jfILz7wfxtHM3/+fEm19fEjIgUAABBTbhGp\niRMnJtLyoJVZobdUvoo+evRoGDty5Ehmc/DRLxsjIlWfpCOsvkUFbUGKLWr/yVZmi1X83wz7fItq\ne4Pm5vd7tWO/6MAiUf69U+3fw+nTp9c8HyJSAAAAMXEhBQAAEFNTFZu3MtsMOOuUzbRp0ySV+7xI\n5fC7bUSNfFmq1fpJSVJ/f78k6eWXX85lTog2adIkSZXphf3790tq7cU01vvH96Nr5F0GknLJJZdI\nKpd2SNKzzz4rqbLMo9nY+0SqTIMbv2tKreJ0xyciBQAAEFNuESkKzetXhIJh65Bt3WCl8rzy6jS/\nePHicGzFhv7urJ79uOxnaqTogP0+/M9tEQ//PqznLg7JsN+HjxROnDhREos3JKJQr2aF1v5vQTNH\nooxveeGzIUmIswsHESkAAICYuJACAACIiWJz1MXCyL7gz9ITlvaTsk1DTp48ecRckuo1Yz9TEdKq\ntfKpu+7ubkmVqRLr5EtfnvxYynisjVVble8fZJ85PhXTaj23NmzYkPcUcuE3FJ47d26ijx2n7IiI\nFAAAQExEpFAXuzPwheVWeD5u3LgwlmUExxdVW6GuXy7bqgsd/HNgrRAOHz4cxhqpgB6tyUe+7fVM\nAXrr8VHzOMXho4nTtoeIFAAAQExcSAEAAMREag+Js3TaBRfkc53uN6fs6uqSJB04cCCRx27EInPj\nU3cWDvdFm3Q5R9H517AtKvGbt7NQovUkvTAjTqqYiBQAAEBMRKSQCL8s2YrMfffZLPnOvrakv+gF\n5r47r7Up8G0ckngufVGm7cdFgTnOx16TRep479/btsAlr88ZwBCRAgAAiIkLKQAAgJhI7WXIF1+n\nlVLxfVasaC7pAkz/c8yePXvE1/v7+yVV9pYyWaeSkk7p2c/kezJZKtM/9/ZzjtXjxDYPnjlzZhiz\n3k4XXXRRGNu7d++If2v9unzBeLVarQP0aBpxI+ospJXS8zseVPvZZO8TnwKvdeFHW1tbTd+PYhir\nxKGez8EFCxaMeFz7+1bL5vZEpAAAAGIqncvhNqxUKqmnpyfr0wIAANSsp6fnvFFrIlIAAAAxcSEF\nAAAQU27F5nmm9vy585qHFSh/7nOfiz2XqN5D9SjC8xJ1/u9973uSpP3794extPpC+SJy69D+V3/1\nV2Hs//2//yepckPm06dPpzKXKEX9HRVlLnnPw8+hSHP50pe+FMYsPeEXR1gh9vDwcBizQvD58+eH\nMfuc8f2coth7x39GfeITn6iYU56K+Dsq0ly++93vhjF7vUQteMliLtU+L/4z2V6zAwMDic7lfIhI\nAQAAxET7gxolFQVKYl+zInUcTpPdVWSxLsJHl6IiTbbkupH33CuCpKOpGF1Uuwv/Gh5tqXecSIRF\njIu+owCi+f1KG+X96f+mTps2TZJ03XXXhbF9+/ZJkgYHB8PYsWPHEjk3ESkAAICYuJACAACIidRe\njawTqlQuzByrezXqY0WESXdoR/bmzZsnSXrDG94Qxp5//nlJlSH3RkknAM0ozfefLXJIc3eFLVu2\nSJKWLl0axqw0JKl0nkdECgAAIKZCR6RsCe2MGTPCmF1NRu25k4W+vr5wzH5l2bA9A9H4bF87v8ze\nCkP93ozbt2/PdmLAKCZMmBCOFy9eLKlyz8De3l5J9f1d8q1XsmypEsW3EkhiYZRnC02y+PuZ1ecI\nESkAAICYuJACAACIqdCpvfb2dklSZ2dnGLPQqYVSJenw4cOZzYl0XvZI7SXDh+unTp0qqbJDdRZ9\nuoaGhir+CzSCCy4oxxys5MSn4jo6OiRJe/bsCWO1/q3wn3OW5rZzeVmk/fx5ky489z2qmgURKQAA\ngJgKHZHq7++v+K9nBapSNsspgUZnd81SeS8q6/YrRb/PAFR2aLcu8L4A3QrPfcf+Wv8eRX1/XkXn\nSReYe1lEvrNGRAoAACAmLqQAAABiKnRqbzRpdCcdjYVurTOzVC7UPX78eKZzQWOy11BeHdqjNqnN\na1NZ3zOqGUP9eMXkyZPznkLibBN1n/6yNJ8vOclyEVTSsvhcmD59ejj2i14aEREpAACAmOqKSHV3\nd2v69OkaN26cJkyYoPXr12t4eFh//Md/rN7eXnV3d+vee+/VzJkzk5pvbiyK4KMJdrdFRArVyHuv\nQB/FtSXIeS3QuOSSS8KxtWXwkSmbq99/D43Dls9HLd9vdD6ya6zI3Hc2t9d1moXbjcgWh/nC/JaO\nSJVKJf3qV7/SU089pfXr10uSbr/9dq1Zs0Zbt27VW97yFt1+++2JTBQAAKBo6k7tvbq+4f7779ct\nt9wiSbrlllv04x//uN5TAAAAFFJdqb1SqaQbb7xR48aN00c+8hH9+Z//uYaGhkK/mo6OjsQ7GFtR\nX1R4NQv+wrEZw9ZoXj6Nl3e3eP/+7e7ullQZ6t+xY4ckUnuNyoqV81rMkAXfodtSev7nJaUXzf6G\n+wUnja6uC6lHH31UCxYs0P79+7VmzRqtWLGi4uulUqmpniwAAACvrgupBQsWSHplT7x3vvOdWr9+\nvTo6OrR3717Nnz9fg4ODFe0CkmBLyPOKSLW1tYVjK6KPKuIFisbvFzZ37lxJ0qFDh0Z8XxbvLV94\nb3PxN13NHMlAc/B70NlrN+l96ZrZ3r17855C1R555JFRvx67RurkyZPhAuLEiRN68MEHdcUVV+im\nm27SXXfdJUm666679I53vCPuKQAAAHJ1/fXXj/r12BGpoaEhvfOd75T0yt3ln/zJn+itb32rrrnm\nGq1du1Z33nlnaH8AAADQjGJfSC1ZskQbN24cMT579mw9/PDDdU3q1Xx6cNasWZKk3t7eMJblxo5R\noVufMkE067nl+6wgW1F9rCZNmhSOrTg267S5vX99J+jdu3dnOodmRyf55Pn3kx03UoG5lcn4DuNZ\nsF0VmglXAAAAADE1xF57vjN6e3u7pMpCtSwjUr6LuV1ZN+IVto9EZPH82R5URKSKxb+37K46i4LZ\nZcuWjZhDVOE7kkEUKnmWHZHK0Z16/hbMmDEjHKe1aMlnT6wNgc0d8RGRAgAAiIkLKQAAgJgaIqa3\ndevWcLxt2zZJyYWqLaw51oayzdYnJMt0qFRZSIx8+LC+bahqG4hK2XYa3rRpUzi2LuY+LZJXnzig\nWkmnorN4zfsdDazMgnKL+hGRAgAAiKl0LocqxFKppJ6enqxPCwAAULOenp7zZsKISAEAAMTEhRQA\nAEBMuRWb55na8+f++te/Lqlyk1QL3/k+IWfPnpVUWRAbtbGq9WfyhbtRxXzW6fvTn/505Lzy4M9f\nxLn4DrxHjx7NdS558ef/6le/Kim/BRB+Lt/85jclJV+Aa0Xx0uhdo20uef9+/ByYSyXmEo25RCvi\nXM6HiBQAAEBMDdH+IE2jdZD13dOrVW1bgazbDzSDLJfnN4IiteJIqyt5I+1dloSOjg5Jr2wKn7eJ\nEydKio68A43AMj9Sum0eiEgBAADExIUUAABATC2f2rNuz77jaxbYRLR2aW3k2ahss1+6xjcPS6P5\nlIR9VvjPjCzSbW984xslSd3d3WHMdpb43//93zDWaulXFN+UKVMkVW6Obu+p3bt3h7E9e/Ykcj4i\nUgAAADG1fETK9hrLuvjbL+tuBtb2QZIWLVokSert7Q1jY+1liNr5vfPQHIoUXYxazDBhwoQcZpI/\n/3l9zTXXSJKuuuqqMGZtcdatWxfG+vv7M5odpPK+uVI5IhX1d93vL5oUPokBAABi4kIKAAAgppZP\n7eXVz6nZCjQt3C1J1113naTKgtT169dLSreXRxJ8CL/oaYzh4eG8p4AmtmHDBknSc889F8bsc6vo\nn1/+fWxFxsePH4/9eP7ntf6CS5YsCWMvvfSSpMr0ErJlfc8kqbOzU5LU3t4exqyw/ODBg4mfm4gU\nAABATA1x+eyvNO0uwO4AJGnHjh2ZzwmV/F2rRXJ8tM/Gih6R8neeWbfEQD7stek/U1B+L/j9RdPi\nI0hz586VJB07diyM1drFf8aMGeHY9uhMKsJsi2j8wgDblzWNaAeq41+ntrjJis6lcmQyjWgqESkA\nAICYuJACAACIqSFSe76Lr4V4k+qhYz0lfNjXQoRpbnhY9ELmWvkw9yOPPCKpcpPhvDq517PxKt3n\nW4MVCFsKSCqnBHyqpkibRDcbn26xz9963n9+IYY9dtILi/xOC3ntutDW1iYpm/RrI3nhhRckVfby\nslQxqT0AAIACaYiIlOf3yUmCRZ3syl4qX7FOmzYtjJ09e7bia/VKIqLmO7Ta/IqkCBEdOqpjLBZt\n9u9Ji1IRhcpePW0KojTzHp1EoqLZwpGsdgogIgUAABATF1IAAAAxNVxqL2mW+vE9g6ynSdLdcb04\nxc+vVsR0XtEUvQMzisOnSZptU3EA6SEiBQAAEFPLR6TsLtRHpKz41I8R2QBaB13OAVSLiBQAAEBM\nXEgBAADE1PKpPRPVubzoG+wCSEcReqABqI/vDZfmJvREpAAAAGIiIgUAqtxb046T3p9tLLY/JRGx\n5M2YMSPT89l+qv53aWPz5s3LdC6txiJRfk/bJFoOnfd8qT0yAABAk+NCCgAAICZSewBamm1OvmTJ\nkjBmuwb4Ta+PHj2a+lwsDeRTEhMnThzxfbXusOBTSfv27RvxuLNmzar4mlR7ce6kSZPC8fTp00eM\nZWnq1KnhePbs2ZKyT6dF9SKz11Nvb++Ir9nrUCrP1b/m2traJJU31JbKm/IeOHAggRk3D3vtppnO\n84hIAQAAxFQ6l0NVY6lUUk9PT9anBQAAqFlPT895F4EQkQIAAIiJCykAAICYcis2zzO158+dd4ox\nzlys2NAXwhrfydWMVTRqj/fZz3625rmkpdF/R2lhLtHs/HnPw8+hSHP53ve+F8ZOnjwpSTp06FAY\ny6LCo4jPy09/+tMw1t7eLqlyRwsrvn/xxRfDmPUW833HrKje9x2zYn4rvJekzs5OSZWLBd71rndV\nzClPNoevfe1rYezYsWOZnd8/V7feemvFnPI01hyISAEAAMRE+4MGFBWJMnH2E3r55Zdjz+XCCy+U\nVF4ujuyMFpmcMmVKOLYIRFL80vxmMH/+fEnS0NBQGGu2zuJ+ybxFSprtZ4xj27Zt4XjDhg01/Vsf\nuRptr1ZrUSBJfX19kiqfe4tIFclof2PSlPVOAkkhIgUAABATF1IAAAAxkdpDXSF+Unr5GS38nnQ6\nz4vq2NzILLV3+eWXh7Ff/vKXeU0nFbt37w7HcdL/zerIkSOpPfa4ceMkVZZONEo6NSpVmYWoxVKN\noDFnDQAAUABEpBDunIBWNDg4OGIsKprQyBo9CjV37lxJlXvoWTTJt3HIm1++b6+hIs2vWtUuVvH7\nF544caLiv3HY4qVGQ0QKAAAgJi6kAAAAYiK1h4owbjPwqUorXvQF0hZ+P3r0aLYTy5n1D5KkVatW\nSarsWrx169bM51QE1j/K95FCsVhqb/HixWHM+jM9/vjjYazWFKbvTp5EgbVPg1m380bU1tYWjkdL\n7Z05cyYcJ9EDqlFT0ESkAAAAYiIihabjC4SjioVbNSLlu1vPmjVLUuUdJeBZFMi/boaHhyVl3/Zk\ny5YtkqSDBw+GMYuA1BPFqLaDt49cWQTfR3Pt+fCPV0/R9Wh8xD2txRDVfi6M1T6iVCpJqoyGjxa5\n8nsQNhIiUgAAADFxIQUAABATqT20XHfyVkvpGR9e37dvnyRpx44deU0HBTdnzhxJlekjS2fl9Zmx\nf//+RB+v2i79fqNuW8AyVpfytLqYW1peKqfWkt5tIM5npKU8fS8oS+01Yi+tWhCRAgAAiImIFFqu\ns3mWEaksCkOr5QtD7Q4xr72//NLwJJZNNwuLfPjXTV7Pj0V/siigLjpfBG2/j7z2nPRF7kVqF2B7\nVnp+cUAzIyIFAAAQExdSAAAAMZHaQ0N34G0kVoSZV6Fu3qlFj9ReNEsX5ZU28qxnFCpT4NW+f61f\nnRVcS+VouOFjAAAgAElEQVT3YD0p0ix6v/neYdX22rKfzffcatRNiGtFRAoAACAmIlIoxN1vsxqr\ny3qrKnpHdVviXqRi3rz4vTjtNVz031/S4izKsAUDjbj0P05EytplLFmyJIy98MILkpJvW1E0RKQA\nAABi4kIKAAAgJlJ7qOhLAmShiAXmvg+Obdjb398fxg4fPpz5nIrAF1dbd/xWS+3F0YgpPeML5KsV\nVVhexPd5GohIAQAAxERECkBiqu3knldH9dFcfPHF4dgKZ320tlUjUr7YuNrCYzQ2W2xRCyss37lz\nZxgbGhpKbE5FRkQKAAAgJi6kAAAAYiK1B6TAinJ9l18r0D116lTNjzdz5sxkJpayjo6OcLxnz57Y\nj5NHUbNPSdjx4OBgZucfi38txXkNJcGKkOtJzfr0r/Ur8r9n27jZp4aT6OfleyNhdH7nAesz6NO6\n9nX/u7RFCY1cZB8XESkAAICYSudyqPoslUrq6enJ+rQAAAA16+npOW8klogUAABATFxIAQAAxJRb\n9V2eqT1/7iznYUWUUrkL7Kc+9alE51JtH58o/vz/+Z//KamywHX27NmSKjel/PnPfy5J2r17dxi7\n6aabJEkrV64MYz/5yU8kSXv37g1j06ZNkyRdeeWVYczOd9lll42Y17x588LYvn37Rsw/6QLlBQsW\nSJI+8pGPjJhLXvJ67UYp4lzynoefQz1z8X18LJ0Qpwqj2Z6XpDCXaMwl2lhzICIFAAAQU24RKYse\nmLSWOc+YMSMc57Vk2Ngy0lcfJ6nWKNT5nDhxQpLU1tYWxmzOfu+tvr6+Ef/2/vvvlyQ9+uijYezg\nwYMjvq+9vV1S5WvB9jbzESkTFYXykn4NJbH03UfR9u/fL6mYXb2bxdKlS8Ox7fPll22fPHlSknT0\n6NFEzmdR2uHh4UQez1i0VipHp1pxWXkRTZkyRVL5tQQQkQIAAIiJCykAAICYckvtZdWx+MiRI5mc\np9ns2rWr4r9SOcXgO0CPlqaKSud5tgmsbXYpSdu2bZMkrVmzpqb5FtVY6UgkyxdpWzds3xU76U13\nfQfoJPlO9pZSzzq1N3Xq1Ir/SpWLRbKUVgo1Dl/agLLRFvvY4iqpOZ8/IlIAAAAxsfkQItkdhL97\nsDv7sSJN1bLi/wMHDow4BxCHjxBZdMrvsWavr6QKhadPn57o45mBgYFEHy+O48ePV/zXi4r8Je2q\nq64Kx9ZKxUfAh4aGJEnPPPNMGEvqs2k0SUc1m0VUJMr2Zpw7d24Yq2cPzqIiIgUAABATF1IAAAAx\nkdqrknUM9yFK6/Vi/YGk5ilutxSJhWalcuj22LFjiZzDHseH6333d6BWPsVmvaJ8Giqp/lHGXsNJ\nF9AWPX3kn1OTdIrPfxZY8X1HR0cYmzVrlqTKXnZZpPZQPftsb/aeW0SkAAAAYiIiVSWLSPm956zD\nre/MbXdqjV40bfP3P69Fp6xjdFLn8Etjk+rMjtbkC8vt9ep3NEg6cmSP14xLukczf/78cGw/e9Kt\nPp577rlwbBFyH3GyjMDChQvD2Pbt2xOdQ7Xs74PfCSLp6Gcjs1Y3zYqIFAAAQExcSAEAAMREaq9K\nFr72PVWsINSPNcuGtPbzWshaKoetffg6ieJO/5xl0fHe0gRJpShRHD7NbmnpNAu37X1S9OLwevgC\nb+ty7hehpFXG4N+fjz/+uCRp2bJlYezyyy+XVLkxuBWgZ90F3soTfB8z+yzLahcP5IeIFAAAQExE\npGrko08nTpyQVFnM2iysaN5Hi+zu2/a9ksp34r7tw2h7LkXxBe1JtVYYTTNHDxrFjBkzwrHdzfvl\n7hbxqKfDt72GffQk6WhkWq8lXzRvUeG8IhsLFiwIxxaN9pHoLBbWRLVesWJuW/QjlQvQs45IRf0N\nsHkRkWp+RKQAAABi4kIKAAAgJlJ7NXrppZfCcVR332bhUwvGUplWcCqVUyU+5F5tKNv+bWdnZxjL\nIk1Aai9/vseO9STyCxvipmZ8ys561/j3bNTruh7+sZPk05x5lw7497alZH3KP63nwLPPnK6urjBm\nn79+0/Ms+xX5lLE9H3n/rpCP5r0SAAAASBkRqRr5uxC7O7NIjdQ4dyS2TFiKLry1wnIfIbJj//0W\nRYgTSbK7bisQlSr3MkTz8hGN4eFhSckU5frO+Bb18lEoK5b2i0Zq5T8D7H00NDQU+/GiFOlzxEek\n7Pn10cMsiqmjOofbIhW/ICHLbuJjtbop0u8Q6SIiBQAAEBMXUgAAADGR2quRL1S2lEQjbVBsqbPu\n7u4wFlXYa4XgPo1hvaJ8cWlU4bb1BfL/Nir8b6HvTZs2jfp4rcaeN5+SyqKgNy9Jpob8AhBLB/lu\n55ZGrqcjf9aF1nnzPeIsdZZ1OYN9xvrPBysNaJbdJNC4iEgBAADERESqDvVEovzyZlNrR/A4LIrm\n94SKigLZzxZ1xz1Woa4Vqo/FzltP9+q8+GJ9O/Z7ftky7C1btlT1eL//+78fju1xfMfmLItoG5l/\n70TtdXby5MlEz2fvpygWmZWqf0/UaunSpeHYIpg+ApcE/1o3vtjcF/inxfb7861X7P3hu+QDY/FR\n66SySUSkAAAAYuJCCgAAIKaGSO1FdZBtdFEpM0u3+a8lXchuoXFfIBp1jnr67DSzVatWSapMn1jh\nre+vZWlLn+6z9Jz//drvY//+/WHM0oL+dW9pote+9rUJ/BTNa3BwcNSvZ1kcbh3bpXJxu3+vWU8k\n35m7VjNnzgzHUYs8krB3797I4zz4z38rCXjhhRfymg4aUBqLw4hIAQAAxFQ6l0OIp1QqqaenJ+vT\nAgAA1Kynp+e8GTEiUgAAADFxIQUAABBTbsXmeab2/LnzTjFWO5dqe1/U0yOjEZ+XLFQ7F1/4a0XN\nvgN0PayQ+Lbbbgtj3/jGNyRVFuBanyTruyOVi5l9Mbz1MfObRI9VqG0WLlwoSfrwhz8cxoryO7rz\nzjvDmD0HO3fuDGO2SMAXTdv7xHeSt+/z7yHrWxTVFd0/3x/72Mcq5pQnm0O1c/GfH/a6Sqr6w+bw\nX//1X2HMnl97TUnSnj17JFXueGCv1xtuuCGM2aKMrVu3hjHreeV7eC1evFiS9PTTT4exj370oxVz\nylOtv6M0MZdoY81hzIjUBz7wAXV0dOiKK64IY8PDw1qzZo0uvfRSvfWtbw0vaEn68pe/rGXLlmnF\nihV68MEH488cAACg4MaMSL3//e/Xxz/+cb3vfe8LY7fffrvWrFmjv/3bv9VXvvIV3X777br99tu1\nadMm3XPPPdq0aZMGBgZ04403auvWrRV3OXEsX748HEctdbW7j7S6BxdBtdGlvPb9y6KLc9H5G4qk\nRT2n1sIiau83/56Lev/Z91UbhfIsYlBEvo2ERQNH6z7u+Q7/Ud3+R9tTbmhoqNopFpr//JgzZ46k\n+vYljLJ58+ZwbF3RffQpir1ef/GLX4z6fVH7hlokNu/WDc3Out1n0em+aMa8wnnTm940YouA+++/\nX7fccosk6ZZbbtGPf/xjSdJ9992nm2++WRMmTFB3d7eWLl2q9evXpzBtAACA/MUKFQ0NDYWagI6O\njnA3tmfPHnV2dobv6+zsbMh91AAAAKpRd7F5qVQatZNuEl1229vbw7FdwPnC2f7+fknFTjk0u2uv\nvTYcd3V1SaostP7Nb34jqb4uzo0ki3SzhdCj0lA+nZX0Rr1J8JtmW2G33wi32nTcq/nPBX+M2iWd\n0stCVHrp2LFjeU2npVgJjv/ct9eQ/xxsxtKPWBGpjo6OkG8eHBwM22AsWrRIfX194fv6+/u1aNGi\nBKYJAACQvUceeWTUr8eKSN10002666679OlPf1p33XWX3vGOd4Tx9773vbr11ls1MDCgbdu2VUQq\n4vJRjAULFkiSpk+fHsb83S3ysWPHjnBsS5V9cW6rRKJM3gWXRd8r0d9gXXTRRZIq2w9s2bJFkipu\nzKoxY8aMcHzkyJF6pthUfLQv79emL/+wG/IzZ84k8ti2sML/jFY0z+sheT7jZJEmH5GyRQJ5v+bi\nsH1QJen666/XunXrzvu9Y15I3XzzzVq3bp0OHDigrq4uffGLX9RnPvMZrV27Vnfeeae6u7t17733\nSpJWrlyptWvXauXKlRo/frzuuOOOxDfQBAAAKIoxL6TuvvvuyPGHH344cvy2226raBoIAADQrHLr\nbF6LXbt2heOjR49KkiZPnhzGLHyYBZ9StCJZXzzXquFj348oTm+iZpNFKDuqyDwJUVHkpPc29wtD\n7D3tU3v79u2L9bh+npbmyau3WpH4z8u8076+m769hv3CAJtfnHSfpTB9KtPKQVr1szlN/v22e/du\nSc1TTO5fQ2Nhrz0AAICYGiIi5e+mbFm5v4NJ6848iq1QlMrRKd9NmbseNDp/l9nW1iapMsKWRGGw\nX4gwWsfwWvnPBSJRZXlHoTz/WrLWHP4zvJZIwKtFtbyw4mc+m9M1e/ZsSeUIs1T+/do+lX4sKfZ3\n2J83CbVkuohIAQAAxMSFFAAAQEwNkdrzIVkLt/leFUkXwo7Gb0xrc6C4emzWO8a60KMx+PdZI6Dd\nSvH5VK51HU+zPMMWNjRjp3tLa/leinEXatTL0neW4pPK/QOT6hNm72//Nz+t4vZaUpBEpAAAAGJq\niIiULxq1okm/VNqWOWex7LLVOnTXw9+Z+C6xafPFqrZPo4+ssPdW82rGAnN7PdvnnJRty5ek+WLz\nLBYK2U4LzcgiPUkXWsdh2RprNyGVn/s0o2RFiDQSkQIAAIiJCykAAICYGiK151lBm9+c1FJ6Bw8e\nzGVOWbD+WVK5sND3hiliSsMvEhgeHs7svNOmTQvHVozZyKmQsfjUhf2cPvVtqaGkCj6LzKd1s/id\n2+dR0s+tT4VbJ3Db4Fdq7Nez/ywb7es+BVjrTgHz588Px5deeqkkaWBgoKbHGItPteb1+Vuk97R9\nxvvO9UkvBMtyYVktiEgBAADE1HARqahOqVnsa5Y3H3WIugsu0p2Jyev34pdXW5F5oy3jr4YVdfrn\n2Yo6/R25RTB964laCzR9FKGod4WS1N3dHY4tIurbk9j7yBYhSOXFB2MtQpgzZ46k6M7NSZs5c2Y4\ntuhUEaPOcfj9SpNmUSJfxG47TyRd2G5d/6XyZ06Wu2wUlY+G++NmRkQKAAAgJi6kAAAAYmrYuFur\n9XPyqalmTFMlyac5LV1ThF4jSbN0W29v74iv+TSepfnqeQ6y6NGWBP9zRxVk25h1u5aq3yQ3y8Us\nfgcFm3Oj/A7G4ovmo9Tzc1r60/99SOtvhS+3sBSWTw+3appvy5Yt4bhZ0tFjISIFAAAQU8NGpDwr\nps0r6jBx4sRwXMSi70biFxEkoQgdf9NSbYRkrAhAM/EtQapVxMUq/rOskSMb/rPR7Nq1K/uJpCAq\nkumLqxv591aPRo9CWaTf78wxFiJSAAAAMXEhBQAAEFNuqb22traKokIrqPQFfBYatdSdVA6dlkql\nMGa9Q6zPi1Qu+vPh1VmzZiU2f38+f45WSO359FsSfXR8zxzfFReji5PGykNHR8eIMf+escLqqBSb\nf59fcsklkipfI83ap8Y/P0mkiPzzmGUfsKQ+D223Ap8qtM+etHp5jcX6UzUjn9ay158vk7Dfg/97\nncXn0dKlS0eMWZ81v4Ck2k2S7ed47WtfG8YuvvhiSbXtHkBECgAAIKbSuRzaFJdKJfX09GR9WgAA\ngJr19PScN5pLRAoAACAmLqQAAABiyq1SM8/Unj933inGRp+LFfAfOnQo97mYa665Jhxv2rRJUnRB\nqhUVStKLL76YylySxlyi2fnznoefQ7Vz8Ytpku6F18jPS5pqnUuaxfp5Py++H9bnPvc5SdIXvvCF\nMJbXJuV5Py/eWHMgIgUAABBTc64dbhFXX311OH7mmWckVS6VtjYFfll50u0ZrAVEe3t7GNu6deuI\n7+vu7paUTVdjey6k6CX11i6jluWtQFr8kv5m3BMyLnuf+uO8uoUvW7YsHNvvaPfu3SO+z/a1lBpn\nR4Goz8i8olD18K0RbD/awcHBTM5NRAoAACAmIlI1yquxXZQnn3xy1K9bXZCfc9L6+/slRe+vtHDh\nwnBsTRSziEj5uUTdbVmkzu/UjvwsXrxYkjQ8PBzGWul3c+TIkbynUBeLFiW9x5p/vLz3b4uKsnu2\nP5v9Vyo3qyTyXdm4M63nw9fpWgTR/w2yv4O+kWpvb28i5yYiBQAAEBMXUgAAADGR2quShSY/9KEP\nhTELG/ql9Xfeeaek6vf6yUKaKcjRimP93kf+OG1jFaRaaNkv+0W2/F5er3vd6yRVpvN+8YtfZD4n\nxJN32q0IbN/YqAJ0ZJPenDx5cjiO2qfXykrS+FtERAoAACCmhohI+d3jZ8yYIamysOzgwYOS0r0z\nsujTZZddFsYsOuXnYo0d77nnntTmMpqZM2eG48OHD+cyh6KzFhBJt4LA2Oyu8dJLLw1jVhi6ZcuW\nXOZkxe7Tpk0LY319fZLyKwRva2sLx7aUG8D5+feMRaTsekEqt6bw76ek/kYSkQIAAIiJCykAAICY\nGiK151N2Fn73hWVWNJxmJ1nrN+GLYC2lePz48TA2MDCQ2hxGY53FfXiT1B6K5tSpU5Iq36uWRstr\ngYb1l7Hu+15eqT0rXpbK88u7b12eeA7oSzUWX2JjnyU7d+4MY9bLsLOzM4yR2gMAAMhZQ0SkfFGw\n3cn6fZj8lWjafvazn4XjBx54QFJ09+wsXHTRReHY7tSK1HYBOB/f4T6LbvejsfP7yPKBAwdyms0r\nso46FD3iU9R5ZYlI1OjG+ttn0WXb2SJJRKQAAABi4kIKAAAgpoZI7R09ejTyOG95pfSMD3db2NJ3\nWQdQvbzTeXkidYZWkcbfSCJSAAAAMTVERArRhoeHwzGFiACA0YwfX/6TP9aepKgeESkAAICYuJAC\nAACIidReA/NFc7Y544UXXjji+3x/nLwUvU8NisVex34Hg7y6jAONzt5PflN7eg4mh4gUAABATESk\nGpiP7tg+TPPnzx/xdd852neJzxKRKHgrV64Mx7aX5oIFC8LYokWLJEnPPfdcGNu4cWNGs0PRzJo1\nS1JlgfSxY8dymYsVbE+dOjWMzZ49W1LlZ63fIzaN80vVF4zbXKOiupMmTUpmYgVnz0EaGRoiUgAA\nADFxIQUAABBTU6T2rJDu7NmzOc8kP7aJsw/T2vNCWg1Fs3r16nBs6eilS5eGsVOnTkmStm3blu3E\nUEhz5syRVFm6YH30+vr6wlgW6b729nZJUkdHRxizNF5a6TypnNKztLckHT58WNLYCzGs9COqtGP6\n9OlJTTFX06ZNC8dWJmB/F6Xy38EdO3aEsaR6aRGRAgAAiKlhI1K+4M7uEAYGBvKaTu6i2gtYe4RW\njtRFmTJliiSpq6srjL3wwgt5TaclPf744+HYfg/+d7B3715J0oYNG7KdGArp9OnTkqTdu3eHMdt3\nNeui88HBQUnSxIkTw1gS+7eNVURuY729vWGss7NTUmXkxZ6rtra2MDZaxKpZ2iD43T0s8ubbp9jr\nJY2O7kSkAAAAYuJCCgAAIKbSuRwqkUulknp6erI+LQAAQM16enrOu3CLiBQAAEBMuRWbVxOR+rM/\n+zNJ5cJTSXrggQdGfN+KFSskVRbh2fLpsc6dd2SMuURjLtGYSzQ7f97z8HNgLpWaeS62gKXaonPr\n1C5Jn/jEJxKdSz0a5Xdkz7eUTKF/FL8v4Sc/+clRv5eIFAAAQExcSAEAAMRU6D5S1l/mox/96Iix\nTZs2hbG3v/3tkqTNmzeHse9///uJzuXNb36zpMoND0frcTNu3Lhw/PLLLyc6lyjWL8P3yPB9NQAA\n6ag1vXTo0KGUZtIaop7vq6++Ohz/wR/8gaRy53ep3GfywIEDYeyZZ56RFN1byv/bsRCRAgAAiKnQ\nEal77rlHkvTYY4+FsS1btkgq76UjlYvC0uzQ+qY3vUlSOTIllbvs3n///WFs69atkiq7rNdyZRvX\naMX1QFFUuy+mdY323ee3b9+e3sQwgu1v5x08eDCHmRTTWJ3IkQ3r4P7e9743jL3rXe+SVJkZsn0Q\n77vvvjD2pS99SVL91w5EpAAAAGLiQgoAACCmQqf2LE1m//X6+vrCsRV9+zBe0ux8PgQ4ffp0SZUh\ncJuDfU3KJrWXpRkzZoTjJUuWSKrcTHR4eDjzOeH8pk6dKqncb00qv06feuqpMJbF5tYWhh/rXLZQ\ngpRJtvx7+/Of/7wk6Y/+6I/C2IsvvihJ+upXvxrGHnrooVTmYmlgqbwpu21GWwTVbgqMdJ04cUKS\ntGvXrjD28MMPS5ImTZoUxmyDZ//3af/+/YnMgYgUAABATIWOSFXLisjsv2n4j//4D0nSv/3bv1X1\n/RYFaEb+rtAiUUShimvu3LmSpDe+8Y1hbNq0aZLKd3OS9Nxzz6U+l2qjxvZe9u1GkD6/l9js2bMl\nSRdffHEYmzdvnqTyayqruWQRLa0VUahi+fa3vz1izHdAt+hUGn+riEgBAADExIUUAABATE2R2stC\nrV3Cmzkl4Tu1k9IrvsHBQUmV/disqNhvzJkF31W4GqRPsnX06NFw/IMf/EBS5evGiv9977y0sDMD\n6uU7oKe1ubFERAoAACA2IlJVsuLcY8eOVfX9tlxXqiyabAbcKTYWWxywfv36nGdSuyz2qUS0n/3s\nZ3lPAWgIRKQAAABi4kIKAAAgJlJ7VbrggtquOSdMmBCOi9gDJSmTJ0+WxKbJSIf1MpLKKcpq0+sA\nkAUiUgAAADERkapSrcuwmzkK5Vm3WCJSSMPChQvDse1ZSUQKQJEQkQIAAIiJCykAAICYSO2hLtbp\n2BfX02cKSbnooovCcaukyxtNrT320mSLgtLcwB54NSJSAAAAMRGRQl0sSkAHaiRpwYIFkipfVwMD\nA3lNB6+ydOnScGyfAVlEpCZOnBiOrR1Gd3d3GNu7d68k6fTp06nPBTBEpAAAAGLiQgoAACCmhkjt\nXXjhheG4ra1NUrmnjCRNmTJFknTixIlsJwbNmDFjxNi+fftymEljmzlzZji217bvpt9sxbPjxo0L\nx1FpYfvZh4eHw1gRiplbiX2urlixIoxZXy8rMJekn/zkJ6nPZdasWZKka6+9dsT8/Pvkhz/8Yexz\n2N+Wsf6O2Gt36tSpYcw2qfd/l0ZjPw+aAxEpAACAmBoiIuWXPdtyaLt7kMp3tHEiUtXehdTKR2pq\n7YreSKyjeat0Nrc2D2O1eLA9CLu6usLY4sWLJUnnzp0b8f2Dg4Ph2O5qmy0K5Y21OMEKy6u9w0fy\nTp48KUl68sknw9imTZtGfF8Whd2HDh2SJL3wwgthbN68eZIqI+BR761qWebDfm5Jmj59uqTKv0EW\nPfZROXuv+kirzcV/NtqxRdOKyhf12+eWfy/WmnXwf68twvnUU0+N+L5G/cwjIgUAABATF1IAAAAx\nlc7VEwuNe9JSST09PVmfFgAAoGY9PT3nTR0TkQIAAIgpt2LzPCNS/tzVzmP8+FeeKttbLs+52FLb\npIOJceaSFuYSLc5crAA26e7zRXxe8p6Hn0O1c1m1alU4tmLkHTt2jPi+qK7eSc8lTUnMxdovSOXi\nZ18cnvRcLr30UknSe97znjBmBe/33HNPGLN2BpdcckkY27BhQ6JzyUIjz2XOnDnh2LrdP/HEE4nO\n5XyISAEAAMTEhRQAAEBMDdFHqlpR3aGTYmH1pFN7cVi/E9+LxPqseJbS8c/LwYMHU54dioYNpYvJ\nNmZeuXJlGLOec76ju/Wk8520N2/eLKn1frd79uzJ9HwHDhyQJD366KNhrLe3d8T3WR9CdnXIj099\nr127VlK515gk/fznP0/t3ESkAAAAYmq4iJR1k/UdUK3YMM0uyFGdz22Pp6y7sVqh6VgFp3a3ShQK\nKB7rZv/rX/86jEVFXCza7HdLaLVIVF4sMvjLX/4yjPnu5cY6n+/evTubif3/rGO437uvv78/0zkU\nhX/vbNy4UVK5M33aiEgBAADExIUUAABATIVO7c2dO1dSeZNDqbxprA/Z/c///I+kygLNpFmBt9+8\nctKkSZLi9TFB8uw18ZGPfCSMLV++XJL04x//OIz99Kc/zWxOPh1jKeBjx45ldn4UlxXHVrvhd7Ns\nfu5TY6Qoa7do0aJwfMMNN0iq7ClomwE///zz2U6sQH74wx9KGntz+aQQkQIAAIip0BEp6066evXq\nMGYdxnfu3BnG0oxEGR+JMkSiiqWrq0tSZffjK664QlI5kilJjz32mKTy0uY02RJ3qRzB7OvrC2NZ\nLgTo7OwMx9YSY+/evWEsi+cDZRZF8K/N0cyePTscZ/GZl5aoNjWNFJnKe67+7469f/1iqNOnT2c+\np6KptvN/UohIAQAAxMSFFAAAQEyFTu09/fTTkqSjR4+GMesjZV9rRfYcWJpTKhcwW28rKTodmRZf\n/G/zGxgYyOz8Urm40heTb926VVK5AFPKJoU1efJkSZXdqK3nS9bPi/GF7xb+9/OzsePHj2c7sRZl\n789q07uNnM7z/OdS3mmyRuR3sXjooYdGfD2qzxXSRUQKAAAgpkJHpGzpokUV8Aq7i/N77VkkKsso\nlNfe3h6OV61aJUm68sorw1ia+xy9mu9C7I+zZHsy+rtHK6zdv39/LnOy/dmkcisGlqLnr9We92Zs\n/9HR0SFJWrJkSRizQvBdu3aldt6o6FOrvZ6KgIgUAABATFxIAQAAxFTo1B6iWR+RIvWx8gXctjig\n2o7NzcjS0jt27Mh5JmVRm2uTBgDiscUjUrmH3aWXXhrGLO2WZmrPdv2YN29eGLPUqV/UYhtkIx1E\npAAAAGIiIoVE+H3Ann32WUmV7Rns7szfxfm2FgDQSGxBiT/2WYIsumtbl3i/H62xNjQSEam0EZEC\nAACIacwLqQ984APq6OgIe5ZJUk9Pjzo7O7V69WqtXr26Ymn7l7/8ZS1btkwrVqzQgw8+mM6sAQAA\nCtWBgG8AACAASURBVGDM1N773/9+ffzjH9f73ve+MFYqlXTrrbfq1ltvrfjeTZs26Z577tGmTZs0\nMDCgG2+8UVu3bq3oto3mVyqVJFV2zZ44cWLF1yRSe0ArapbeZT51Z4ttbCNqqXIj4bTn4M9rKb1W\nXuyTtTGvcN70pjdp1qxZI8b9L87cd999uvnmmzVhwgR1d3dr6dKlWr9+fTIzBQAAKJjYxebf+ta3\n9O///u+65ppr9LWvfU0zZ87Unj179IY3vCF8T2dnZ+L7ill0yyIcHlfgxWBL/+fOnRvGrAjTuv0C\nGMmKhz1btOHbVzTyvnt+qX6WRdA+Gp4027XAL6aJCjYkzT5Xh4aGwphFx5544onUz49XxMq5fexj\nH9POnTu1ceNGLViwQH/913993u9N88ULAACQp1gXUvPmzVOpVFKpVNKHPvShkL5btGiR+vr6wvf1\n9/dr0aJFycwUAAAgY4888sioX4+V2hscHNSCBQskST/60Y/Cir6bbrpJ733ve3XrrbdqYGBA27Zt\n07XXXhvnFBV8Pww714QJE8KYFfVt2LCh7nMhnvnz54djS7vaa0SSli1bJknatm1bGPvRj36U0exQ\nNP79a8XHF154YRhrpYUIPtV1ww03SKp8fqxHkX/vNHJqz6e8LGORRRoszXPY79AXz2dRxrBp06aK\n/2Zl0qRJkqTTp08n8nhZvg7iuP7667Vu3brzfn3MC6mbb75Z69at04EDB9TV1aUvfOEL+tWvfqWN\nGzeqVCppyZIl+u53vytJWrlypdauXauVK1dq/PjxuuOOO0jtAQCApjXmhdTdd989YuwDH/jAeb//\ntttu02233VbfrF5lxowZ4bi3t1dS5R1ZPUXmCxculFQukJak/fv3j/i+pK/Am41P4drd2erVq8PY\nVVddJam8D1SraG9vD8dRr6tW5QunZ8+eLUk6ePBgXtPJ1b59+8Lx448/LqkyImWfb83y+vHdv0eL\nQPibcPu+yZMnhzH7zPYdxkczffr0muZZC8uK+N0csmh/kCX/+0i6pVFRI1HVosETAABATFxIAQAA\nxFQ6l0NMrVQqqaenJ+vTAgAA1Kynp+e8KUgiUgAAADHF7mxerzwjUv7ceUfG8pqLFc9L5aLNz33u\nc4nOpZ49tfgdRWMu0ez8ec/Dz6ER5+I/F0ZbWOM7eFdbVN3Iz4sXtVTf2r9YV3Gp+iL4Rn5eVqxY\nEY63bNky4uv2XF122WVhrNpWDdXOxdojpbmQaaw5EJECAACIiQspAACAmHJL7dXC9w5hY+Jk+LB0\nrWm3aqX1uLWwfie+b1Gr8r1furq6JEnHjx8PY63axwllY/XJs8/iKVOmhDHrC5X0uiW/Mf2sWbMk\nRXcL92nGM2fOSKo+rVYt33XfNpb2/b+OHDmSynmLyn7/e/bsGfX7lixZIkm69NJLw5h16Pe9G0fj\ne3NFPb9F6E1IRAoAACCmhohI+atQ6xTtO/9ax99qr3CTYnf1fq8su9ou+l5hZ8+ezXsKmSASVdbR\n0RGOX//610uqfJ0++eSTkirvtJEtK5z13b+LENk1lhHIIjPgP8+XL18uSbrmmmvCmEXA+vr6wlhU\nwXMSfFfvqJ+91TIl/vU5GovU+d+RRRqr/XudVJTPdlBIY59KIlIAAAAxcSEFAAAQU0Ok9sbaUNiK\n/w4fPpzZnKTyhsdXX311GLPi3aKn9hp9k0jUbnBwMBzfe++9I77u0xfIji9TWLx4saTKDXYt1bp9\n+/ZsJ5YzvxG6fdZ2d3eHMStC7u/vD2NplSz4guciFDc3ClvA4v/e2IKArFmvL//e2rVrVyKPTUQK\nAAAgpoaISI0ly0iUX0JuxWv1dPBGcuyusVWWICfN7hppN5ItH3G3SLb/TMkium2/cz+XIr2P7HW4\nefPmMDZ37lxJ5QL9NBU1WjtnzhxJlS0grJjatzbJWxoF3sZaMfjXgWWu/GKjajuqx0FECgAAICYu\npAAAAGJqitRelnyo8JlnnpEk9fb2hrFWKwgtklpTEdaTTIpexNBqrL+LpQukykLetERtAtuqdu/e\nXfHfrBQxdeV7D1nfIp/mtAL0qVOnhrG0NrAtUprMs7IWX96SZXmJ7z5vfRX953BSxdyjsdeGL0mw\nwvKxOq+PxnezHwsRKQAAgJiISNVhYGCg4r+NxBfN+7uKJPkr+iJ2UicKVek1r3mNpMrlyVlEpIhE\n5a/aTtV5idoH0jIBK1asCGMWZW6VFgV5L26K+qwYa7/GtCS9V2gtf7OISAEAAMTEhRQAAEBMpPZa\nlC+aT2uz5yKm8/AK67llBbtSuWh3aGgolzkBtbCO8NZPSip/5rz44ou5zKmV5ZXSs8+tPBcEEJEC\nAACIiYhUAflCcB85SkuWHYzpAl8M9jv3++/Z74OIFBqBtTrwn19ZfF5aJCytSD5qYxEpv4dePW0P\n4iAiBQAAEBMXUgAAADGR2iugrFN7WbBw+IIFC8JY1t2bMZJPTzRiPzS0Blsc4XvT2abxvhN/Fmlp\nUnrFsnfvXklSR0dHbnMgIgUAABATEakETJo0KRxPmTJFkjQ8PBz78bIs/s7K8uXLJUkHDhxI/Vzz\n5s0Lx/v27Uv9fEiGfx/ltZQaxTRr1ixJ0kUXXRTG/LGp53MXjS3PRTJEpAAAAGLiQgoAACAmUnsJ\n8GkIUhLRDh8+LKlcGJiGSy65RFI5DSC1bmqvVCqF4yQ2Bfb9v9ra2up+PM/6vySx0eyMGTPC8ZEj\nR+p+vKTYxuA+bW9ztYUYUvm59f29Tp06NeLxonoZ2e+onv5sfi5W4B11/qxZIfHq1avDmC3K+fWv\nfx3G6GjeuvJcpEVECgAAICYiUshEf39/6ufYsWOHJKm7uzv1cxWBFdVb5EAqF2z7gnuL9Dz//PNV\nPW5nZ2c4njlzpqTKSE8SES7v6NGjiT1WkaJQnkWafDH0mTNnJJU7M0vlJf32vEvlLs0+mmW/Z/++\nSmKnAB/h8lHNvD333HMV/5WkyZMnSypGxAz584sPdu3aVffj+QjXmN9b99kAAABaFBdSAAAAMZXO\nJR2nr+akpZJ6enqyPi0AAEDNenp6zlvWQEQKAAAgptyKzeuNSM2fPz8cHzx4UFLl0t2zZ89Kiu4S\n7s+dd2SMuUQr6ly++MUvSkp+ea0VzkqjF8/GeV6sHcShQ4dize3VrAjz85//fM1zSYudP+95+DkU\naS7f+c53wtj+/ftHfF89hdv2+vLF7vZ4vv3I3//931fMKU9F/B0xl0rVzsUWXvgFMdZuxxZ0RH2/\nVH27orHmQEQKAAAgJi6kAAAAYmrYPlJRHbJ9DxQgDWl1zE2zF47N+cILLwxjlvr2FixYIKmyq/Zo\nj1cPH4a31NDu3bsTPUejsI3OJenkyZOpnGOszcLref1FpYyT7A0GjMY+y6ZNmxbGVqxYIUnq7e0N\nY9ZbKo3dR4hIAQAAxNSwESngfFatWhWObSHCWFGWZlZtt+8sn6PXvOY14fjiiy+WJA0MDISxxx57\nTFJrRDbSikJ5OXS5QQaWL18uqfweksrvo2eeeSaXOWXNotc++mTR7YULF4Yx2/HC/iZI5ehUvdks\nIlIAAAAxcSEFAAAQE6k91MU2Y/UbPNpmp1mnZaw/SFdXVxizDXh9ODeq0LoVjBs3LhzbpsZ5pTyH\nhobCsRWb+/C6L4xvRX7DYNJyxWL9Ci+77LIwZouffN+sLFifREvxSeUei62S2jNR6Tm/ebF9/vl+\nZ/Y3g9QeAABATohIoS4nTpyQVHkH7SMfWbLCweeffz6M2Z3aFVdcEcaeeOKJbCeWMyuyXLt2bRhb\nvHixJOmzn/1sGEuq83k1tmzZEnnc6qxo2Ld/8HfVyJ9FL4oQ8dmxY4ck6Rvf+EbOMyk+H4kyUTuf\nxEFECgAAICYupAAAAGIitVclK6b2RbBpdEhtVL4gNqlwaVy+Q7ZtXukL0FvN7NmzJUmvfe1rw5j1\nV1myZEkYyzK1h2gvvvhi3lMAWsb48a9cAtX7N4uIFAAAQExEpKpkxZ9EoRqLtWDwBeitZvPmzZKk\nf/mXfwljFn168sknc5kTADQLIlIAAAAxcSEFAAAQE6k9oMmdOnVKkvTwww/nPBM0Eltg43taoVis\nMzclJ/GcOXMmkcchIgUAABATESkAwAhEpIqPSFSZtTKQqm9nkNQ+lkSkAAAAYuJCCgAAICZSewCA\nEWbMmCGpMrVnfdn8mH2f7SKQBtKMGIvt4CBJ+/bty/TcRKQAAABiaoqIVKlUkiS1tbWFsePHj+c1\nHeRs2rRp4diKCXk9ALWx99GKFSvC2PTp0yVV7gn43HPPpT4XIlKj83vAnj17NseZ5CfrKJRHRAoA\nACAmLqQAAABiaojUXnt7ezhetGiRpHJHV29gYCAck8ppXT60PWfOHEmVr5djx45JSq6rLYpp8uTJ\nksqd3etlqa6pU6eGMXvsNAutkxAn9TNz5kxJUnd3dxizY99/54knnqh/gmOoti9Qq2rVdF5REJEC\nAACIKbeIVKlUqrqrqEUVJKmjo0NS5RW4FZn19fUlOEM0Kh9pOnnypKTygoRXf72VWIRGKr9/Xn75\n5bymkwq/4CRp9hoaHh4OY43yWooTsbAI//r168PYzp07JUn9/f1hLKnu0BidtZnwjhw5UtW/nTt3\n7ogxoljJISIFAAAQExdSAAAAMZXO5RCXLZVK6unpyfq0AAAANevp6TlvGpuIFAAAQEy5FZvnEZGy\nQvWPfexjuc7D8+evZy5dXV2SKouqd+/enctckpD0XPzzUmsQtpmfl3oUcS7VzsM6ZUvShAkTJCVX\nOF7rXNLEXKI121x8iwqza9euXOaSlCzmYotTTpw4UdVczoeIFAAAQExcSAEAAMRUuM7m48aNC8fX\nXHONJOn06dNhzHpG+U63Fp4bK5RZbc+NRmGdhyXpxhtvlCQ9+eSTYazW1F4zo9dNY7HecX4D6jip\nivMZP7780VdtSq8VNs6dOHFiOC5Sj6yFCxdKKu9K8OrjVuc71/vXdpZmz54tqbLPWhHZPKXyJtxj\npfbGQkQKAAAgpsJFpHyn5cHBQUmV+6RZN1YfYbDu1WPxka1m88gjj0hK9q69UVnxsFR+7XD3Wnx/\n8zd/E44vvvhiSdIdd9yRyrmq7eq8ePHicGyvq+3bt6cyJ2/NmjXh+OjRo5Kk//u//0v9vLNmzQrH\ne/fuTf181bL3r70upPLn+cGDB8PYgQMHsp1YQWzdujUc2+/Qd0JPKxvjI5ive93rJElDQ0NhzDJH\nfteRvDNDPmKWVKaCiBQAAEBMXEgBAADEVLjUnmfF0qtWrQpjl112maTKoupqU3vN5vDhw5HHre6l\nl16KPEZ18io4nj9/fji29MBzzz2X2fm9pUuXSpJuuOGGMGbpiSxSew899FDq5/Bskc+pU6cyPW+1\nLLX3wgsvhDFLG/mFR5AOHTqU2ble85rXhGNL7a1cuTKM2e/rzjvvDGNppfb8huWjFY/770vq2oGI\nFAAAQEyFjkgZf8dhxZ9PPPFEXtNBBB81tLv5devWhbEs75JaRdLL8a07si8WzZIvNs+b3dH6iJwv\nam42tsgni9YOPuJp0YFql8w384KhRjR16tRw/Hu/93uSpNWrV4cxa1vhM0j9/f2pzMUvDOns7JRU\nmZGw9/Szzz4bxpKKuBORAgAAiIkLKQAAgJgaIrXnewD19vZKKm5RZKvyHemtd1N7e3sYI7WXvCTS\nML7XjKV3fC+3VmU97O66664w5rtHN6spU6aEY3t91dv1eTSNWCjud5QwrbrYx/4eS+XFGFbaIZV3\nKPApwLT4z61FixZJqvx8s4UrfsPypBCRAgAAiKkhIlIDAwORxyiOp59+Ohxbl12ihsXnlyJbB232\nJYxWbTf0pFm0N4tIoS/6LpVKqZzDF/gWaT+/as2dO1dSZWRqw4YNeU0nVz4i9fDDD0uqzD7YbgC+\nS75FPZNuW+SvDR599FFJlfsObt68WVI6n29EpAAAAGLiQgoAACCmhkjtobGQ0mtMrZTS82mrov/c\nWRb/F3UnAEsRFWF+e/bskdS6Beae/3386le/kiRt2bIljFkfKf99F1100YjvS8Lx48fDsd/EOQtE\npAAAAGIiIgWg5RQ9CoVKRfp9WZF0q+7xej4HDhyQVFlsbscLFiwIY9Yep5kQkQIAAIiJCykAAICY\nSO0BQBWy7OfUSKyvkqV20mA9m6zoXCr3QCPFViz+/WEF+b7D+P79+zOfU9qISAEAAMRERAoAqmCR\nl6GhoZxnUiy2j1qaESk7h/0OpPLSeutYLRGdKgK/r968efMkSf39/WHMdlBoJkSkAAAAYuJCCgAA\nICZSewViGyz+9re/zXkmaGW+MNRvatysqu2abSkLUnvS9OnTw3EWOxns2rVLUmWKyDa/zWsz6Xo0\nYy8l418P1m28GdN5HhEpAACAmHKLSE2aNEmnT58eMX7BBeVrO7vr8cspjx07lv7kckIkqvjsLrgI\nRa1JL8dva2uTVHm3XG1Eyvaui+pA7Zes22Mn9T72e+bFZZHgsSJSO3bsqPtczWLWrFnhuLe3N7Pz\n+s/IRoxy2N80e681I/95tG/fvrofz18T/O53v6v7cep5jPM+duKPCAAA0CK4kAIAAIipdC6H3SBL\npZJ6enqyPi0AAEDNenp6zrt5NhEpAACAmHIrNv/CF75w3qu7tPloWN6RMeYSLc5cJk+eLCn55dhp\nPi/WaqDaou5G/x2lxc6f9zz8HJhLJeYSrda5+OLrRYsWSapcvGH722UxlzQVcS7nQ0QKAAAgJi6k\nAAAAYsottTdlyhSdOHEir9OjCa1evVqStHv37jDmOyEb64Fz6NChbCY2ilboHB7Fb2xq3Y/z1tHR\nEY7pXo6i8n2Qzpw5I6m8ObBUX2qvVlF9H7M8f1EQkQIAAIgpt4hUEh2JAW/Dhg2Syh2/z6cROyI3\nmyJGpPzddV5WrVolSXr7298exp588klJ0sMPP5zLnJLqLN0sLPJy4YUXhrEDBw7kMhfrHJ5EB/E4\n/Oth7ty5klSxY0nU7iXNaNRPjr6+Pl1//fW6/PLLtWrVKv3zP/+zJGl4eFhr1qzRpZdeqre+9a0V\nobwvf/nLWrZsmVasWKEHH3ww3dkDAADkaNQLqQkTJujrX/+6nn/+eT322GP6zne+o82bN+v222/X\nmjVrtHXrVr3lLW/R7bffLknatGmT7rnnHm3atEkPPPCA/uIv/oI7GAAA0LRGTe3Nnz9f8+fPl/RK\nKP6yyy7TwMCA7r//fq1bt06SdMstt+jNb36zbr/9dt133326+eabNWHCBHV3d2vp0qVav3693vCG\nN4x47KKE8+tRaw8gpOvs2bPn/ZpPTyS1yS/i27t3byKP49Mr9RocHEzsseKyFJHfQHmsVHXauBmu\nZKUB/vcy2qbdzayrqysc2yKf0T6Hm1XVRQG7du3SU089pde//vUaGhoKK1w6OjrCCpc9e/aos7Mz\n/JvOzk4NDAwkPGUAAIBiqKrY/Pjx43r3u9+tb37zm5o2bVrF10ql0qiF481cVE4kqnH4u+pWvXts\nRs0WXRweHpYkbdy4MYyxOKKYmu21F8fBgwfDcStGosyYEamXXnpJ7373u/Wnf/qnesc73iHplSiU\nheYHBwdDD4tFixapr68v/Nv+/v7Qwh4AAKDRPPLII6N+fdQLqXPnzumDH/ygVq5cqU9+8pNh/Kab\nbtJdd90lSbrrrrvCBdZNN92kH/zgBzp79qx27typbdu26dprr633ZwAAAMjF9ddfP+rXR03tPfro\no/r+97+vK6+8MnSN/vKXv6zPfOYzWrt2re688051d3fr3nvvlSStXLlSa9eu1cqVKzV+/Hjdcccd\nTZ3aQ7mnSiOlH9ra2iRls+BhwoQJ4diisz4c7jcbRe2aLb0S1XXf2svY4haJsgKMbfz48p93+8xL\n+nVz8uTJRB+vUY16IXXdddedd8XG+ZrD3XbbbbrtttvqnxkAAEDB5dbZHM2hkSJR5re//W1m57r8\n8svDsdUS+ojUE088kdlcUHy2Ajpqr7/JkydnPR00Cfa1TVf+eyIAAAA0KC6kAAAAYiK1h5aTxUaa\n1nHbF3xa36qJEyeGsZkzZ0qqTJHSSRpRTp06lfcU0ECyKGHwOwtY6cKkSZPCmPWW6u/vD2PN+PlG\nRAoAACCmpo1I2V3/mTNnUj+XbzoatRzUL2VG67L903xLBNtqyfa0lKStW7dKas47NwDNw0ekLr74\nYkmVf3P3798vSRU7ojRj6w4iUgAAADFxIQUAABBT06b20krpWSdvSVqwYIEkafny5WHM+r/4jtVp\npfYsLSSVNzv1hX729e3bt6dyfpyfFVn60Lel76x7tVQOh/vXy5YtW7KYIgDUxe8OYaUIfjHP1KlT\nJVUuuiG1BwAAgKBpI1Jp8UVztveV30/Qrrb37duX+lwuueSScLxs2TJJUnd3dxizqBwRqfz4wnKL\nXPpu5zt37pQkPfvss9lODAASZPv5tbe3jxhr9r9BRKQAAABi4kIKAAAgptxSezNnztThw4dHjPtU\niPXdKZILLihfe1pqz/eO2rNnj6RsNvO180vloj7rlC1Jv/71r1OfQ618GtQ6fTezgYGBcDw4OChJ\nmjNnThjr6+uTJG3bti3bibUAe3/4glgres2ivxzisc+IpD4f7LPRvw6QjMWLF4fjVatWSZK6urrC\nmHU7X79+fRjbsGGDpGw3j08bESkAAICYcotInThxInK8iFEozyII/jivKNrPf/7z/6+9ewmN6orj\nOP4bbAq+Foo6iYkSGRNjNU4CoV2UouKju6i40YUI6saVQgndjgttFbqo0lWp4K5dtXZhJCC+EDSL\nphsFjRohxsRHfJCoMFZOF3KuZ/SOmZzM3Dsz+X42vV6nc45zcm/O/M///k9wbL91uY/b25IIU1Hs\nCNJ0iEK53CRLG6Xs6ekJztnSGNX4SHAc3PIfYZ/p27dvo+xORbPXvnt/sztGuFH4qXymNsLvVvGf\nP3/+R+9rH6n32SfTvSeiuNzfMefOnZOUu9PHsmXLJOVG5qspEmURkQIAAPDERAoAAMBTwsSw1pJI\nJJTJZKJuFgAAYNIymUze1BQiUgAAAJ5iSzaPMyLlth13ZKyUfbFJooUmwFfL5zJr1qzg2E2KjaMv\nxUZfwtn2C+3H119/HRzb5Ndr16599LqZM2cGxzYheqLSCZPtSymF9cWWgChl0u+MGTMk5Sb/d3V1\nfdSXT3GTxO3elWHcMbIJ6p96vduHch2jT3FL8LhJ+sXsy7Fjx4JzxbiHTqUv5TRG+RCRAgAA8MRE\nCgAAwBObFhfIVgwPq8ZeThYsWBAc27BvMepJVQK7pGdr3UifDkuXexX9SmKXciqlTpPdTFV6XwH9\nyZMnwTlb36ujoyM4Z+uAXb16NYoulkwUdXzsz0G+eoGFcDe/desQfai9vT04Hh0dlSTdvHnTu91y\nZ2sGSqXbQcNnOa/YFekrCREpAAAAT0SkClQpEQv3W3UqlZI0fSJSNgl4om9TbiQKxVFoJMruvfXo\n0aNSdmdCbnX5MDZi5Uagb926VdI+SdLcuXMl5e6ZaT+r6bY/oHsvC2MT2e1nVsj/Uw2i2MfVh91D\n1L3/xpWoHjUiUgAAAJ6YSAEAAHhiaa9APptlxu3+/fuRtbV48eLg2CZ8Rr0UUejyUpTLtDaRWYp2\nY2J3+dIm7brtTyUJeCq+/fZbSbmbf1+4cEFS7kMCNoE4rsRu+/n09vZG2u7Y2FjOf33YOlH5VMqD\nMxMlxdt78p07d4Jzjx8/LmmfisXdDL5a2GVVd6k1bm7NLbtcP5VrK287RX9HAACAaYKIVIHstzx3\nhlvuCehRRIRaWlokSYcOHQrO2eT2/fv3l7z9cleKbz+FcKtC2wjE+Ph4cM6WK5g3b15wzj62bCOK\npTAyMpLTvmu6JVOXykSPn9fW1koqbUSqGFGvQiPMt2/f9m4jLtVcIiCue55r69atknLvb/be093d\nXfT2iEgBAAB4YiIFAADgiaW9AtlNMKs5JOvDJjC7dYFs0rAbVrWVoqNmE63dBMi7d+9G1n6xNxUt\nlPtzaqtCh9WfcevuuNW+S+X69euSJk52r/Tq4XEqh+ryxVg2dJenk8mkpNyf6ygfpkFlscuL7obW\n/f39JWuPiBQAAIAnIlIFIhIVbnh4WJJ04MCB4FxcUZgwr1+/jrsLsXCjEoU+FBFFSQSb8F5odWa3\nJALJ6MVR7mUPLPc+Yvtc7g/4oDycO3cu0vaISAEAAHhiIgUAAOCJpT0URTkt57nsUpJbQ2k6cOs0\n2eWxclgWmewOAQsWLAiObdI8piauBz8my61sXg61iYB8iEgBAAB4IiIFVCE32Xz+/PmSCk/wLqVC\no2KzZs2S9L58hfQ+KlEO/45KRtJ+6bh7XJZDBBjRICIFAADgiYkUAACAJ5b2gCrkLt+UUy0tW4/N\nXbJ7/PixpNyaUc3NzZKk+vr64JzddJSlPZQrd2nPbnDPUmr1IyIFAADgiYgUUOVGR0fj7sJHwsog\nuPti2W/z7n5qNiIFlKtXr17F3QXEgIgUAACAJyZSAAAAnljaAxC5sErVbhL5ixcvJElPnjyZ1Pu6\ny4PllGRvucnItlaW/bf6sEug7vtVSxV/tzq/WxcN7yUSCUnvH+JAPIhIAQAAeCrriNTnn38uKfdb\n12T36gJQejbSMpVqzu5+jQ8fPpQ0+ehKsaJQs2fPliS9fPnS+z0+++z97dWWcXA/H3tf84lILV68\nWFLuZ2YTnd37ZZg5c+ZIKm3katGiRZKkR48eeb+HG4Wy0bZiJ3MvXbo0OLYPM2Sz2aK2Eaa2trYo\n7zN37lxJub8XbSSvHCOy1YqIFAAAgCcmUgAAAJ4SJoYstUQiobVr12r9+vVRN40YnT9/njGfRhjv\n6Ycxn16m03hnMpm8Sf1EpAAAADzFEpFat26dLl68GHWzAAAAk7Z27VpduHAh9O9imUgBAABU9FKE\niAAABA9JREFUA5b2AAAAPDGRAgAA8BTLROrs2bNqaWlRU1OTjh49GkcXUGKNjY1as2aN2tvb9eWX\nX0qSnj59qk2bNqm5uVmbN2/W8+fPY+4lpmLPnj1KJpNqbW0Nzn1qjH/44Qc1NTWppaVFPT09cXQZ\nUxA23plMRg0NDWpvb1d7e7u6u7uDv2O8K9vg4KDWr1+vVatWafXq1Tp+/LgkrvFQJmL//fefSaVS\nZmBgwGSzWZNOp82NGzei7gZKrLGx0YyOjuac6+rqMkePHjXGGPPjjz+a77//Po6uoUguXbpk/vnn\nH7N69ergXL4xvn79ukmn0yabzZqBgQGTSqXM27dvY+k3/ISNdyaTMT/99NNHr2W8K9/w8LDp6+sz\nxhgzNjZmmpubzY0bN7jGQ0Qekert7dXy5cvV2Niompoa7dixQ6dPn466G4iA+eA5hr///lu7d++W\nJO3evVt//fVXHN1CkXzzzTeaN29ezrl8Y3z69Gnt3LlTNTU1amxs1PLly9Xb2xt5n+EvbLyl8A1z\nGe/KV1tbq7a2NknvthVauXKlhoaGuMZDRD6RGhoa0pIlS4I/NzQ0aGhoKOpuoMQSiYQ2btyojo4O\n/frrr5Le7Z+WTCYlSclkMthPDdUj3xg/ePBADQ0Nweu47qvHiRMnlE6ntXfv3mCZh/GuLvfu3VNf\nX5+++uorrvEQkU+kEolE1E0iBleuXFFfX5+6u7v1yy+/6PLlyzl/n0gk+FmochONMeNf+fbv36+B\ngQH9+++/qqur03fffZf3tYx3ZRofH9f27dv1888/B5skW1zj70Q+kaqvr9fg4GDw58HBwZxZLKpD\nXV2dJGnhwoXatm2bent7lUwmgx3Wh4eHgx3iUT3yjfGH1/39+/dVX18fSx9RPIsWLQp+me7bty9Y\nymG8q8ObN2+0fft27dq1S1u3bpXENR4m8olUR0eH+vv7de/ePWWzWf3xxx/q7OyMuhsooVevXmls\nbEyS9PLlS/X09Ki1tVWdnZ06deqUJOnUqVPBhYnqkW+MOzs79fvvvyubzWpgYED9/f3B05yoXMPD\nw8Hxn3/+GTzRx3hXPmOM9u7dqy+++EIHDx4MznONh4gjw/3MmTOmubnZpFIpc+TIkTi6gBK6e/eu\nSafTJp1Om1WrVgVjPDo6ajZs2GCamprMpk2bzLNnz2LuKaZix44dpq6uztTU1JiGhgZz8uTJT47x\n4cOHTSqVMitWrDBnz56Nsefw8eF4//bbb2bXrl2mtbXVrFmzxmzZssWMjIwEr2e8K9vly5dNIpEw\n6XTatLW1mba2NtPd3c01HoItYgAAADxR2RwAAMATEykAAABPTKQAAAA8MZECAADwxEQKAADAExMp\nAAAAT0ykAAAAPDGRAgAA8PQ/lmdbw7Uf8/AAAAAASUVORK5CYII=\n", "text": [ - "" + "" ] } ], @@ -442,7 +445,7 @@ "cell_type": "code", "collapsed": false, "input": [ - "feat = net.caffenet.blobs['pool5'].data[4]\n", + "feat = net.blobs['pool5'].data[4]\n", "vis_square(feat, padval=1)" ], "language": "python", @@ -451,9 +454,9 @@ { "metadata": {}, "output_type": "display_data", - "png": "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\nAAA4+P8Ax6Uy59fB6ecAAAAASUVORK5CYII=\n", + "png": "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\n", "text": [ - "" + "" ] } ], @@ -472,7 +475,7 @@ "cell_type": "code", "collapsed": false, "input": [ - "feat = net.caffenet.blobs['fc6'].data[4]\n", + "feat = net.blobs['fc6'].data[4]\n", "plt.subplot(2, 1, 1)\n", "plt.plot(feat.flat)\n", "plt.subplot(2, 1, 2)\n", @@ -484,9 +487,9 @@ { "metadata": {}, "output_type": "display_data", - "png": "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\n99nllwevx3azcaPxPGnnzsLfa9bs+bVto3slS/sr6PonuU6VWh1qxWD6SehSNi7GaXYRli5T/oqi\nNIVJ1MOs8//+32a6q6MOcv/FL2rXHTYWU5L64VH60OgosnidTlsqCVY1fjvvxz8OV0bY8lHd+PF7\n/i4+bM5md4GLwsQYZ338xgja3j7Vxr6ZGN/kd2F2IQFzpTXFZnezSeWxzJwpzZsXbNnvfrfw4yyt\n/f6Nb5gtz0ZXpe0xWNwokTznxmCZXC5qt0ktQZf9n//p+g69LMrlpGee6T69tbX7tE2botVRz7+M\nTCRbceZ36Ve4rdZlFxKiKPsq68f7+ecXxgquXx98mbjJg63lyyWZCJp4L2MSat1Qg+6cS7BMDnKP\nUr6pMh59VPrP/yw8ZuGYY+LXmZZK6+p3q+/118erw+WXiSY1KLd4fK9fL33wg93LSOvF3ya4NgbL\nxvO2wvxYyNoPi+3bu08z9WM5aDlbtsSvO4gwXZWmyrddJ5Ln3BisWmVk5SA7+eRCctVIimO1wsrK\nPg0qzliT4vRK27LacpVeRVUrkShPbE20NNXqIjQpbLnFJ9SbTOjjrGNWugg//enu00wlki4mmy50\nY5eykdRV+jzsY1bgz7m7CG1fbDhI0nH77ZU/c/HiWq48NtMX37h3LOXz/q81CdIVZeO8SnIMWVRP\nPmmurPJjOMg2j3rcu7Q9wyZYWX0OVpjP4taXtS7vSg8uRUoJVjXVduzcudItt5gp64c/rL6s3xij\nRpTEr7gsdBGGEeTiVGncRdTt/c470ZYrrduV+V1X7QspzDEcp6XTNJvjYovzzJsnTZ1qru4oXDkW\noyRvtmOPOjwn7rsN61mmuggnTQo3f7UL4euvR4tBCv8l6FpTcxhJXJDC1GGy1aHI1lOr4yxnStwv\ncZOtW0GTj7QTuChfcGFbsMKWmxQb2744zze+IW3d2n05F3smal0Tkm4xM1FnrdbD0vL/538Kz+Or\nNR+qcy7BysLOS/sLoN6E2T4f/rC9OMIIGrOJYyVsGX6DkU0KMj4jC12EJoX98gnaRej6tjM1BstW\n3VmS1PpUaj0vrf+22wpvlEA8zo3Bsl2PzbrLM/56kMUuwltvlSZMMFNWkakWiSTMmLHn72rjXkrn\nMS3uIPe0t2FUYdY1q+tYKsx6Pvts5c+Tah0JU77NJ7lXW99K10FT26YejrusyNQYLFdUOvHqMeP/\n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\n1xD7vEePHlq0aJFWrVqlRx99VHPL3itVr/u7fL3z+Xzd7+8HHnhA/fr108iRI31bbqT63N+V1juJ\n/W08wQryANKsO/jggyVJBx10kM4880wtWLBAzc3NWvvei6XWrFmjfv36Seq+PVatWqVDDz00+aAN\nCbOeAwYM0KGHHqpVq1Z1mZ7F9e/Xr9/ui89FF120u5u33tZ7+/btOvvsszVu3DidccYZkhpjnxfX\n+4ILLti93o2yzyVp//3312mnnaZnnnmmIfZ3UXG9n3766brf30888YRmzJihww47TGPHjtWcOXM0\nbty4ut/ffut94YUXJrO/jYweK7F9+3bvgx/8oLd8+XLv3XffrbtB7ps3b/Y2btzoeZ7nbdq0yTvp\npJO8P/7xj96VV17ptbW1eZ7neddee223gYLvvvuut2zZMu+DH/zg7gFzWbB8+fJug9zDrufxxx/v\nzZ8/39u1a1dmBkSWr/fq1at3/3399dd7Y8eO9TyvvtZ7165d3rhx47zLLrusy/R63+eV1rve9/mb\nb77pvf32257ned6WLVu8UaNGeQ8//HDd7+9K671mzZrd89Tj/i6Vz+e9T3/6057n1f/5Xap0vZM4\nv40nWJ7neTNnzvSGDBniDR482Pve975no4rULFu2zBs+fLg3fPhw76ijjtq9fuvWrfNGjx7tHXHE\nEV5ra+vuE9jzPO+73/2uN3jwYO8f//EfvVmzZqUVemif+9znvIMPPtjr1auXN2DAAO8Xv/hFpPV8\n+umnvaOPPtobPHiwd8kll6SxKqGUr/dtt93mjRs3zhs2bJh3zDHHeJ/5zGe8tWvX7p6/Xtb7scce\n83K5nDd8+HBvxIgR3ogRI7wHH3yw7ve533rPnDmz7vf5c889540cOdIbPny4N2zYMO/73/++53nR\nrmX1sN71vr9L5fP53XfT1fv+LjV37tzd633BBRdY3988aBQAAMAwKw8aBQAAaGQkWAAAAIaRYAEA\nABhGggUAAGAYCRYAAIBhJFgAAACGkWABAAAYRoIFAABgGAkWAACAYSRYAAAAhpFgAQAAGEaCBQAA\nYBgJFgAAgGEkWAAAAIaRYAEAABhGggUAAGAYCRYAAIBhJFgAAACGkWABAAAYRoIFAABgGAkWAACA\nYSRYAAAAhpFgAQAAGEaCBQAAYBgJFgAAgGEkWAAAAIaRYAEAABhGggUAAGAYCRYAAIBhJFgAAACG\n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\n", + "png": "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\nnULet3dR/+VOZHt7hh08eNAbO3ast2nTJm///v3elClTvOeff950NakaM2aMt2PHjj6fffnLX/au\nvcezGPcAABuTSURBVPZaz/M8r7m52bvqqqs8z/O85557zpsyZYq3f/9+b9OmTd7YsWO97u7uxGOO\n4pe//KX31FNPeZMmTTr0WZjl7Onp8TzP8/70T//Ue/zxxz3P87yPfOQj3j333JPwkoTjt9wLFizw\nvv/97w+YNk/L3dra6q1du9bzPM/btWuXN378eO/555/P/TYvt9y1sM13797teZ7nHThwwJs2bZr3\n8MMP5357e57/ctfC9vY8z/v+97/vXXzxxd6sWbM8z6uNY7rnDVzuJLa38StYtgYgdY3X787q0qVL\n1dTUJElqamrSkiVLJEl33XWX5syZo8GDB2vMmDE64YQTtGbNmsTjjeLMM8/UsGHD+nwWZjkff/xx\ntba2ateuXYeu9H3qU586NI+r/JZbGrjNpXwt98iRIzV16lRJ0lFHHaWTTz5Z27Zty/02L7fcUv63\n+Tvf+U5J0v79+9Xd3a1hw4blfntL/sst5X97b926VcuXL9dll112aFlrYXv7Lbfneda3t/EEy28A\n0uLBKi8KhYLOOussnXrqqYfGAWtvb1ddXZ0kqa6uTu2/GzH0tdde6zN8RdbXR9jl7P/5sccem9nl\nv+GGGzRlyhTNmzfv0GX0vC735s2btXbtWk2bNq2mtnlxuU8//XRJ+d/mPT09mjp1qurq6g7dJq2F\n7e233FL+t/fnP/95ffe739URRxw+9dfC9vZb7kKhYH17G0+wCjUwlOvq1au1du1a3XPPPbrpppv0\n8MMP9/m+UChUXA95WUfVljNPPv3pT2vTpk1at26dRo0apS9+8Ytph2RNV1eXZs+ereuvv15D+r1V\nPc/bvKurSx//+Md1/fXX66ijjqqJbX7EEUdo3bp12rp1q375y19q1apVfb7P6/buv9wtLS25397L\nli3TiBEjVF9f73vlRsrn9i633Elsb+MJVpABSLNu1KhRkqT3vOc9Ov/887VmzRrV1dWpra1NktTa\n2qoRI0ZIGrg+tm7dqmOPPTb5oA0Js5yjR4/Wscceq61bt/b5PIvLP2LEiEMHn8suu+zQbd68LfeB\nAwc0e/ZszZ07V+edd56k2tjmxeX+y7/8y0PLXSvbXJLe9a536ZxzztGTTz5ZE9u7qLjcTzzxRO63\n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\nFO7/RF8068UAAAAASUVORK5CYII=\n", "text": [ - "" + "" ] } ], @@ -503,7 +506,7 @@ "cell_type": "code", "collapsed": false, "input": [ - "feat = net.caffenet.blobs['fc7'].data[4]\n", + "feat = net.blobs['fc7'].data[4]\n", "plt.subplot(2, 1, 1)\n", "plt.plot(feat.flat)\n", "plt.subplot(2, 1, 2)\n", @@ -515,9 +518,9 @@ { "metadata": {}, "output_type": "display_data", - "png": "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\n8/795edN64UgiPzzVbn1LrYtStWHMMnb5s3ZFzOX8rvfSd//vv+yJXPdALxOF0eHdlP19c47vS3H\ndMuVnzJMKFXPK/3YNy1wctXY2KjTTjtNp5xyim655RaTMSWmMLkK9i29KfDyk3r9R7E+Nf5Ofk1l\np8g/eftZrzj7XPk/4TdZdbvEVF8ht9aq/HlXrmzyFVdalL+QNEVcfnEnnSSdd1756Z56yn/ZUvfk\nquux0BSs0BJsulhHtb+L3cmwv89Vk+t8tFx5Fyi5am9v11e+8hU1NjZq3bp1WrhwodavX28koCR3\nkt8+V+6aAi/fRB+usILfFmwq8nmncrdMbeC/dc1/chXlbUG/fa68LMstKf7DH5oCxeeXn9uCXubz\nurziLQtNoZYRthWg8FVcJs+Xpb9YeK/nNt2lCL8Mb+tdbL9u2VJ6ein7jsog50wT553i0zT5Kxzd\nBEquVq5cqZNPPllDhgxRr1699PnPf16LFy82HVvswrZclWv1aG3tfBHshRd6KzPJDo2mnxYMmlzF\neVvKa8tV8BY+87cF87drFLda/AzPYVpSXy6iWO5//mf45MpUy6QbU08LehW09TqqZRRT7i0CpZYR\nNvl/771g8+V78EH/8xRT7C4HLVfdBRqh/c0339TgwYM7fq+trdWLbo/HqLNy7N3btX9HMQcOFP9b\n7ltb4RvF3abx+rnUGVfuxZWtrV0/37PHfb729s5yW1ulv/2t+zRHHSUNHZr9+bbbpGXLsj8//nj2\n//zXy7S2ZqfJfbZ7t9TS4m09cp/nps+tQ2tr53q8847Us2fxeaSu27bYy2Jz8RUe+Pnlul3k86d3\nO0kUW7f8mPL3Ran61NLSuQ1KKVzmrl3S0UeXny9/XYrVx3373NfJ7ZVCe/d2TutW30rV3507O38u\nVldzWlu7HpP565G/jIMHs/+/917Xi24uzsLjtNzLzYO+/Dz/wpZfRm6b59e1/JhKnSPc4srVldz2\n2LOn8+fdu7PrXaiwfr37bnbaXL3MlZ0fV66cwrpRWCeK1e39+zvn27+/c93z5/dynnXzzjvSxz8u\n1dRkfy88vnPL3bQpe5z06NFZT/Lt2SP16ZP9ufD8VTjd7t3evnTt2CF98IPlpyu0e7f7a2IKlarP\n+cdX/t9zdfPAgc79+rOfSd/7Xud0xeph4XZxq1+7d3e9puzf33V7b93a9cXLbnUvX6lra6k4csss\nvIa3tHSWadMtXltkHMf/Zvmv//ovNTY26r73h599+OGH9eKLL+qee+7pmObkk0/Wxo0bzUUKAAAQ\nkaFDh+r11183UlaglqsTTjhBW/JuJm/ZskW1tbVdpjEVIAAAQJoE6nN1xhln6M9//rM2b96sgwcP\n6he/+IU+9alPmY4NAAAgdQK1XPXs2VM//OEPdf7556u9vV1XXXWVhg8fbjo2AACA1AnU5woAAADu\nIhmhvRIHGM03ZMgQjRkzRvX19TrrrLMkSbt27dLEiRM1bNgwTZo0SbvzHteYO3euTjnlFJ122mn6\nbe4V9CkwY8YM1dTUaPTo0R2fBVnPP/7xjxo9erROOeUUff3rX491HYJwW+9Zs2aptrZW9fX1qq+v\n1+O5xz1VGeu9ZcsWnXPOORo5cqRGjRqlu+++W1Ll7+9i613p+3v//v0aN26cxo4dqxEjRuib3/ym\npMrf38XWu9L3d057e7vq6+t10UUXSar8/Z1TuN6x7G/HsLa2Nmfo0KHOpk2bnIMHDzp1dXXOunXr\nTC8mUUOGDHHefvvtLp/deOONzi233OI4juPMmzfP+cY3vuE4juO8+uqrTl1dnXPw4EFn06ZNztCh\nQ5329vbYYw7iueeec1atWuWMGjWq4zM/63n48GHHcRznzDPPdF588UXHcRznggsucB5//PGY18Qf\nt/WeNWuWc8cdd3SbtlLWe/v27c7q1asdx3Gcffv2OcOGDXPWrVtX8fu72HpX+v52HMd59913Hcdx\nnEOHDjnjxo1znn/++Yrf347jvt7VsL8dx3HuuOMO59JLL3Uuuugix3Gq43zuON3XO479bbzlqlIH\nGC3kFNxNXbJkiaZNmyZJmjZtmhYtWiRJWrx4saZOnapevXppyJAhOvnkk7XS7SWCFpowYYL69evX\n5TM/6/niiy9q+/bt2rdvX0cL3xVXXNExj63c1lvqvs+lylnvgQMHauzYsZKk3r17a/jw4XrzzTcr\nfn8XW2+psve3JB111FGSpIMHD6q9vV39+vWr+P0tua+3VPn7e+vWrVq6dKmuvvrqjnWthv3ttt6O\n40S+v40nV24DjOZOVpUik8novPPO0xlnnNEx1ldzc7Nq3h99r6amRs3vv2F127ZtXYapSPv28Lue\nhZ+fcMIJqV3/e+65R3V1dbrqqqs6ms8rcb03b96s1atXa9y4cVW1v3PrffbZZ0uq/P19+PBhjR07\nVjU1NR23Rqthf7utt1T5+/u6667Tbbfdph49Oi/71bC/3dY7k8lEvr+NJ1eZKhgH/4UXXtDq1av1\n+FdEBQcAABnmSURBVOOP695779Xz+cPkKrsNSm2HStlG5dazklxzzTXatGmT1qxZo0GDBumGG25I\nOqRItLS0aMqUKZo/f7765IbZfl8l7++WlhZdcsklmj9/vnr37l0V+7tHjx5as2aNtm7dqueee07P\nPPNMl79X6v4uXO+mpqaK39+PPfaYBgwYoPr6etcWG6ky93ex9Y5jfxtPrrwMMJp2gwYNkiQdd9xx\nuvjii7Vy5UrV1NRox44dkqTt27drwIABkrpvj61bt+qEE06IP2hD/KxnbW2tTjjhBG3durXL52lc\n/wEDBnScfK6++uqOW7uVtN6HDh3SlClTdPnll2vy5MmSqmN/59b7sssu61jvatjfOcccc4z+4R/+\nQX/84x+rYn/n5Nb7pZdeqvj9vXz5ci1ZskQnnXSSpk6dqqefflqXX355xe9vt/W+4oor4tnfRnqL\n5Tl06JDzkY98xNm0aZNz4MCBiuvQ/u677zp79+51HMdxWlpanPHjxztPPPGEc+ONNzrz5s1zHMdx\n5s6d261j4IEDB5w33njD+chHPtLRQS4NNm3a1K1Du9/1POuss5wVK1Y4hw8fTk0HyML13rZtW8fP\nP/jBD5ypU6c6jlM563348GHn8ssvd6699toun1f6/i623pW+v3fu3Om88847juM4TmtrqzNhwgTn\nySefrPj9XWy9t2/f3jFNJe7vfE1NTc4//uM/Oo5T+cd3vvz1juP4Np5cOY7jLF261Bk2bJgzdOhQ\nZ86cOVEsIjFvvPGGU1dX59TV1TkjR47sWL+3337bOffcc51TTjnFmThxYscB7DiOc/PNNztDhw51\nTj31VKexsTGp0H37/Oc/7wwaNMjp1auXU1tb6zzwwAOB1vOll15yRo0a5QwdOtT56le/msSq+FK4\n3vfff79z+eWXO6NHj3bGjBnj/NM//ZOzY8eOjukrYb2ff/55J5PJOHV1dc7YsWOdsWPHOo8//njF\n72+39V66dGnF7++1a9c69fX1Tl1dnTN69Gjn1ltvdRwn2HmsEta70vd3vqampo6n5ip9f+d75pln\nOtb7sssui3x/M4goAACAQZEMIgoAAFCtSK4AAAAMIrkCAAAwiOQKAADAIJIrAAAAg0iuAAAADCK5\n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\n", + "png": "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\nP4W9gaXhaUGTLZVxHB8b9qlN97j8bvzcOFSCq+ISDa7KVZw0HrgoTwYbTrQgZSj1tKAXppuzd+7M\nPo0VtaiPV/4+dHuFUZgBqHGce17GXAW9aUXRErR8ecfWwSj4+UIT9qZ+4on+5hsrxYbrU1h+rlHl\nHrjyUwd37bJv6oZS633hC9n/03iPjosVY67KfdNJ6pUdfiqjLZUsjoGefrm9pT5ot6DXLsJKuND7\nsffeHT8L22UU9T7Mnxy2GJM3hLDjkg45ROoc4IoZ5bUhyDUqf52//lXatk3ad99kylTIy75atar8\na3T8PCyRW95vWcrVMT+tcMXe0xr1ORg0/dZWs+WoRNZMxRDVunFJQxmDKNyucts5caL5MkQxELNQ\nXMGx14uS3/rUpUvpNHIX78J0//Qn6Zvf9JeXH6b2q5fWnGJ5/epX3stTbr8HaeUJe22w5YubLf74\nx/Ln0Ve/Wvrv5abk8KtSr/8SY66CsqJb0NaKGebx5ii2KWiXXJz79957S5fF7edygoy5snVA+86d\n0qxZ4dMp5La9bkFp4XIzZ0offugtPdP8tC6ce27Hdb2aMmXPOl5bypK8JoVtYQuyjpfJfP2m+/Wv\nS0uW7Pk9zhvxqlWl/x5mXFjhckFaq7yyKbAJM8ygGiU6Q7uJinjQQdK8eeHTcWNDt2DYsSZ+m8fj\nEvQGkpabXinLlpVfxu8A+7ATtUal3Hghr8HOo4+aK5OX/Gzx059m3zNZjKnydu1avGvKq8LA9IUX\npLlzg6URt3L5vvOOdPLJwdcPk3cUeZrKx8Z7iy1S0S1Yyvvvh5vlWsoOUn3ttXBpxPHkTZQnU1wt\nFUF4GZsTVtovErnZpMvVF69fdkztj6jmuQraquwlsC2VbxBbtrT/fe1a7+n/+tfmylFOqTL9/e/R\n5m3L+VfsHHj6aemJJ9z/Vmx90+WJQhRzsCGLbkFJp50mDR7c8XNTTe5h+E3PbWxKUgPAi6XZ1OTe\nFeUlnaTrSo7pi0rQLt8cr8GVDeXO2b073vmdPvoomnT9OuAA6c9/NpNWXNcoE2MpvQT2Nt2svX4x\n8PqQTVrRchWMFU8LJm3HDvNpeq10t99uPu98prsFTRyzI47wn6ctdSUnyad4vA7mtm2fFTJRvvz6\nXa6ee3lHZFxf+D7+uP3vYSbYtYUtX5aDMFX2IGO28v32t8HSC5NnmPUJrooL3HK1cuVKHXfccRo0\n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\n0Xnnnde2rdVwvN2223GcyI+38eDKbYLR1UFntbNUTU2NTjjhBB155JFtc32tX79edXV1kqS6ujqt\nX17AlYAAABrdSURBVL9ekrRmzZp201SkfX/43c7Czw888MDUbv/06dM1dOhQTZw4sa35vBK3e8WK\nFWpqatIxxxxTVcc7t93HHnuspMo/3rt379awYcNUV1fX1jVaDcfbbbulyj/eF198sW688UZ16rTn\ntl8Nx9ttu2tqaiI/3saDq5oqmAf/+eefV1NTk5544gndfvvtmjdvXru/19TUlNwPlbKPym1nJfnx\nj3+s5cuXa/HixerZs6cuvfTSpIsUia1bt+r000/Xrbfeqn1y02x/ppKP99atW3XGGWfo1ltv1d57\n710Vx7tTp05avHixVq1apeeee05z585t9/dKPd6F253JZCr+eD/++OPq3r276uvrXVtspMo83sW2\nO47jbTy48jLBaNr17NlTkrT//vvre9/7nhYuXKi6ujqt++zdFGvXrlX37t0lddwfq1at0oEHHhh/\noQ3xs529evXSgQceqFWrVrX7PI3b371797aLz3nnndfWtVtJ271r1y6dfvrpOuecczRmzBhJ1XG8\nc9v9gx/8oG27q+F45+y77776zne+o5dffrkqjndObrtfeumlij/eL7zwgmbPnq2DDz5YY8eO1TPP\nPKNzzjmn4o+323afe+658RxvI6PF8uzatcs55JBDnOXLlzuffvppxQ1o37Ztm7N582bHcRxn69at\nzogRI5y//OUvzmWXXeZMnTrVcRzHmTJlSoeBgZ9++qnz7rvvOoccckjbALk0WL58eYcB7X638+ij\nj3bmz5/v7N69OzUDIAu3e82aNW0/33zzzc7YsWMdx6mc7d69e7dzzjnnOBdddFG7zyv9eBfb7ko/\n3h9++KHz8ccfO47jONu3b3dGjhzpPPXUUxV/vItt99q1a9uWqcTjnS+TyTjf/e53Hcep/PM7X/52\nx3F+Gw+uHMdx5syZ4/Tr18/p27evc91110WRRWLeffddZ+jQoc7QoUOdQYMGtW3fhg0bnOOPP945\n7LDDnFGjRrWdwI7jONdee63Tt29f52tf+5rT2NiYVNF9O/PMM52ePXs6Xbp0cXr16uXce++9gbbz\npZdecgYPHuz07dvXueCCC5LYFF8Kt/uee+5xzjnnHGfIkCHO4Ycf7vzzP/+zs27durblK2G7582b\n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\nAElFTkSuQmCC\n", "text": [ - "" + "" ] } ], @@ -534,7 +537,7 @@ "cell_type": "code", "collapsed": false, "input": [ - "feat = net.caffenet.blobs['prob'].data[4]\n", + "feat = net.blobs['prob'].data[4]\n", "plt.plot(feat.flat)" ], "language": "python", @@ -545,15 +548,15 @@ "output_type": "pyout", "prompt_number": 18, "text": [ - "[]" + "[]" ] }, { "metadata": {}, "output_type": "display_data", - "png": "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\nlkf7OefkzwW/+EX+GJ8/P/8ax+oHP8ifF2fNGryQvfpz8MYb+evo9On51/i3f5vv8y98IeJ73zv+\n9qrfm+bmiN///fxzjzySv1b/j//Rf7kXX8y/788/n39Ply3Lf1Z6evLnvIcfjnjHO/J9VKnk+23g\n4+yNN/LnvrPOyrfztdfyx11bW/8vsb/6Vb4dN9zQ/7mhj/Pqz+bFF+fbMnNm/nH1Z33TpogVK/Ln\n1AceGPx1DlWd/rzuuv7biMifm072uGkjymrYunVrtnz58r6P77jjjuzOO+8cdJnVq1dnGzZs6Pt4\n3rx52d69e0d13SzLsrlz52YR4eTk5OTk5ORU+NPcuXNrpdOY1Pw9bdGiRbFz587YvXt3zJo1Kx58\n8MHYMOTIbStWrIh169bFypUrY9u2bXHmmWfGeeedF+ecc84JrxsR8Vx1WAUAoERqRlhTU1OsW7cu\nli9fHr29vbFq1aro6OiI9evXR0TE6tWr44YbbohNmzZFW1tbnHrqqfGVr3yl5nUBAIioZJlD6QEA\n1FvSI+Y7mGuxdXd3xzve8Y645JJL4tJLL40vfOELERHxm9/8JpYtWxYXX3xxXHfddbFv376+63z2\ns5+N9vb2mD9/fnx3PAcpY0L09vbGlVdeGe9+97sjwr6bSvbt2xfvfe97o6OjIxYsWBDbt2+3/6aQ\nz372s3HJJZfEZZddFu9///vj0KFD9l9BfeQjH4nzzjsvLhvw10cns68ef/zxuOyyy6K9vT3+9E//\ndHR3PmGry8bo6NGj2dy5c7Ndu3Zlhw8fzhYuXJjt2LEj1eYwjBdeeCF78sknsyzLstdeey27+OKL\nsx07dmR/8Rd/ka1duzbLsiy78847s7/8y7/MsizLfvrTn2YLFy7MDh8+nO3atSubO3du1tvbm2z7\nybK77rore//735+9+93vzrIss++mkJtvvjm77777sizLsiNHjmT79u2z/6aIXbt2ZRdeeGH229/+\nNsuyLPujP/qj7Ktf/ar9V1B///d/nz3xxBPZpZde2ve5seyrY8eOZVmWZYsXL862b9+eZVmWXX/9\n9dl3vvOdE953spEwB3MtvvPPPz+uuOKKiIg47bTToqOjI3p6egYdoPdDH/pQfPvb346IiI0bN8b7\n3ve+aG5ujjlz5kRbW1t0TcRRMDkpe/bsiU2bNsVHP/rRvsPI2HdTw/79++ORRx6Jj3zkIxGRr7Gd\nMWOG/TdFnHHGGdHc3BwHDx6Mo0ePxsGDB2PWrFn2X0Fdc801cdZZZw363Fj21fbt2+OFF16I1157\nLZYsWRIRETfffHPfdWpJFmGjORAsxbF79+548skn46qrrooXX3wxzvvHA4+dd9558eI/Hv3u+eef\nj9bW1r7r2Kdp/dmf/Vl87nOfi2kDjhhr300Nu3btipkzZ8aHP/zh+N3f/d245ZZb4vXXX7f/poiz\nzz47br/99njrW98as2bNijPPPDOWLVtm/00hY91XQz/f0tIyqn2YLMJGeyBY0jtw4EC85z3vibvv\nvjtOP/30QedVKpWa+9J+TuNv/uZv4txzz40rr7xyxIMp23fFdfTo0XjiiSfij//4j+OJJ56IU089\nNe68885Bl7H/iuvnP/95fP7zn4/du3fH888/HwcOHIhvfOMbgy5j/00dJ9pX45EswlpaWqJ7wJtv\ndXd3D6pIiuHIkSPxnve8Jz74wQ/GH/7hH0ZE/lvB3r17IyLihRdeiHPPPTcijt+ne/bsiZaWlvpv\nNPGDH/wgHnroobjwwgvjfe97X3z/+9+PD37wg/bdFNHa2hqtra2xePHiiIh473vfG0888UScf/75\n9t8U8KMf/Sje9ra3xTnnnBNNTU1x0003xdatW+2/KWQsz5Wtra3R0tISewa8z9xo92GyCBt4INjD\nhw/Hgw8+GCtWrEi1OQwjy7JYtWpVLFiwID7+8Y/3fX7FihXxta99LSIivva1r/XF2YoVK+KBBx6I\nw4cPx65du2Lnzp198+PU1x133BHd3d2xa9eueOCBB+Kd73xn3H///fbdFHH++efH7Nmz42f/+AaS\nmzdvjksuuSTe/e53239TwPz582Pbtm3xxhtvRJZlsXnz5liwYIH9N4WM9bny/PPPjzPOOCO2b98e\nWZbF/fff33edmibwDwzGbNOmTdnFF1+czZ07N7vjjjtSbgrDeOSRR7JKpZItXLgwu+KKK7Irrrgi\n+853vpO9/PLL2bve9a6svb09W7ZsWfbKK6/0Xeczn/lMNnfu3GzevHlZZ2dnwq2nasuWLX1/HWnf\nTR1PPfVUtmjRouzyyy/Pbrzxxmzfvn323xSydu3abMGCBdmll16a3Xzzzdnhw4ftv4JauXJldsEF\nF2TNzc1Za2tr9uUvf/mk9tWPfvSj7NJLL83mzp2b/cmf/Mmo7tvBWgEAEkh6sFYAgLISYQAACYgw\nAIAERBgAQAIiDAAgAREGAJCACAMASECEAQAk8P8BdkEtG+nwOwwAAAAASUVORK5CYII=\n", + "png": "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\nftz5m6v2vf766zF37tw455xz4rLLLotdg16G+LWvfS1aWlqitbU1HnzwwbyGzm+Uy+WYOXNmXHnl\nlRHh2I0nu3btis985jPR1tYW5557bjz++OOO3zjyta99Lc4777y44IIL4vOf/3y89957jl+ivvCF\nL8QZZ5wRF1xwwcD7juZYPfnkk3HBBRdES0tL/Nmf/dnIPvionV12hPr6+rKpU6dmW7duzfbu3ZvN\nmDEj27hxY17D4SBefvnl7KmnnsqyLMvefvvt7Jxzzsk2btyY/fVf/3W2bNmyLMuy7Lbbbsv+5m/+\nJsuyLHv22WezGTNmZHv37s22bt2aTZ06NSuXy7mNnyy7/fbbs89//vPZlVdemWVZ5tiNI9dee212\n9913Z1mWZe+//362a9cux2+c2Lp1a3bWWWdlv/71r7Msy7LPfvaz2T/8wz84fol6+OGHs/Xr12fn\nn3/+wPuO5Fjt27cvy7IsmzVrVvb4449nWZZll19+efajH/3osB87t5kwF3NN35lnnhkXXnhhRESc\neOKJ0dbWFr29vQdcoPe6666L+++/PyIiVq9eHZ/73Oeivr4+mpqaorm5Obq7u3Mbf63bvn17rFmz\nJv7kT/5k4DIyjt348Oabb8YjjzwSX/jCFyKico7tKaec4viNEyeffHLU19fHnj17oq+vL/bs2ROT\nJ092/BI1Z86cOG3I75g7kmP1+OOPx8svvxxvv/12zJ49OyIirr322oF9qsktwkZyIVjSsW3btnjq\nqafioosuildeeSXOOOOMiIg444wz4pXfXIX2pZdeisZBFyNyTPP1F3/xF/H1r389jht00SLHbnzY\nunVrTJw4Mf74j/84fu/3fi+uv/762L17t+M3Tpx++unxl3/5l/HRj340Jk+eHKeeemrMnTvX8RtH\njvRYDX1/Q0PDiI5hbhE20gvBkr933nknPv3pT8cdd9wRJw25Sl+pVKp6LB3nfPzwhz+Mj3zkIzFz\n5sxDXkzZsUtXX19frF+/Pm688cZYv359nHDCCXHbbbcdsI3jl64tW7bEN77xjdi2bVu89NJL8c47\n78S99957wDaO3/hxuGP1QeQWYQ0NDdEz6Df29vT0HFCRpOH999+PT3/603HNNdfEVVddFRGV/xXs\n+M3vI3n55ZfjI7+5fPjQY7p9+/ZoaGg49oMmfvazn8UDDzwQZ511Vnzuc5+Lhx56KK655hrHbpxo\nbGyMxsbGmDVrVkREfOYzn4n169fHmWee6fiNA0888UT8wR/8QUyYMCHq6upi4cKF8eijjzp+48iR\nfK9sbGyMhoaG2D7olyuP9BjmFmGDLwS7d+/eWLVqVcyfPz+v4XAQWZbF4sWL49xzz40///M/H3j/\n/Pnz4zvf+U5ERHznO98ZiLP58+fHfffdF3v37o2tW7fGpk2bBtbHObZuvfXW6Onpia1bt8Z9990X\nn/zkJ+N73/ueYzdOnHnmmTFlypR44YUXIiJi7dq1cd5558WVV17p+I0Dra2t8dhjj8W7774bWZbF\n2rVr49xzz3X8xpEj/V555plnxsknnxyPP/54ZFkW3/ve9wb2qWoUX2BwxNasWZOdc8452dSpU7Nb\nb701z6FwEI888khWKpWyGTNmZBdeeGF24YUXZj/60Y+y1157LfvUpz6VtbS0ZHPnzs3eeOONgX2+\n+tWvZlOnTs2mTZuWdXZ25jh6+nV1dQ28OtKxGz+efvrprL29PZs+fXq2YMGCbNeuXY7fOLJs2bLs\n3HPPzc4///zs2muvzfbu3ev4JWrRokXZpEmTsvr6+qyxsTG75557jupYPfHEE9n555+fTZ06NfvT\nP/3TEX1sF2sFAMhBrhdrBQCoVSIMACAHIgwAIAciDAAgByIMACAHIgwAIAciDAAgByIMACAH/x/d\nQzeSSiDvWgAAAABJRU5ErkJggg==\n", "text": [ - "" + "" ] } ], @@ -586,7 +589,7 @@ "cell_type": "code", "collapsed": false, "input": [ - "top_k = net.caffenet.blobs['prob'].data[4].flatten().argsort()[-1:-6:-1]\n", + "top_k = net.blobs['prob'].data[4].flatten().argsort()[-1:-6:-1]\n", "print labels[top_k]" ], "language": "python", @@ -596,9 +599,9 @@ "output_type": "stream", "stream": "stdout", "text": [ - "['n02119022 red fox, Vulpes vulpes' 'n02119789 kit fox, Vulpes macrotis'\n", - " 'n02124075 Egyptian cat' 'n02326432 hare'\n", - " 'n02325366 wood rabbit, cottontail, cottontail rabbit']\n" + "['n02115913 dhole, Cuon alpinus' 'n02119022 red fox, Vulpes vulpes'\n", + " 'n02119789 kit fox, Vulpes macrotis' 'n02123159 tiger cat'\n", + " 'n02123045 tabby, tabby cat']\n" ] } ], diff --git a/examples/imagenet/imagenet_deploy.prototxt b/examples/imagenet/imagenet_deploy.prototxt index 0b1f41ab914..fbff3adbe18 100644 --- a/examples/imagenet/imagenet_deploy.prototxt +++ b/examples/imagenet/imagenet_deploy.prototxt @@ -5,320 +5,240 @@ input_dim: 3 input_dim: 227 input_dim: 227 layers { - layer { - name: "conv1" - type: "conv" + name: "conv1" + type: CONVOLUTION + bottom: "data" + top: "conv1" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 96 - kernelsize: 11 + kernel_size: 11 stride: 4 - weight_filler { - type: "gaussian" - std: 0.01 - } - bias_filler { - type: "constant" - value: 0. - } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "data" - top: "conv1" } layers { - layer { - name: "relu1" - type: "relu" - } + name: "relu1" + type: RELU bottom: "conv1" top: "conv1" } layers { - layer { - name: "pool1" - type: "pool" + name: "pool1" + type: POOLING + bottom: "conv1" + top: "pool1" + pooling_param { pool: MAX - kernelsize: 3 + kernel_size: 3 stride: 2 } - bottom: "conv1" - top: "pool1" } layers { - layer { - name: "norm1" - type: "lrn" + name: "norm1" + type: LRN + bottom: "pool1" + top: "norm1" + lrn_param { local_size: 5 alpha: 0.0001 beta: 0.75 } - bottom: "pool1" - top: "norm1" } layers { - layer { - name: "conv2" - type: "conv" + name: "conv2" + type: CONVOLUTION + bottom: "norm1" + top: "conv2" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 256 - group: 2 - kernelsize: 5 pad: 2 - weight_filler { - type: "gaussian" - std: 0.01 - } - bias_filler { - type: "constant" - value: 1. - } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. + kernel_size: 5 + group: 2 } - bottom: "norm1" - top: "conv2" } layers { - layer { - name: "relu2" - type: "relu" - } + name: "relu2" + type: RELU bottom: "conv2" top: "conv2" } layers { - layer { - name: "pool2" - type: "pool" + name: "pool2" + type: POOLING + bottom: "conv2" + top: "pool2" + pooling_param { pool: MAX - kernelsize: 3 + kernel_size: 3 stride: 2 } - bottom: "conv2" - top: "pool2" } layers { - layer { - name: "norm2" - type: "lrn" + name: "norm2" + type: LRN + bottom: "pool2" + top: "norm2" + lrn_param { local_size: 5 alpha: 0.0001 beta: 0.75 } - bottom: "pool2" - top: "norm2" } layers { - layer { - name: "conv3" - type: "conv" + name: "conv3" + type: CONVOLUTION + bottom: "norm2" + top: "conv3" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 384 - kernelsize: 3 pad: 1 - weight_filler { - type: "gaussian" - std: 0.01 - } - bias_filler { - type: "constant" - value: 0. - } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. + kernel_size: 3 } - bottom: "norm2" - top: "conv3" } layers { - layer { - name: "relu3" - type: "relu" - } + name: "relu3" + type: RELU bottom: "conv3" top: "conv3" } layers { - layer { - name: "conv4" - type: "conv" + name: "conv4" + type: CONVOLUTION + bottom: "conv3" + top: "conv4" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 384 - group: 2 - kernelsize: 3 pad: 1 - weight_filler { - type: "gaussian" - std: 0.01 - } - bias_filler { - type: "constant" - value: 1. - } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. + kernel_size: 3 + group: 2 } - bottom: "conv3" - top: "conv4" } layers { - layer { - name: "relu4" - type: "relu" - } + name: "relu4" + type: RELU bottom: "conv4" top: "conv4" } layers { - layer { - name: "conv5" - type: "conv" + name: "conv5" + type: CONVOLUTION + bottom: "conv4" + top: "conv5" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 256 - group: 2 - kernelsize: 3 pad: 1 - weight_filler { - type: "gaussian" - std: 0.01 - } - bias_filler { - type: "constant" - value: 1. - } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. + kernel_size: 3 + group: 2 } - bottom: "conv4" - top: "conv5" } layers { - layer { - name: "relu5" - type: "relu" - } + name: "relu5" + type: RELU bottom: "conv5" top: "conv5" } layers { - layer { - name: "pool5" - type: "pool" - kernelsize: 3 + name: "pool5" + type: POOLING + bottom: "conv5" + top: "pool5" + pooling_param { pool: MAX + kernel_size: 3 stride: 2 } - bottom: "conv5" - top: "pool5" } layers { - layer { - name: "fc6" - type: "innerproduct" - num_output: 4096 - weight_filler { - type: "gaussian" - std: 0.005 - } - bias_filler { - type: "constant" - value: 1. - } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. - } + name: "fc6" + type: INNER_PRODUCT bottom: "pool5" top: "fc6" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + inner_product_param { + num_output: 4096 + } } layers { - layer { - name: "relu6" - type: "relu" - } + name: "relu6" + type: RELU bottom: "fc6" top: "fc6" } layers { - layer { - name: "drop6" - type: "dropout" - dropout_ratio: 0.5 - } + name: "drop6" + type: DROPOUT bottom: "fc6" top: "fc6" + dropout_param { + dropout_ratio: 0.5 + } } layers { - layer { - name: "fc7" - type: "innerproduct" - num_output: 4096 - weight_filler { - type: "gaussian" - std: 0.005 - } - bias_filler { - type: "constant" - value: 1. - } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. - } + name: "fc7" + type: INNER_PRODUCT bottom: "fc6" top: "fc7" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + inner_product_param { + num_output: 4096 + } } layers { - layer { - name: "relu7" - type: "relu" - } + name: "relu7" + type: RELU bottom: "fc7" top: "fc7" } layers { - layer { - name: "drop7" - type: "dropout" - dropout_ratio: 0.5 - } + name: "drop7" + type: DROPOUT bottom: "fc7" top: "fc7" + dropout_param { + dropout_ratio: 0.5 + } } layers { - layer { - name: "fc8" - type: "innerproduct" - num_output: 1000 - weight_filler { - type: "gaussian" - std: 0.01 - } - bias_filler { - type: "constant" - value: 0 - } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. - } + name: "fc8" + type: INNER_PRODUCT bottom: "fc7" top: "fc8" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + inner_product_param { + num_output: 1000 + } } layers { - layer { - name: "prob" - type: "softmax" - } + name: "prob" + type: SOFTMAX bottom: "fc8" top: "prob" } diff --git a/examples/imagenet/imagenet_train.prototxt b/examples/imagenet/imagenet_train.prototxt index 536d853df03..519d4509be9 100644 --- a/examples/imagenet/imagenet_train.prototxt +++ b/examples/imagenet/imagenet_train.prototxt @@ -1,23 +1,29 @@ name: "CaffeNet" layers { - layer { - name: "data" - type: "data" + name: "data" + type: DATA + top: "data" + top: "label" + data_param { source: "ilsvrc12_train_leveldb" - meanfile: "../../data/ilsvrc12/imagenet_mean.binaryproto" - batchsize: 256 - cropsize: 227 + mean_file: "../../data/ilsvrc12/imagenet_mean.binaryproto" + batch_size: 256 + crop_size: 227 mirror: true } - top: "data" - top: "label" } layers { - layer { - name: "conv1" - type: "conv" + name: "conv1" + type: CONVOLUTION + bottom: "data" + top: "conv1" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 96 - kernelsize: 11 + kernel_size: 11 stride: 4 weight_filler { type: "gaussian" @@ -25,210 +31,200 @@ layers { } bias_filler { type: "constant" - value: 0. + value: 0 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "data" - top: "conv1" } layers { - layer { - name: "relu1" - type: "relu" - } + name: "relu1" + type: RELU bottom: "conv1" top: "conv1" } layers { - layer { - name: "pool1" - type: "pool" + name: "pool1" + type: POOLING + bottom: "conv1" + top: "pool1" + pooling_param { pool: MAX - kernelsize: 3 + kernel_size: 3 stride: 2 } - bottom: "conv1" - top: "pool1" } layers { - layer { - name: "norm1" - type: "lrn" + name: "norm1" + type: LRN + bottom: "pool1" + top: "norm1" + lrn_param { local_size: 5 alpha: 0.0001 beta: 0.75 } - bottom: "pool1" - top: "norm1" } layers { - layer { - name: "conv2" - type: "conv" + name: "conv2" + type: CONVOLUTION + bottom: "norm1" + top: "conv2" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 256 - group: 2 - kernelsize: 5 pad: 2 + kernel_size: 5 + group: 2 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" - value: 1. + value: 1 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "norm1" - top: "conv2" } layers { - layer { - name: "relu2" - type: "relu" - } + name: "relu2" + type: RELU bottom: "conv2" top: "conv2" } layers { - layer { - name: "pool2" - type: "pool" + name: "pool2" + type: POOLING + bottom: "conv2" + top: "pool2" + pooling_param { pool: MAX - kernelsize: 3 + kernel_size: 3 stride: 2 } - bottom: "conv2" - top: "pool2" } layers { - layer { - name: "norm2" - type: "lrn" + name: "norm2" + type: LRN + bottom: "pool2" + top: "norm2" + lrn_param { local_size: 5 alpha: 0.0001 beta: 0.75 } - bottom: "pool2" - top: "norm2" } layers { - layer { - name: "conv3" - type: "conv" + name: "conv3" + type: CONVOLUTION + bottom: "norm2" + top: "conv3" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 384 - kernelsize: 3 pad: 1 + kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" - value: 0. + value: 0 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "norm2" - top: "conv3" } layers { - layer { - name: "relu3" - type: "relu" - } + name: "relu3" + type: RELU bottom: "conv3" top: "conv3" } layers { - layer { - name: "conv4" - type: "conv" + name: "conv4" + type: CONVOLUTION + bottom: "conv3" + top: "conv4" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 384 - group: 2 - kernelsize: 3 pad: 1 + kernel_size: 3 + group: 2 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" - value: 1. + value: 1 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "conv3" - top: "conv4" } layers { - layer { - name: "relu4" - type: "relu" - } + name: "relu4" + type: RELU bottom: "conv4" top: "conv4" } layers { - layer { - name: "conv5" - type: "conv" + name: "conv5" + type: CONVOLUTION + bottom: "conv4" + top: "conv5" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 256 - group: 2 - kernelsize: 3 pad: 1 + kernel_size: 3 + group: 2 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" - value: 1. + value: 1 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "conv4" - top: "conv5" } layers { - layer { - name: "relu5" - type: "relu" - } + name: "relu5" + type: RELU bottom: "conv5" top: "conv5" } layers { - layer { - name: "pool5" - type: "pool" - kernelsize: 3 + name: "pool5" + type: POOLING + bottom: "conv5" + top: "pool5" + pooling_param { pool: MAX + kernel_size: 3 stride: 2 } - bottom: "conv5" - top: "pool5" } layers { - layer { - name: "fc6" - type: "innerproduct" + name: "fc6" + type: INNER_PRODUCT + bottom: "pool5" + top: "fc6" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + inner_product_param { num_output: 4096 weight_filler { type: "gaussian" @@ -236,37 +232,35 @@ layers { } bias_filler { type: "constant" - value: 1. + value: 1 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "pool5" - top: "fc6" } layers { - layer { - name: "relu6" - type: "relu" - } + name: "relu6" + type: RELU bottom: "fc6" top: "fc6" } layers { - layer { - name: "drop6" - type: "dropout" - dropout_ratio: 0.5 - } + name: "drop6" + type: DROPOUT bottom: "fc6" top: "fc6" + dropout_param { + dropout_ratio: 0.5 + } } layers { - layer { - name: "fc7" - type: "innerproduct" + name: "fc7" + type: INNER_PRODUCT + bottom: "fc6" + top: "fc7" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + inner_product_param { num_output: 4096 weight_filler { type: "gaussian" @@ -274,37 +268,35 @@ layers { } bias_filler { type: "constant" - value: 1. + value: 1 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "fc6" - top: "fc7" } layers { - layer { - name: "relu7" - type: "relu" - } + name: "relu7" + type: RELU bottom: "fc7" top: "fc7" } layers { - layer { - name: "drop7" - type: "dropout" - dropout_ratio: 0.5 - } + name: "drop7" + type: DROPOUT bottom: "fc7" top: "fc7" + dropout_param { + dropout_ratio: 0.5 + } } layers { - layer { - name: "fc8" - type: "innerproduct" + name: "fc8" + type: INNER_PRODUCT + bottom: "fc7" + top: "fc8" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + inner_product_param { num_output: 1000 weight_filler { type: "gaussian" @@ -314,19 +306,11 @@ layers { type: "constant" value: 0 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "fc7" - top: "fc8" } layers { - layer { - name: "loss" - type: "softmax_loss" - } + name: "loss" + type: SOFTMAX_LOSS bottom: "fc8" bottom: "label" } diff --git a/examples/imagenet/imagenet_val.prototxt b/examples/imagenet/imagenet_val.prototxt index 0a7a235ed91..dd26f40ea14 100644 --- a/examples/imagenet/imagenet_val.prototxt +++ b/examples/imagenet/imagenet_val.prototxt @@ -1,244 +1,226 @@ name: "CaffeNet" layers { - layer { - name: "data" - type: "data" + name: "data" + type: DATA + top: "data" + top: "label" + data_param { source: "ilsvrc12_val_leveldb" - meanfile: "../../data/ilsvrc12/imagenet_mean.binaryproto" - batchsize: 50 - cropsize: 227 + mean_file: "../../data/ilsvrc12/imagenet_mean.binaryproto" + batch_size: 50 + crop_size: 227 mirror: false } - top: "data" - top: "label" } layers { - layer { - name: "conv1" - type: "conv" + name: "conv1" + type: CONVOLUTION + bottom: "data" + top: "conv1" + convolution_param { num_output: 96 - kernelsize: 11 + kernel_size: 11 stride: 4 } - bottom: "data" - top: "conv1" } layers { - layer { - name: "relu1" - type: "relu" - } + name: "relu1" + type: RELU bottom: "conv1" top: "conv1" } layers { - layer { - name: "pool1" - type: "pool" + name: "pool1" + type: POOLING + bottom: "conv1" + top: "pool1" + pooling_param { pool: MAX - kernelsize: 3 + kernel_size: 3 stride: 2 } - bottom: "conv1" - top: "pool1" } layers { - layer { - name: "norm1" - type: "lrn" + name: "norm1" + type: LRN + bottom: "pool1" + top: "norm1" + lrn_param { local_size: 5 alpha: 0.0001 beta: 0.75 } - bottom: "pool1" - top: "norm1" } layers { - layer { - name: "conv2" - type: "conv" + name: "conv2" + type: CONVOLUTION + bottom: "norm1" + top: "conv2" + convolution_param { num_output: 256 - group: 2 - kernelsize: 5 pad: 2 + kernel_size: 5 + group: 2 } - bottom: "norm1" - top: "conv2" } layers { - layer { - name: "relu2" - type: "relu" - } + name: "relu2" + type: RELU bottom: "conv2" top: "conv2" } layers { - layer { - name: "pool2" - type: "pool" + name: "pool2" + type: POOLING + bottom: "conv2" + top: "pool2" + pooling_param { pool: MAX - kernelsize: 3 + kernel_size: 3 stride: 2 } - bottom: "conv2" - top: "pool2" } layers { - layer { - name: "norm2" - type: "lrn" + name: "norm2" + type: LRN + bottom: "pool2" + top: "norm2" + lrn_param { local_size: 5 alpha: 0.0001 beta: 0.75 } - bottom: "pool2" - top: "norm2" } layers { - layer { - name: "conv3" - type: "conv" + name: "conv3" + type: CONVOLUTION + bottom: "norm2" + top: "conv3" + convolution_param { num_output: 384 - kernelsize: 3 pad: 1 + kernel_size: 3 } - bottom: "norm2" - top: "conv3" } layers { - layer { - name: "relu3" - type: "relu" - } + name: "relu3" + type: RELU bottom: "conv3" top: "conv3" } layers { - layer { - name: "conv4" - type: "conv" + name: "conv4" + type: CONVOLUTION + bottom: "conv3" + top: "conv4" + convolution_param { num_output: 384 - group: 2 - kernelsize: 3 pad: 1 + kernel_size: 3 + group: 2 } - bottom: "conv3" - top: "conv4" } layers { - layer { - name: "relu4" - type: "relu" - } + name: "relu4" + type: RELU bottom: "conv4" top: "conv4" } layers { - layer { - name: "conv5" - type: "conv" + name: "conv5" + type: CONVOLUTION + bottom: "conv4" + top: "conv5" + convolution_param { num_output: 256 - group: 2 - kernelsize: 3 pad: 1 + kernel_size: 3 + group: 2 } - bottom: "conv4" - top: "conv5" } layers { - layer { - name: "relu5" - type: "relu" - } + name: "relu5" + type: RELU bottom: "conv5" top: "conv5" } layers { - layer { - name: "pool5" - type: "pool" - kernelsize: 3 + name: "pool5" + type: POOLING + bottom: "conv5" + top: "pool5" + pooling_param { pool: MAX + kernel_size: 3 stride: 2 } - bottom: "conv5" - top: "pool5" } layers { - layer { - name: "fc6" - type: "innerproduct" - num_output: 4096 - } + name: "fc6" + type: INNER_PRODUCT bottom: "pool5" top: "fc6" + inner_product_param { + num_output: 4096 + } } layers { - layer { - name: "relu6" - type: "relu" - } + name: "relu6" + type: RELU bottom: "fc6" top: "fc6" } layers { - layer { - name: "drop6" - type: "dropout" - dropout_ratio: 0.5 - } + name: "drop6" + type: DROPOUT bottom: "fc6" top: "fc6" + dropout_param { + dropout_ratio: 0.5 + } } layers { - layer { - name: "fc7" - type: "innerproduct" - num_output: 4096 - } + name: "fc7" + type: INNER_PRODUCT bottom: "fc6" top: "fc7" + inner_product_param { + num_output: 4096 + } } layers { - layer { - name: "relu7" - type: "relu" - } + name: "relu7" + type: RELU bottom: "fc7" top: "fc7" } layers { - layer { - name: "drop7" - type: "dropout" - dropout_ratio: 0.5 - } + name: "drop7" + type: DROPOUT bottom: "fc7" top: "fc7" + dropout_param { + dropout_ratio: 0.5 + } } layers { - layer { - name: "fc8" - type: "innerproduct" - num_output: 1000 - } + name: "fc8" + type: INNER_PRODUCT bottom: "fc7" top: "fc8" + inner_product_param { + num_output: 1000 + } } layers { - layer { - name: "prob" - type: "softmax" - } + name: "prob" + type: SOFTMAX bottom: "fc8" top: "prob" } layers { - layer { - name: "accuracy" - type: "accuracy" - } + name: "accuracy" + type: ACCURACY bottom: "prob" bottom: "label" top: "accuracy" diff --git a/examples/imagenet_classification.ipynb b/examples/imagenet_classification.ipynb new file mode 100644 index 00000000000..0e0e06bbc6a --- /dev/null +++ b/examples/imagenet_classification.ipynb @@ -0,0 +1,410 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Classifying ImageNet: the instant Caffe way\n", + "===========================================\n", + "\n", + "Caffe provides a general Python interface for models with `caffe.Net` in `python/caffe/pycaffe.py`, but to make off-the-shelf classification easy we provide a `caffe.Classifier` class and `classify.py` script. Both Python and MATLAB wrappers are provided. However, the Python wrapper has more features so we will describe it here. For MATLAB, refer to `matlab/caffe/matcaffe_demo.m`.\n", + "\n", + "Before we begin, you must compile Caffe and install the python wrapper by setting your `PYTHONPATH`. If you haven't yet done so, please refer to the [installation instructions](installation.html). This example uses our pre-trained ImageNet model, an ILSVRC12 image classifier. You can download it (232.57MB) by running `examples/imagenet/get_caffe_reference_imagenet_model.sh`. Note that this pre-trained model is licensed for academic research / non-commercial use only.\n", + "\n", + "Ready? Let's start." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + "\n", + "import caffe\n", + "\n", + "caffe_root = '../' # this file is expected to be in {caffe_root}/examples\n", + "\n", + "# Set the right path to your model definition file, pretrained model weights,\n", + "# and the image you would like to classify.\n", + "MODEL_FILE = 'imagenet/imagenet_deploy.prototxt'\n", + "PRETRAINED = 'imagenet/caffe_reference_imagenet_model'\n", + "IMAGE_FILE = 'images/cat.jpg'" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 1 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Loading a network is easy. `caffe.Classifier` takes care of everything. Note the arguments for configuring input preprocessing: mean subtraction switched on by giving a mean file, input channel swapping takes care of mapping RGB into the reference ImageNet model's BGR order, and input scaling multiplies the feature scale from the input [0,1] to [0,255]." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "net = caffe.Classifier(MODEL_FILE, PRETRAINED,\n", + " mean_file=caffe_root + 'python/caffe/imagenet/ilsvrc_2012_mean.npy',\n", + " channel_swap=(2,1,0),\n", + " input_scale=255)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 2 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will set the phase to test since we are doing testing, and will first use CPU for the computation." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "net.set_phase_test()\n", + "net.set_mode_cpu()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 3 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's take a look at our example image with Caffe's image loading helper." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "input_image = caffe.io.load_image(IMAGE_FILE)\n", + "plt.imshow(input_image)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 4, + "text": [ + "" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\nRK5CYII=\n", + "text": [ + "" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Time to classify. The default is to actually do 10 predictions, cropping the center and corners of the image as well as their mirrored versions, and average over the predictions:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "prediction = net.predict([input_image]) # predict takes any number of images, and formats them for the Caffe net automatically\n", + "print 'prediction shape:', prediction[0].shape\n", + "plt.plot(prediction[0])" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "prediction shape: (1000,)\n" + ] + }, + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 5, + "text": [ + "[]" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\nwBfrr33tyv3u7tSPL8WmhubOvbJ9rSDoa+N4mR764x+lm28e+DiXwGbG559nugWxF/tXX+3/2Icf\nSm1t0vHjg9dP9eq5ofyOZeqKvKRXDTkpXtJiRvjXVF4ee9f69a9LWRm6jqnvnevKlf1fJFPRd/qN\njdKePbEX1vz82C+aMbFb4v2TJ2Pl/+M/pHfekWbOlEpKpP/5n9h2Mh0d0n//t/Rv/5b8XX7iL/Kq\nVbHASfTHP0o/+EHs/ve/L/3Lv8SCadKk2Ogmme5uyeWS8vJifzgPPyzdcEP/MseOxX7ef7+UnZ18\nf9c6jw8+kA4dSl5vKA4dkk6divXFmTPSjTdKXV1SKCTddVcsYHt7Y3+Iffev3k68n5c38JyvZox0\n4kSsntsdO8++25c5eTL2piLxW2MH+73o+7261u9aKrfjxyWPJ9YnQ3XxYuyNgOPE2j1linT99f3P\nJzu7/1VlxkivvCLdcUfsmEO5ci6Vv5FUnT8v7d0rVVTEfp8l6f/+L/bzgQekadP6l49GY7+XBQWx\n7X37pLvvHvw4R45IN90kJbwvvqZ//lN66y3pX/819hrU97rS9+909f20Mkns37/fVFRUxLefeuop\n8/TTT/crU1NTYxobG+PbBQUFprOzM6W6xhiTl5dnJHHjxo0btyHc8vLykr18D0nS99/FxcVqbW1V\nR0eHZs+erZ07d6qxsbFfmcrKStXX16uqqkoHDhzQjTfeqJkzZ2rGjBmD1pWktra2ZE0AAIyypEGQ\nlZWl+vp6VVRUKBqNqrq6Wn6/Xw0NDZKkmpoarVy5Unv27FF+fr4mT56s559/PmldAMD44hjDchkA\n2Cyjnyz+Kn3gbKTC4bC++93v6tZbb9WCBQv07LPPSpJOnz6t8vJyzZs3T8uXL1dXV1e8zqZNm+T1\neuXz+fTaa69lqumjJhqNqqioSKtWrZJkb190dXXpvvvuk9/v1/z583Xw4EFr+2LTpk269dZbtXDh\nQj3wwAO6ePGiNX3x4x//WDNnztTChQvjjw3n3N955x0tXLhQXq9XP/vZz1I7eNpWG4aot7fX5OXl\nmfb2dtPT02MKCwtNS0tLppoz6j7++GNz5MgRY4wxn332mZk3b55paWkxv/zlL01dXZ0xxpinn37a\n/OpXvzLGGPOPf/zDFBYWmp6eHtPe3m7y8vJMNBrNWPtHw+bNm80DDzxgVq1aZYwx1vbFgw8+aLZu\n3WqMMebSpUumq6vLyr5ob283c+bMMRcuXDDGGHP//feb3//+99b0xRtvvGEOHz5sFixYEH9sKOd+\n+fJlY4wxJSUl5uDBg8YYY1asWGFeffXVQY+dsSB4++23+11VtGnTJrNp06ZMNWfMfe973zN//etf\n41dZGRMLi4KCAmPMwKusKioqzP79+zPS1tEQDofNXXfdZfbu3WvuvvtuY4yxsi+6urrMnDlzBjxu\nY198+umnZt68eeb06dPm0qVL5u677zavvfaaVX3R3t7eLwiGeu4nTpwwPp8v/nhjY6OpqakZ9LgZ\nmxpK5cNqE1VHR4eOHDmi0tJSnTx5UjNnzpQkzZw5Uye/+JDBiRMn5PF44nUmWv/84he/0G9+8xtN\nSrjA3Ma+aG9vV3Z2tn70ox/pm9/8ptavX6/u7m4r+2L69Ol69NFH9Y1vfEOzZ8/WjTfeqPLyciv7\nos9Qz/3qx91ud0p9krEgSPXDahPNuXPndO+99+qZZ57RlClT+j3nOE7Sfpkoffbyyy/r5ptvVlFR\n0Zd+GNGWvujt7dXhw4f1k5/8RIcPH9bkyZP19NNP9ytjS198+OGH+u1vf6uOjg6dOHFC586d0/bt\n2/uVsaUvrmWwcx+JjAWB2+1WOOFbm8LhcL8km4guXbqke++9V+vWrdM999wjKZbynZ2dkqSPP/5Y\nN3/xPQhX98/x48fldrvHvtGj4O2339bu3bs1Z84c/fCHP9TevXu1bt06K/vC4/HI4/GopKREknTf\nfffp8OHDuuWWW6zri0OHDun222/XjBkzlJWVpTVr1mj//v1W9kWfofxNeDweud1uHU/4WoFU+yRj\nQZD4YbWenh7t3LlTlZWVmWrOqDPGqLq6WvPnz9fPf/7z+OOVlZV64Yv/LOCFF16IB0RlZaV27Nih\nnp4etbe3q7W1VYsXL85I29PtqaeeUjgcVnt7u3bs2KE777xTL774opV9ccsttygnJ0cffPCBJKm5\nuVm33nqrVq1aZV1f+Hw+HThwQJ9//rmMMWpubtb8+fOt7Is+Q/2buOWWW3TDDTfo4MGDMsboxRdf\njNdJKh0LHMO1Z88eM2/ePJOXl2eeeuqpTDZl1L355pvGcRxTWFhobrvtNnPbbbeZV1991Xz66afm\nrrvuMl6v15SXl5szZ87E6/z61782eXl5pqCgwAQCgQy2fvQEg8H4VUO29sXf//53U1xcbBYtWmRW\nr15turq6rO2Luro6M3/+fLNgwQLz4IMPmp6eHmv6oqqqysyaNcu4XC7j8XjMtm3bhnXuhw4dMgsW\nLDB5eXnmpz/9aUrH5gNlAGA5/qtKALAcQQAAliMIAMByBAEAWI4gAADLEQQAYDmCAAAsRxAAgOX+\nH+ygAhcPtOtaAAAAAElFTkSuQmCC\n", + "text": [ + "" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's classify by the center crop alone by turning off oversampling. Note that this makes a single input, although if you inspect the model definition prototxt you'll see the network has a batch size of 10. The python wrapper handles batching and padding for you!" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "prediction = net.predict([input_image], oversample=False)\n", + "print 'prediction shape:', prediction[0].shape\n", + "plt.plot(prediction[0])" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "prediction shape: (1000,)\n" + ] + }, + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 6, + "text": [ + "[]" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\nHo9nXH2SsSAY781q15q+vj7dc8892rZtm7454i4sl8uVsl+ulT57/fXXdfPNN6usrOySNyPa0heD\ng4Nqb2/XT37yE7W3t2vGjBnaunXrsDK29MXRo0f19NNPq7u7W8ePH1dfX59eeumlYWVs6YuLGWvb\nJyNjQeDxeBSNRpPT0Wh0WJJdi86fP6977rlH69ev19q1ayUlUr6np0eS9Pnnn+vmf96GO7J/jh07\nJo/Hc+UbPQXeeecdvfbaa5o3b55+9KMfae/evVq/fr2VfeH1euX1elVeXi5Juvfee9Xe3q5bbrnF\nur547733dMcddyg7O1tZWVmqqanRu+++a2VfDJnI34TX65XH49Gxof/4qPH3ScaCwHmz2sDAgFpa\nWhQMBjPVnClnjFFdXZ0WLVqkn/3sZ8n5wWBQL7zwgiTphRdeSAZEMBjUrl27NDAwoK6uLnV2dmrJ\nkiUZaXu6Pfnkk4pGo+rq6tKuXbv0ve99Ty+++KKVfXHLLbcoLy9Pn3zyiSSpra1Nt956q9asWWNd\nX/h8Pu3fv19///vfZYxRW1ubFi1aZGVfDJno38Qtt9yib33rWzpw4ICMMXrxxReTdVJKxwmOy7V7\n926zYMECU1BQYJ588slMNmXKvf3228blcpnS0lJz2223mdtuu8288cYb5uTJk+auu+4yRUVFprKy\n0pw+fTpZ57e//a0pKCgwCxcuNKFQKIOtnzrhcDh51ZCtffHBBx+YQCBgSkpKTHV1tent7bW2Lxoa\nGsyiRYvM4sWLzf33328GBgas6Yva2lqTm5tr3G638Xq95rnnnrusbX/vvffM4sWLTUFBgfnpT386\nrvfmhjIAsBxfVQkAliMIAMByBAEAWI4gAADLEQQAYDmCAAAsRxAAgOUIAgCw3P8Dvi5mjwJzDc4A\nAAAASUVORK5CYII=\n", + "text": [ + "" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can see that the prediction is 1000-dimensional, and is pretty sparse.\n", + "\n", + "Our pretrained model uses the synset ID ordering of the classes, as listed in `../data/ilsvrc12/synset_words.txt` if you fetch the auxiliary imagenet data by `../data/ilsvrc12/get_ilsvrc_aux.sh`. If you look at the top indices that maximize the prediction score, they are foxes, cats, and other cute mammals. Not unreasonable predictions, right?\n", + "\n", + "Now, why don't we see how long it takes to perform the classification end to end? This result is run from an Intel i5 CPU, so you may observe some performance differences." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%timeit net.predict([input_image])" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "1 loops, best of 3: 492 ms per loop\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It may look a little slow, but note that time is spent on cropping, python interfacing, and running 10 images. For performance, if you really want to make prediction fast, you can optionally code in C++ and pipeline operations better. For experimenting and prototyping the current speed is fine.\n", + "\n", + "Let's time classifying a single image with input preprocessed:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Resize the image to the standard (256, 256) and oversample net input sized crops.\n", + "input_oversampled = caffe.io.oversample([caffe.io.resize_image(input_image, net.image_dims)], net.crop_dims)\n", + "# 'data' is the input blob name in the model definition, so we preprocess for that input.\n", + "caffe_input = np.asarray([net.preprocess('data', in_) for in_ in input_oversampled])\n", + "# forward() takes keyword args for the input blobs with preprocessed input arrays.\n", + "%timeit net.forward(data=caffe_input)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "1 loops, best of 3: 327 ms per loop\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "OK, so how about GPU? it is actually pretty easy:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "net.set_mode_gpu()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 9 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Voila! Now we are in GPU mode. Let's see if the code gives the same result:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "prediction = net.predict([input_image])\n", + "print 'prediction shape:', prediction[0].shape\n", + "plt.plot(prediction[0])" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "prediction shape: (1000,)\n" + ] + }, + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 10, + "text": [ + "[]" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\n+LICF1LUgWkAAAAASUVORK5CYII=\n", + "text": [ + "" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Good, everything is the same. And how about time consumption? The following benchmark is obtained on the same machine with a K20 GPU:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Full pipeline timing.\n", + "%timeit net.predict([input_image])" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "10 loops, best of 3: 192 ms per loop\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Forward pass timing.\n", + "%timeit net.forward(data=caffe_input)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "10 loops, best of 3: 25.2 ms per loop\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Pretty fast right? Not as fast as you expected? Indeed, in this python demo you are seeing only 4 times speedup. But remember - the GPU code is actually very fast, and the data loading, transformation and interfacing actually start to take **more** time than the actual convnet computation itself!\n", + "\n", + "To fully utilize the power of GPUs, you really want to:\n", + "\n", + "* Use larger batches, and minimize python call and data transfer overheads.\n", + "* Pipeline data load operations, like using a subprocess.\n", + "* Code in C++. A little inconvenient, but maybe worth it if your dataset is really, really large." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Parting Words\n", + "-------------\n", + "\n", + "So this is python! We hope the interface is easy enough for one to use. The python wrapper is interfaced with boost::python, and source code can be found at `python/caffe` with the main interface in `pycaffe.py` and the classification wrapper in `classifier.py`. If you have customizations to make, start there! Do let us know if you make improvements by sending a pull request!" + ] + } + ], + "metadata": {} + } + ] +} \ No newline at end of file diff --git a/examples/imagenet_pretrained.ipynb b/examples/imagenet_pretrained.ipynb deleted file mode 100644 index 339eb7d4052..00000000000 --- a/examples/imagenet_pretrained.ipynb +++ /dev/null @@ -1,272 +0,0 @@ -{ - "metadata": { - "name": "" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Running Pretrained ImageNet: the Easy way\n", - "=========================================\n", - "\n", - "For easier use of pretrained models, we provide a wrapper specifically written for the case of ImageNet, so one can take an image and directly compute features or predictions from them. Both Python and Matlab wrappers are provided. We will describe the use of the Python wrapper here, and the Matlab wrapper usage is very similar.\n", - "\n", - "We assume that you have successfully compiled Caffe and set the correct `PYTHONPATH`. If not, please refer to the [installation instructions](installation.html). You will use our pre-trained imagenet model, which you can download (232.57MB) by running `examples/imagenet/get_caffe_reference_imagenet_model.sh`. Note that this pre-trained model is licensed for academic research / non-commercial use only.\n", - "\n", - "Ready? Let's start." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from caffe import imagenet\n", - "from matplotlib import pyplot\n", - "\n", - "# Set the right path to your model file, pretrained model,\n", - "# and the image you would like to classify.\n", - "MODEL_FILE = 'imagenet/imagenet_deploy.prototxt'\n", - "PRETRAINED = 'imagenet/caffe_reference_imagenet_model'\n", - "IMAGE_FILE = 'images/cat.jpg'" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Loading a network is easy. imagenet.ImagenetClassifier wraps everything. In default, the classifier will crop the center and corners of an image, as well as their mirrored versions, thus creating a batch of 10 images. If you look at the provided MODEL_FILE you can actually see that we are defining the input batch size to be 10.\n", - "\n", - "If you would like to just do the center, you need to specify center_only=1, and also change the batch size from 10 to 1 in the prototxt." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "net = imagenet.ImageNetClassifier(\n", - " MODEL_FILE, PRETRAINED)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 2 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will set the phase to test since we are doing testing, and will first use CPU for the computation." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "net.caffenet.set_phase_test()\n", - "net.caffenet.set_mode_cpu()" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "So now, we can do a prediction. Let's show some output as well:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "prediction = net.predict(IMAGE_FILE)\n", - "print 'prediction shape:', prediction.shape\n", - "pyplot.plot(prediction)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "prediction shape: (1000,)\n" - ] - }, - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 4, - "text": [ - "[]" - ] - }, - { - "metadata": {}, - "output_type": "display_data", - "png": "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\njH2nR8Hbb7+t559/Xpdddpl+/OMf67XXXtOaNWusHAuv1yuv16vS0lJJ0k033aQ9e/Zo+vTp1o3F\nO++8oyuvvFJTpkxRTk6OVq9erZ07d1o5Fn1S+Zvwer3yeDw6ePBgv8eTGZOMBcGZF6t1d3dr+/bt\nqqioyFR3Rp0xRlVVVZo7d65+8YtfxB+vqKjQE088IUl64okn4gFRUVGhZ555Rt3d3Wpra1NLS4sW\nLlyYkb6n2/33369wOKy2tjY988wzuuqqq/Tkk09aORbTp09Xbm6uPjz15VBNTU26/PLLdf3111s3\nFj6fT7t27dJXX30lY4yampo0d+5cK8eiT6p/E9OnT9eFF16o3bt3yxijJ598Ml4noXQc4BiuxsZG\nM3v2bJOfn2/uv//+THZl1L355pvG5XKZ4uJic8UVV5grrrjCvPzyy+azzz4zV199tSksLDTLli0z\nR44cidf5zW9+Y/Lz882cOXNMIBDIYO9HTzAYjJ81ZOtY/PWvfzUlJSWmqKjIrFq1ynR2dlo7FjU1\nNWbu3Llm3rx55tZbbzXd3d3WjEVlZaWZMWOGcbvdxuv1mm3btg3rtb/zzjtm3rx5Jj8/3/z85z9P\n6rm5oAwALMe/qgQAyxEEAGA5ggAALEcQAIDlCAIAsBxBAACWIwgAwHIEAQBY7v8BOcxt3c2Qt0YA\nAAAASUVORK5CYII=\n", - "text": [ - "" - ] - } - ], - "prompt_number": 4 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You can see that the prediction is 1000-dimensional, and is pretty sparse.\n", - "\n", - "Our pretrained model uses the synset ID ordering of the classes, as listed in `../data/ilsvrc12/synset_words.txt` if you fetch the auxiliary imagenet data by `../data/ilsvrc12/get_ilsvrc_aux.sh`. If you look at the top indices that maximize the prediction score, they are foxes, cats, and other cute mammals. Not unreasonable predictions, right?\n", - "\n", - "Now, why don't we see how long it takes to perform the classification end to end? This result is run from an Intel i5 CPU, so you may observe some performance differences." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%timeit net.predict(IMAGE_FILE)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "1 loops, best of 3: 296 ms per loop\n" - ] - } - ], - "prompt_number": 5 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It may look a little slow, but note that it also includes image loading, cropping, and python interfacing time, and it is running 10 images. As a performance notice, if you really want to make prediction fast, you can optionally write things in C and also pipeline the image loading part. But for most applications, the current speed might be fine I guess?\n", - "\n", - "OK, so how about GPU? it is actually pretty easy:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "net.caffenet.set_mode_gpu()" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 6 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Voila! Now we are in GPU mode. Let's see if the code gives the same result:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "prediction = net.predict(IMAGE_FILE)\n", - "print 'prediction shape:', prediction.shape\n", - "pyplot.plot(prediction)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "prediction shape: (1000,)\n" - ] - }, - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 7, - "text": [ - "[]" - ] - }, - { - "metadata": {}, - "output_type": "display_data", - "png": "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\njH2nR8Hbb7+t559/Xpdddpl+/OMf67XXXtOaNWusHAuv1yuv16vS0lJJ0k033aQ9e/Zo+vTp1o3F\nO++8oyuvvFJTpkxRTk6OVq9erZ07d1o5Fn1S+Zvwer3yeDw6ePBgv8eTGZOMBcGZF6t1d3dr+/bt\nqqioyFR3Rp0xRlVVVZo7d65+8YtfxB+vqKjQE088IUl64okn4gFRUVGhZ555Rt3d3Wpra1NLS4sW\nLlyYkb6n2/33369wOKy2tjY988wzuuqqq/Tkk09aORbTp09Xbm6uPjz15VBNTU26/PLLdf3111s3\nFj6fT7t27dJXX30lY4yampo0d+5cK8eiT6p/E9OnT9eFF16o3bt3yxijJ598Ml4noXQc4BiuxsZG\nM3v2bJOfn2/uv//+THZl1L355pvG5XKZ4uJic8UVV5grrrjCvPzyy+azzz4zV199tSksLDTLli0z\nR44cidf5zW9+Y/Lz882cOXNMIBDIYO9HTzAYjJ81ZOtY/PWvfzUlJSWmqKjIrFq1ynR2dlo7FjU1\nNWbu3Llm3rx55tZbbzXd3d3WjEVlZaWZMWOGcbvdxuv1mm3btg3rtb/zzjtm3rx5Jj8/3/z85z9P\n6rm5oAwALMe/qgQAyxEEAGA5ggAALEcQAIDlCAIAsBxBAACWIwgAwHIEAQBY7v8BOcxt3c2Qt0YA\nAAAASUVORK5CYII=\n", - "text": [ - "" - ] - } - ], - "prompt_number": 7 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Good, everything is the same. And how about time consumption? The following benchmark is obtained on the same machine with a K20 GPU:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%timeit net.predict(IMAGE_FILE)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "10 loops, best of 3: 123 ms per loop\n" - ] - } - ], - "prompt_number": 8 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Pretty fast right? Not as fast as you expected? Indeed, in this python demo you are seeing only 4 times speedup. But remember - the GPU code is actually very fast, and the data loading, transformation and interfacing actually start to take **more** time than the actual convnet computation itself!\n", - "\n", - "To fully utilize the power of GPUs, you really want to use one of these ideas:\n", - "* Use larger batches, and minimize python call and data transfer overheads.\n", - "* Pipeline data load operations, like using a subprocess.\n", - "* Code in C++. A little inconvenient, but maybe worth it if your dataset is really, really large." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Parting Words\n", - "-------------\n", - "\n", - "So this is python! We hope the interface is easy enough for one to use. The python wrapper is interfaced with boost::python, and source code can be found at `python/caffe` while the ImageNet wrapper used here is at `python/caffe/imagenet`. If you would like to achieve some custom functions, you are more than welcome to look at them!" - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file diff --git a/examples/lenet/convert_mnist_data.cpp b/examples/mnist/convert_mnist_data.cpp similarity index 98% rename from examples/lenet/convert_mnist_data.cpp rename to examples/mnist/convert_mnist_data.cpp index 1bf1d663918..593a2d23313 100644 --- a/examples/lenet/convert_mnist_data.cpp +++ b/examples/mnist/convert_mnist_data.cpp @@ -1,4 +1,4 @@ -// Copyright Yangqing Jia 2013 +// Copyright 2014 BVLC and contributors. // // This script converts the MNIST dataset to the leveldb format used // by caffe to perform classification. diff --git a/examples/lenet/create_mnist.sh b/examples/mnist/create_mnist.sh similarity index 92% rename from examples/lenet/create_mnist.sh rename to examples/mnist/create_mnist.sh index d9523ac3304..ae75bec2ab2 100755 --- a/examples/lenet/create_mnist.sh +++ b/examples/mnist/create_mnist.sh @@ -1,7 +1,7 @@ #!/usr/bin/env sh # This script converts the mnist data into leveldb format. -EXAMPLES=../../build/examples/lenet +EXAMPLES=../../build/examples/mnist DATA=../../data/mnist echo "Creating leveldb..." diff --git a/examples/lenet/lenet.prototxt b/examples/mnist/lenet.prototxt similarity index 59% rename from examples/lenet/lenet.prototxt rename to examples/mnist/lenet.prototxt index 4c49745e809..491fad1b1c0 100644 --- a/examples/lenet/lenet.prototxt +++ b/examples/mnist/lenet.prototxt @@ -4,13 +4,16 @@ input_dim: 64 input_dim: 1 input_dim: 28 input_dim: 28 -# N.B. input should be 0/1 = mnist raw data scaled by 0.00390625 layers { - layer { - name: "conv1" - type: "conv" + name: "conv1" + type: CONVOLUTION + bottom: "data" + top: "conv1" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { num_output: 20 - kernelsize: 5 + kernel_size: 5 stride: 1 weight_filler { type: "xavier" @@ -18,29 +21,29 @@ layers { bias_filler { type: "constant" } - blobs_lr: 1. - blobs_lr: 2. } - bottom: "data" - top: "conv1" } layers { - layer { - name: "pool1" - type: "pool" - kernelsize: 2 - stride: 2 - pool: MAX - } + name: "pool1" + type: POOLING bottom: "conv1" top: "pool1" + pooling_param { + pool: MAX + kernel_size: 2 + stride: 2 + } } layers { - layer { - name: "conv2" - type: "conv" + name: "conv2" + type: CONVOLUTION + bottom: "pool1" + top: "conv2" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { num_output: 50 - kernelsize: 5 + kernel_size: 5 stride: 1 weight_filler { type: "xavier" @@ -48,27 +51,27 @@ layers { bias_filler { type: "constant" } - blobs_lr: 1. - blobs_lr: 2. } - bottom: "pool1" - top: "conv2" } layers { - layer { - name: "pool2" - type: "pool" - kernelsize: 2 - stride: 2 - pool: MAX - } + name: "pool2" + type: POOLING bottom: "conv2" top: "pool2" + pooling_param { + pool: MAX + kernel_size: 2 + stride: 2 + } } layers { - layer { - name: "ip1" - type: "innerproduct" + name: "ip1" + type: INNER_PRODUCT + bottom: "pool2" + top: "ip1" + blobs_lr: 1 + blobs_lr: 2 + inner_product_param { num_output: 500 weight_filler { type: "xavier" @@ -76,24 +79,22 @@ layers { bias_filler { type: "constant" } - blobs_lr: 1. - blobs_lr: 2. } - bottom: "pool2" - top: "ip1" } layers { - layer { - name: "relu1" - type: "relu" - } + name: "relu1" + type: RELU bottom: "ip1" top: "ip1" } layers { - layer { - name: "ip2" - type: "innerproduct" + name: "ip2" + type: INNER_PRODUCT + bottom: "ip1" + top: "ip2" + blobs_lr: 1 + blobs_lr: 2 + inner_product_param { num_output: 10 weight_filler { type: "xavier" @@ -101,17 +102,11 @@ layers { bias_filler { type: "constant" } - blobs_lr: 1. - blobs_lr: 2. } - bottom: "ip1" - top: "ip2" } layers { - layer { - name: "prob" - type: "softmax" - } + name: "prob" + type: SOFTMAX bottom: "ip2" top: "prob" } diff --git a/examples/lenet/lenet_solver.prototxt b/examples/mnist/lenet_solver.prototxt similarity index 93% rename from examples/lenet/lenet_solver.prototxt rename to examples/mnist/lenet_solver.prototxt index 50890d98a01..7947f2d6a73 100644 --- a/examples/lenet/lenet_solver.prototxt +++ b/examples/mnist/lenet_solver.prototxt @@ -23,5 +23,5 @@ max_iter: 10000 # snapshot intermediate results snapshot: 5000 snapshot_prefix: "lenet" -# solver mode: 0 for CPU and 1 for GPU -solver_mode: 1 +# solver mode: CPU or GPU +solver_mode: GPU diff --git a/examples/lenet/lenet_test.prototxt b/examples/mnist/lenet_test.prototxt similarity index 65% rename from examples/lenet/lenet_test.prototxt rename to examples/mnist/lenet_test.prototxt index 676a2a6ab7d..3b59b75513d 100644 --- a/examples/lenet/lenet_test.prototxt +++ b/examples/mnist/lenet_test.prototxt @@ -1,21 +1,23 @@ name: "LeNet-test" layers { - layer { - name: "mnist" - type: "data" + name: "mnist" + type: DATA + top: "data" + top: "label" + data_param { source: "mnist-test-leveldb" - batchsize: 100 scale: 0.00390625 + batch_size: 100 } - top: "data" - top: "label" } layers { - layer { - name: "conv1" - type: "conv" + name: "conv1" + type: CONVOLUTION + bottom: "data" + top: "conv1" + convolution_param { num_output: 20 - kernelsize: 5 + kernel_size: 5 stride: 1 weight_filler { type: "xavier" @@ -24,26 +26,26 @@ layers { type: "constant" } } - bottom: "data" - top: "conv1" } layers { - layer { - name: "pool1" - type: "pool" - kernelsize: 2 - stride: 2 - pool: MAX - } + name: "pool1" + type: POOLING bottom: "conv1" top: "pool1" + pooling_param { + pool: MAX + kernel_size: 2 + stride: 2 + } } layers { - layer { - name: "conv2" - type: "conv" + name: "conv2" + type: CONVOLUTION + bottom: "pool1" + top: "conv2" + convolution_param { num_output: 50 - kernelsize: 5 + kernel_size: 5 stride: 1 weight_filler { type: "xavier" @@ -52,24 +54,24 @@ layers { type: "constant" } } - bottom: "pool1" - top: "conv2" } layers { - layer { - name: "pool2" - type: "pool" - kernelsize: 2 - stride: 2 - pool: MAX - } + name: "pool2" + type: POOLING bottom: "conv2" top: "pool2" + pooling_param { + pool: MAX + kernel_size: 2 + stride: 2 + } } layers { - layer { - name: "ip1" - type: "innerproduct" + name: "ip1" + type: INNER_PRODUCT + bottom: "pool2" + top: "ip1" + inner_product_param { num_output: 500 weight_filler { type: "xavier" @@ -78,21 +80,19 @@ layers { type: "constant" } } - bottom: "pool2" - top: "ip1" } layers { - layer { - name: "relu1" - type: "relu" - } + name: "relu1" + type: RELU bottom: "ip1" top: "ip1" } layers { - layer { - name: "ip2" - type: "innerproduct" + name: "ip2" + type: INNER_PRODUCT + bottom: "ip1" + top: "ip2" + inner_product_param { num_output: 10 weight_filler { type: "xavier" @@ -101,22 +101,16 @@ layers { type: "constant" } } - bottom: "ip1" - top: "ip2" } layers { - layer { - name: "prob" - type: "softmax" - } + name: "prob" + type: SOFTMAX bottom: "ip2" top: "prob" } layers { - layer { - name: "accuracy" - type: "accuracy" - } + name: "accuracy" + type: ACCURACY bottom: "prob" bottom: "label" top: "accuracy" diff --git a/examples/lenet/lenet_train.prototxt b/examples/mnist/lenet_train.prototxt similarity index 60% rename from examples/lenet/lenet_train.prototxt rename to examples/mnist/lenet_train.prototxt index f5877ae4804..e8a1e74e40b 100644 --- a/examples/lenet/lenet_train.prototxt +++ b/examples/mnist/lenet_train.prototxt @@ -1,21 +1,25 @@ name: "LeNet" layers { - layer { - name: "mnist" - type: "data" + name: "mnist" + type: DATA + top: "data" + top: "label" + data_param { source: "mnist-train-leveldb" - batchsize: 64 scale: 0.00390625 + batch_size: 64 } - top: "data" - top: "label" } layers { - layer { - name: "conv1" - type: "conv" + name: "conv1" + type: CONVOLUTION + bottom: "data" + top: "conv1" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { num_output: 20 - kernelsize: 5 + kernel_size: 5 stride: 1 weight_filler { type: "xavier" @@ -23,29 +27,29 @@ layers { bias_filler { type: "constant" } - blobs_lr: 1. - blobs_lr: 2. } - bottom: "data" - top: "conv1" } layers { - layer { - name: "pool1" - type: "pool" - kernelsize: 2 - stride: 2 - pool: MAX - } + name: "pool1" + type: POOLING bottom: "conv1" top: "pool1" + pooling_param { + pool: MAX + kernel_size: 2 + stride: 2 + } } layers { - layer { - name: "conv2" - type: "conv" + name: "conv2" + type: CONVOLUTION + bottom: "pool1" + top: "conv2" + blobs_lr: 1 + blobs_lr: 2 + convolution_param { num_output: 50 - kernelsize: 5 + kernel_size: 5 stride: 1 weight_filler { type: "xavier" @@ -53,27 +57,27 @@ layers { bias_filler { type: "constant" } - blobs_lr: 1. - blobs_lr: 2. } - bottom: "pool1" - top: "conv2" } layers { - layer { - name: "pool2" - type: "pool" - kernelsize: 2 - stride: 2 - pool: MAX - } + name: "pool2" + type: POOLING bottom: "conv2" top: "pool2" + pooling_param { + pool: MAX + kernel_size: 2 + stride: 2 + } } layers { - layer { - name: "ip1" - type: "innerproduct" + name: "ip1" + type: INNER_PRODUCT + bottom: "pool2" + top: "ip1" + blobs_lr: 1 + blobs_lr: 2 + inner_product_param { num_output: 500 weight_filler { type: "xavier" @@ -81,24 +85,22 @@ layers { bias_filler { type: "constant" } - blobs_lr: 1. - blobs_lr: 2. } - bottom: "pool2" - top: "ip1" } layers { - layer { - name: "relu1" - type: "relu" - } + name: "relu1" + type: RELU bottom: "ip1" top: "ip1" } layers { - layer { - name: "ip2" - type: "innerproduct" + name: "ip2" + type: INNER_PRODUCT + bottom: "ip1" + top: "ip2" + blobs_lr: 1 + blobs_lr: 2 + inner_product_param { num_output: 10 weight_filler { type: "xavier" @@ -106,17 +108,11 @@ layers { bias_filler { type: "constant" } - blobs_lr: 1. - blobs_lr: 2. } - bottom: "ip1" - top: "ip2" } layers { - layer { - name: "loss" - type: "softmax_loss" - } + name: "loss" + type: SOFTMAX_LOSS bottom: "ip2" bottom: "label" } diff --git a/examples/mnist/mnist_autoencoder_solver.prototxt b/examples/mnist/mnist_autoencoder_solver.prototxt new file mode 100644 index 00000000000..06e057d53a4 --- /dev/null +++ b/examples/mnist/mnist_autoencoder_solver.prototxt @@ -0,0 +1,15 @@ +train_net: "mnist_autoencoder_train.prototxt" +test_net: "mnist_autoencoder_test.prototxt" +test_iter: 50 +test_interval: 100 +test_compute_loss: true +base_lr: 0.0001 +lr_policy: "fixed" +display: 20 +max_iter: 4000000 +weight_decay: 0.0005 +snapshot: 10000 +snapshot_prefix: "mnist_autoencoder_train" +momentum: 0.9 +# solver mode: CPU or GPU +solver_mode: GPU diff --git a/examples/mnist/mnist_autoencoder_test.prototxt b/examples/mnist/mnist_autoencoder_test.prototxt new file mode 100644 index 00000000000..5090e82fe0a --- /dev/null +++ b/examples/mnist/mnist_autoencoder_test.prototxt @@ -0,0 +1,145 @@ +name: "MNISTAutoencoder" +layers { + top: "data" + name: "data" + type: DATA + data_param { + source: "mnist-test-leveldb" + scale: 0.0039215684 + batch_size: 100 + } +} +layers { + bottom: "data" + top: "flatdata" + name: "flatdata" + type: FLATTEN +} +layers { + bottom: "data" + top: "encode1" + name: "encode1" + type: INNER_PRODUCT + inner_product_param { + num_output: 1000 + } +} +layers { + bottom: "encode1" + top: "encode1neuron" + name: "encode1neuron" + type: SIGMOID +} +layers { + bottom: "encode1neuron" + top: "encode2" + name: "encode2" + type: INNER_PRODUCT + inner_product_param { + num_output: 500 + } +} +layers { + bottom: "encode2" + top: "encode2neuron" + name: "encode2neuron" + type: SIGMOID +} +layers { + bottom: "encode2neuron" + top: "encode3" + name: "encode3" + type: INNER_PRODUCT + inner_product_param { + num_output: 250 + } +} +layers { + bottom: "encode3" + top: "encode3neuron" + name: "encode3neuron" + type: SIGMOID +} +layers { + bottom: "encode3neuron" + top: "encode4" + name: "encode4" + type: INNER_PRODUCT + blobs_lr: 1 + blobs_lr: 1 + weight_decay: 1 + weight_decay: 0 + inner_product_param { + num_output: 30 + } +} +layers { + bottom: "encode4" + top: "decode4" + name: "decode4" + type: INNER_PRODUCT + blobs_lr: 1 + blobs_lr: 1 + weight_decay: 1 + weight_decay: 0 + inner_product_param { + num_output: 250 + } +} +layers { + bottom: "decode4" + top: "decode4neuron" + name: "decode4neuron" + type: SIGMOID +} +layers { + bottom: "decode4neuron" + top: "decode3" + name: "decode3" + type: INNER_PRODUCT + inner_product_param { + num_output: 500 + } +} +layers { + bottom: "decode3" + top: "decode3neuron" + name: "decode3neuron" + type: SIGMOID +} +layers { + bottom: "decode3neuron" + top: "decode2" + name: "decode2" + type: INNER_PRODUCT + inner_product_param { + num_output: 1000 + } +} +layers { + bottom: "decode2" + top: "decode2neuron" + name: "decode2neuron" + type: SIGMOID +} +layers { + bottom: "decode2neuron" + top: "decode1" + name: "decode1" + type: INNER_PRODUCT + inner_product_param { + num_output: 784 + } +} +layers { + bottom: "decode1" + top: "decode1neuron" + name: "decode1neuron" + type: SIGMOID +} +layers { + bottom: "decode1neuron" + bottom: "flatdata" + name: "loss" + type: EUCLIDEAN_LOSS +} diff --git a/examples/mnist/mnist_autoencoder_train.prototxt b/examples/mnist/mnist_autoencoder_train.prototxt new file mode 100644 index 00000000000..90d2cff99b8 --- /dev/null +++ b/examples/mnist/mnist_autoencoder_train.prototxt @@ -0,0 +1,235 @@ +name: "MNISTAutoencoder" +layers { + top: "data" + name: "data" + type: DATA + data_param { + source: "mnist-train-leveldb" + scale: 0.0039215684 + batch_size: 100 + } +} +layers { + bottom: "data" + top: "flatdata" + name: "flatdata" + type: FLATTEN +} +layers { + bottom: "data" + top: "encode1" + name: "encode1" + type: INNER_PRODUCT + blobs_lr: 1 + blobs_lr: 1 + weight_decay: 1 + weight_decay: 0 + inner_product_param { + num_output: 1000 + weight_filler { + type: "gaussian" + std: 1 + sparse: 15 + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layers { + bottom: "encode1" + top: "encode1neuron" + name: "encode1neuron" + type: SIGMOID +} +layers { + bottom: "encode1neuron" + top: "encode2" + name: "encode2" + type: INNER_PRODUCT + blobs_lr: 1 + blobs_lr: 1 + weight_decay: 1 + weight_decay: 0 + inner_product_param { + num_output: 500 + weight_filler { + type: "gaussian" + std: 1 + sparse: 15 + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layers { + bottom: "encode2" + top: "encode2neuron" + name: "encode2neuron" + type: SIGMOID +} +layers { + bottom: "encode2neuron" + top: "encode3" + name: "encode3" + type: INNER_PRODUCT + blobs_lr: 1 + blobs_lr: 1 + weight_decay: 1 + weight_decay: 0 + inner_product_param { + num_output: 250 + weight_filler { + type: "gaussian" + std: 1 + sparse: 15 + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layers { + bottom: "encode3" + top: "encode3neuron" + name: "encode3neuron" + type: SIGMOID +} +layers { + bottom: "encode3neuron" + top: "encode4" + name: "encode4" + type: INNER_PRODUCT + blobs_lr: 1 + blobs_lr: 1 + weight_decay: 1 + weight_decay: 0 + inner_product_param { + num_output: 30 + weight_filler { + type: "gaussian" + std: 1 + sparse: 15 + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layers { + bottom: "encode4" + top: "decode4" + name: "decode4" + type: INNER_PRODUCT + blobs_lr: 1 + blobs_lr: 1 + weight_decay: 1 + weight_decay: 0 + inner_product_param { + num_output: 250 + weight_filler { + type: "gaussian" + std: 1 + sparse: 15 + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layers { + bottom: "decode4" + top: "decode4neuron" + name: "decode4neuron" + type: SIGMOID +} +layers { + bottom: "decode4neuron" + top: "decode3" + name: "decode3" + type: INNER_PRODUCT + blobs_lr: 1 + blobs_lr: 1 + weight_decay: 1 + weight_decay: 0 + inner_product_param { + num_output: 500 + weight_filler { + type: "gaussian" + std: 1 + sparse: 15 + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layers { + bottom: "decode3" + top: "decode3neuron" + name: "decode3neuron" + type: SIGMOID +} +layers { + bottom: "decode3neuron" + top: "decode2" + name: "decode2" + type: INNER_PRODUCT + blobs_lr: 1 + blobs_lr: 1 + weight_decay: 1 + weight_decay: 0 + inner_product_param { + num_output: 1000 + weight_filler { + type: "gaussian" + std: 1 + sparse: 15 + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layers { + bottom: "decode2" + top: "decode2neuron" + name: "decode2neuron" + type: SIGMOID +} +layers { + bottom: "decode2neuron" + top: "decode1" + name: "decode1" + type: INNER_PRODUCT + blobs_lr: 1 + blobs_lr: 1 + weight_decay: 1 + weight_decay: 0 + inner_product_param { + num_output: 784 + weight_filler { + type: "gaussian" + std: 1 + sparse: 15 + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layers { + bottom: "decode1" + bottom: "flatdata" + name: "loss" + type: SIGMOID_CROSS_ENTROPY_LOSS +} diff --git a/examples/lenet/train_lenet.sh b/examples/mnist/train_lenet.sh similarity index 100% rename from examples/lenet/train_lenet.sh rename to examples/mnist/train_lenet.sh diff --git a/examples/mnist/train_mnist_autoencoder.sh b/examples/mnist/train_mnist_autoencoder.sh new file mode 100755 index 00000000000..af2245e07f0 --- /dev/null +++ b/examples/mnist/train_mnist_autoencoder.sh @@ -0,0 +1,4 @@ +#!/bin/bash +TOOLS=../../build/tools + +GLOG_logtostderr=1 $TOOLS/train_net.bin mnist_autoencoder_solver.prototxt diff --git a/examples/pascal-finetuning/pascal_finetune_train.prototxt b/examples/pascal-finetuning/pascal_finetune_train.prototxt index ac847813454..dfc60fe4b8a 100644 --- a/examples/pascal-finetuning/pascal_finetune_train.prototxt +++ b/examples/pascal-finetuning/pascal_finetune_train.prototxt @@ -1,28 +1,34 @@ name: "CaffeNet" layers { - layer { - name: "data" - type: "window_data" + name: "data" + type: WINDOW_DATA + top: "data" + top: "label" + window_data_param { source: "window_file_2007_trainval.txt" - meanfile: "../../data/ilsvrc12/imagenet_mean.binaryproto" - batchsize: 128 - cropsize: 227 + mean_file: "../../data/ilsvrc12/imagenet_mean.binaryproto" + batch_size: 128 + crop_size: 227 mirror: true - det_context_pad: 16 - det_crop_mode: "warp" - det_fg_threshold: 0.5 - det_bg_threshold: 0.5 - det_fg_fraction: 0.25 + fg_threshold: 0.5 + bg_threshold: 0.5 + fg_fraction: 0.25 + context_pad: 16 + crop_mode: "warp" } - top: "data" - top: "label" } layers { - layer { - name: "conv1" - type: "conv" + name: "conv1" + type: CONVOLUTION + bottom: "data" + top: "conv1" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 96 - kernelsize: 11 + kernel_size: 11 stride: 4 weight_filler { type: "gaussian" @@ -30,242 +36,200 @@ layers { } bias_filler { type: "constant" - value: 0. + value: 0 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "data" - top: "conv1" } layers { - layer { - name: "relu1" - type: "relu" - } + name: "relu1" + type: RELU bottom: "conv1" top: "conv1" } layers { - layer { - name: "pool1" - type: "pool" + name: "pool1" + type: POOLING + bottom: "conv1" + top: "pool1" + pooling_param { pool: MAX - kernelsize: 3 + kernel_size: 3 stride: 2 } - bottom: "conv1" - top: "pool1" } layers { - layer { - name: "norm1" - type: "lrn" + name: "norm1" + type: LRN + bottom: "pool1" + top: "norm1" + lrn_param { local_size: 5 alpha: 0.0001 beta: 0.75 } - bottom: "pool1" - top: "norm1" } layers { - layer { - name: "pad2" - type: "padding" - pad: 2 - } + name: "conv2" + type: CONVOLUTION bottom: "norm1" - top: "pad2" -} -layers { - layer { - name: "conv2" - type: "conv" + top: "conv2" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 256 + pad: 2 + kernel_size: 5 group: 2 - kernelsize: 5 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" - value: 1. + value: 1 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "pad2" - top: "conv2" } layers { - layer { - name: "relu2" - type: "relu" - } + name: "relu2" + type: RELU bottom: "conv2" top: "conv2" } layers { - layer { - name: "pool2" - type: "pool" + name: "pool2" + type: POOLING + bottom: "conv2" + top: "pool2" + pooling_param { pool: MAX - kernelsize: 3 + kernel_size: 3 stride: 2 } - bottom: "conv2" - top: "pool2" } layers { - layer { - name: "norm2" - type: "lrn" + name: "norm2" + type: LRN + bottom: "pool2" + top: "norm2" + lrn_param { local_size: 5 alpha: 0.0001 beta: 0.75 } - bottom: "pool2" - top: "norm2" } layers { - layer { - name: "pad3" - type: "padding" - pad: 1 - } + name: "conv3" + type: CONVOLUTION bottom: "norm2" - top: "pad3" -} -layers { - layer { - name: "conv3" - type: "conv" + top: "conv3" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 384 - kernelsize: 3 + pad: 1 + kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" - value: 0. + value: 0 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "pad3" - top: "conv3" } layers { - layer { - name: "relu3" - type: "relu" - } + name: "relu3" + type: RELU bottom: "conv3" top: "conv3" } layers { - layer { - name: "pad4" - type: "padding" - pad: 1 - } + name: "conv4" + type: CONVOLUTION bottom: "conv3" - top: "pad4" -} -layers { - layer { - name: "conv4" - type: "conv" + top: "conv4" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 384 + pad: 1 + kernel_size: 3 group: 2 - kernelsize: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" - value: 1. + value: 1 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "pad4" - top: "conv4" } layers { - layer { - name: "relu4" - type: "relu" - } + name: "relu4" + type: RELU bottom: "conv4" top: "conv4" } layers { - layer { - name: "pad5" - type: "padding" - pad: 1 - } + name: "conv5" + type: CONVOLUTION bottom: "conv4" - top: "pad5" -} -layers { - layer { - name: "conv5" - type: "conv" + top: "conv5" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 256 + pad: 1 + kernel_size: 3 group: 2 - kernelsize: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" - value: 1. + value: 1 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "pad5" - top: "conv5" } layers { - layer { - name: "relu5" - type: "relu" - } + name: "relu5" + type: RELU bottom: "conv5" top: "conv5" } layers { - layer { - name: "pool5" - type: "pool" - kernelsize: 3 + name: "pool5" + type: POOLING + bottom: "conv5" + top: "pool5" + pooling_param { pool: MAX + kernel_size: 3 stride: 2 } - bottom: "conv5" - top: "pool5" } layers { - layer { - name: "fc6" - type: "innerproduct" + name: "fc6" + type: INNER_PRODUCT + bottom: "pool5" + top: "fc6" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + inner_product_param { num_output: 4096 weight_filler { type: "gaussian" @@ -273,37 +237,35 @@ layers { } bias_filler { type: "constant" - value: 1. + value: 1 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "pool5" - top: "fc6" } layers { - layer { - name: "relu6" - type: "relu" - } + name: "relu6" + type: RELU bottom: "fc6" top: "fc6" } layers { - layer { - name: "drop6" - type: "dropout" - dropout_ratio: 0.5 - } + name: "drop6" + type: DROPOUT bottom: "fc6" top: "fc6" + dropout_param { + dropout_ratio: 0.5 + } } layers { - layer { - name: "fc7" - type: "innerproduct" + name: "fc7" + type: INNER_PRODUCT + bottom: "fc6" + top: "fc7" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + inner_product_param { num_output: 4096 weight_filler { type: "gaussian" @@ -311,37 +273,35 @@ layers { } bias_filler { type: "constant" - value: 1. + value: 1 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "fc6" - top: "fc7" } layers { - layer { - name: "relu7" - type: "relu" - } + name: "relu7" + type: RELU bottom: "fc7" top: "fc7" } layers { - layer { - name: "drop7" - type: "dropout" - dropout_ratio: 0.5 - } + name: "drop7" + type: DROPOUT bottom: "fc7" top: "fc7" + dropout_param { + dropout_ratio: 0.5 + } } layers { - layer { - name: "fc8_pascal" - type: "innerproduct" + name: "fc8_pascal" + type: INNER_PRODUCT + bottom: "fc7" + top: "fc8_pascal" + blobs_lr: 10 + blobs_lr: 20 + weight_decay: 1 + weight_decay: 0 + inner_product_param { num_output: 21 weight_filler { type: "gaussian" @@ -351,19 +311,11 @@ layers { type: "constant" value: 0 } - blobs_lr: 10. - blobs_lr: 20. - weight_decay: 1. - weight_decay: 0. } - bottom: "fc7" - top: "fc8_pascal" } layers { - layer { - name: "loss" - type: "softmax_loss" - } + name: "loss" + type: SOFTMAX_LOSS bottom: "fc8_pascal" bottom: "label" } diff --git a/examples/pascal-finetuning/pascal_finetune_val.prototxt b/examples/pascal-finetuning/pascal_finetune_val.prototxt index a11033ad1e2..ff898fe7376 100644 --- a/examples/pascal-finetuning/pascal_finetune_val.prototxt +++ b/examples/pascal-finetuning/pascal_finetune_val.prototxt @@ -1,28 +1,34 @@ name: "CaffeNet" layers { - layer { - name: "data" - type: "window_data" + name: "data" + type: WINDOW_DATA + top: "data" + top: "label" + window_data_param { source: "window_file_2007_test.txt" - meanfile: "../../data/ilsvrc12/imagenet_mean.binaryproto" - batchsize: 128 - cropsize: 227 + mean_file: "../../data/ilsvrc12/imagenet_mean.binaryproto" + batch_size: 128 + crop_size: 227 mirror: true - det_context_pad: 16 - det_crop_mode: "warp" - det_fg_threshold: 0.5 - det_bg_threshold: 0.5 - det_fg_fraction: 0.25 + fg_threshold: 0.5 + bg_threshold: 0.5 + fg_fraction: 0.25 + context_pad: 16 + crop_mode: "warp" } - top: "data" - top: "label" } layers { - layer { - name: "conv1" - type: "conv" + name: "conv1" + type: CONVOLUTION + bottom: "data" + top: "conv1" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 96 - kernelsize: 11 + kernel_size: 11 stride: 4 weight_filler { type: "gaussian" @@ -30,242 +36,200 @@ layers { } bias_filler { type: "constant" - value: 0. + value: 0 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "data" - top: "conv1" } layers { - layer { - name: "relu1" - type: "relu" - } + name: "relu1" + type: RELU bottom: "conv1" top: "conv1" } layers { - layer { - name: "pool1" - type: "pool" + name: "pool1" + type: POOLING + bottom: "conv1" + top: "pool1" + pooling_param { pool: MAX - kernelsize: 3 + kernel_size: 3 stride: 2 } - bottom: "conv1" - top: "pool1" } layers { - layer { - name: "norm1" - type: "lrn" + name: "norm1" + type: LRN + bottom: "pool1" + top: "norm1" + lrn_param { local_size: 5 alpha: 0.0001 beta: 0.75 } - bottom: "pool1" - top: "norm1" } layers { - layer { - name: "pad2" - type: "padding" - pad: 2 - } + name: "conv2" + type: CONVOLUTION bottom: "norm1" - top: "pad2" -} -layers { - layer { - name: "conv2" - type: "conv" + top: "conv2" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 256 + pad: 2 + kernel_size: 5 group: 2 - kernelsize: 5 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" - value: 1. + value: 1 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "pad2" - top: "conv2" } layers { - layer { - name: "relu2" - type: "relu" - } + name: "relu2" + type: RELU bottom: "conv2" top: "conv2" } layers { - layer { - name: "pool2" - type: "pool" + name: "pool2" + type: POOLING + bottom: "conv2" + top: "pool2" + pooling_param { pool: MAX - kernelsize: 3 + kernel_size: 3 stride: 2 } - bottom: "conv2" - top: "pool2" } layers { - layer { - name: "norm2" - type: "lrn" + name: "norm2" + type: LRN + bottom: "pool2" + top: "norm2" + lrn_param { local_size: 5 alpha: 0.0001 beta: 0.75 } - bottom: "pool2" - top: "norm2" } layers { - layer { - name: "pad3" - type: "padding" - pad: 1 - } + name: "conv3" + type: CONVOLUTION bottom: "norm2" - top: "pad3" -} -layers { - layer { - name: "conv3" - type: "conv" + top: "conv3" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 384 - kernelsize: 3 + pad: 1 + kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" - value: 0. + value: 0 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "pad3" - top: "conv3" } layers { - layer { - name: "relu3" - type: "relu" - } + name: "relu3" + type: RELU bottom: "conv3" top: "conv3" } layers { - layer { - name: "pad4" - type: "padding" - pad: 1 - } + name: "conv4" + type: CONVOLUTION bottom: "conv3" - top: "pad4" -} -layers { - layer { - name: "conv4" - type: "conv" + top: "conv4" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 384 + pad: 1 + kernel_size: 3 group: 2 - kernelsize: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" - value: 1. + value: 1 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "pad4" - top: "conv4" } layers { - layer { - name: "relu4" - type: "relu" - } + name: "relu4" + type: RELU bottom: "conv4" top: "conv4" } layers { - layer { - name: "pad5" - type: "padding" - pad: 1 - } + name: "conv5" + type: CONVOLUTION bottom: "conv4" - top: "pad5" -} -layers { - layer { - name: "conv5" - type: "conv" + top: "conv5" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + convolution_param { num_output: 256 + pad: 1 + kernel_size: 3 group: 2 - kernelsize: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" - value: 1. + value: 1 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "pad5" - top: "conv5" } layers { - layer { - name: "relu5" - type: "relu" - } + name: "relu5" + type: RELU bottom: "conv5" top: "conv5" } layers { - layer { - name: "pool5" - type: "pool" - kernelsize: 3 + name: "pool5" + type: POOLING + bottom: "conv5" + top: "pool5" + pooling_param { pool: MAX + kernel_size: 3 stride: 2 } - bottom: "conv5" - top: "pool5" } layers { - layer { - name: "fc6" - type: "innerproduct" + name: "fc6" + type: INNER_PRODUCT + bottom: "pool5" + top: "fc6" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + inner_product_param { num_output: 4096 weight_filler { type: "gaussian" @@ -273,37 +237,35 @@ layers { } bias_filler { type: "constant" - value: 1. + value: 1 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "pool5" - top: "fc6" } layers { - layer { - name: "relu6" - type: "relu" - } + name: "relu6" + type: RELU bottom: "fc6" top: "fc6" } layers { - layer { - name: "drop6" - type: "dropout" - dropout_ratio: 0.5 - } + name: "drop6" + type: DROPOUT bottom: "fc6" top: "fc6" + dropout_param { + dropout_ratio: 0.5 + } } layers { - layer { - name: "fc7" - type: "innerproduct" + name: "fc7" + type: INNER_PRODUCT + bottom: "fc6" + top: "fc7" + blobs_lr: 1 + blobs_lr: 2 + weight_decay: 1 + weight_decay: 0 + inner_product_param { num_output: 4096 weight_filler { type: "gaussian" @@ -311,37 +273,35 @@ layers { } bias_filler { type: "constant" - value: 1. + value: 1 } - blobs_lr: 1. - blobs_lr: 2. - weight_decay: 1. - weight_decay: 0. } - bottom: "fc6" - top: "fc7" } layers { - layer { - name: "relu7" - type: "relu" - } + name: "relu7" + type: RELU bottom: "fc7" top: "fc7" } layers { - layer { - name: "drop7" - type: "dropout" - dropout_ratio: 0.5 - } + name: "drop7" + type: DROPOUT bottom: "fc7" top: "fc7" + dropout_param { + dropout_ratio: 0.5 + } } layers { - layer { - name: "fc8_pascal" - type: "innerproduct" + name: "fc8_pascal" + type: INNER_PRODUCT + bottom: "fc7" + top: "fc8_pascal" + blobs_lr: 10 + blobs_lr: 20 + weight_decay: 1 + weight_decay: 0 + inner_product_param { num_output: 21 weight_filler { type: "gaussian" @@ -351,27 +311,17 @@ layers { type: "constant" value: 0 } - blobs_lr: 10. - blobs_lr: 20. - weight_decay: 1. - weight_decay: 0. } - bottom: "fc7" - top: "fc8_pascal" } layers { - layer { - name: "prob" - type: "softmax" - } + name: "prob" + type: SOFTMAX bottom: "fc8_pascal" top: "prob" } layers { - layer { - name: "accuracy" - type: "accuracy" - } + name: "accuracy" + type: ACCURACY bottom: "prob" bottom: "label" top: "accuracy" diff --git a/include/caffe/blob.hpp b/include/caffe/blob.hpp index f31d3b0f693..75101462faf 100644 --- a/include/caffe/blob.hpp +++ b/include/caffe/blob.hpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #ifndef CAFFE_BLOB_HPP_ #define CAFFE_BLOB_HPP_ @@ -17,9 +17,9 @@ class Blob { diff_() {} explicit Blob(const int num, const int channels, const int height, const int width); - virtual ~Blob() {} - void Reshape(const int num, const int height, - const int width, const int channels); + void Reshape(const int num, const int channels, const int height, + const int width); + void ReshapeLike(const Blob& other); inline int num() const { return num_; } inline int channels() const { return channels_; } inline int height() const { return height_; } @@ -27,6 +27,14 @@ class Blob { inline int count() const {return count_; } inline int offset(const int n, const int c = 0, const int h = 0, const int w = 0) const { + CHECK_GE(n, 0); + CHECK_LE(n, num_); + CHECK_GE(channels_, 0); + CHECK_LE(c, channels_); + CHECK_GE(height_, 0); + CHECK_LE(h, height_); + CHECK_GE(width_, 0); + CHECK_LE(w, width_); return ((n * channels_ + c) * height_ + h) * width_ + w; } // Copy from source. If copy_diff is false, we copy the data; if copy_diff @@ -44,7 +52,18 @@ class Blob { return *(cpu_diff() + offset(n, c, h, w)); } + inline const shared_ptr& data() const { + CHECK(data_); + return data_; + } + + inline const shared_ptr& diff() const { + CHECK(diff_); + return diff_; + } + const Dtype* cpu_data() const; + void set_cpu_data(Dtype* data); const Dtype* gpu_data() const; const Dtype* cpu_diff() const; const Dtype* gpu_diff() const; @@ -56,6 +75,14 @@ class Blob { void FromProto(const BlobProto& proto); void ToProto(BlobProto* proto, bool write_diff = false) const; + // Set the data_/diff_ shared_ptr to point to the SyncedMemory holding the + // data_/diff_ of Blob other -- useful in layers which simply perform a copy + // in their forward or backward pass. + // This deallocates the SyncedMemory holding this blob's data/diff, as + // shared_ptr calls its destructor when reset with the = operator. + void ShareData(const Blob& other); + void ShareDiff(const Blob& other); + protected: shared_ptr data_; shared_ptr diff_; diff --git a/include/caffe/caffe.hpp b/include/caffe/caffe.hpp index 6557dfd0b9c..ada0695472a 100644 --- a/include/caffe/caffe.hpp +++ b/include/caffe/caffe.hpp @@ -1,4 +1,4 @@ -// Copyright Yangqing Jia 2013 +// Copyright 2014 BVLC and contributors. // caffe.hpp is the header file that you need to include in your code. It wraps // all the internal caffe header files into one for simpler inclusion. diff --git a/include/caffe/common.hpp b/include/caffe/common.hpp index 96ba58c2716..7bfa5d402bd 100644 --- a/include/caffe/common.hpp +++ b/include/caffe/common.hpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #ifndef CAFFE_COMMON_HPP_ #define CAFFE_COMMON_HPP_ @@ -7,28 +7,8 @@ #include #include #include -// cuda driver types -#include +#include // cuda driver types #include -#include - -// various checks for different function calls. -#define CUDA_CHECK(condition) CHECK_EQ((condition), cudaSuccess) -#define CUBLAS_CHECK(condition) CHECK_EQ((condition), CUBLAS_STATUS_SUCCESS) -#define CURAND_CHECK(condition) CHECK_EQ((condition), CURAND_STATUS_SUCCESS) -#define VSL_CHECK(condition) CHECK_EQ((condition), VSL_STATUS_OK) - -#define CUDA_KERNEL_LOOP(i, n) \ - for (int i = blockIdx.x * blockDim.x + threadIdx.x; \ - i < (n); \ - i += blockDim.x * gridDim.x) - -// After a kernel is executed, this will check the error and if there is one, -// exit loudly. -#define CUDA_POST_KERNEL_CHECK \ - if (cudaSuccess != cudaPeekAtLastError()) \ - LOG(FATAL) << "Cuda kernel failed. Error: " \ - << cudaGetErrorString(cudaPeekAtLastError()) // Disable the copy and assignment operator for a class. #define DISABLE_COPY_AND_ASSIGN(classname) \ @@ -45,6 +25,41 @@ private:\ // is executed we will see a fatal log. #define NOT_IMPLEMENTED LOG(FATAL) << "Not Implemented Yet" +// CUDA: various checks for different function calls. +#define CUDA_CHECK(condition) \ + /* Code block avoids redefinition of cudaError_t error */ \ + do { \ + cudaError_t error = condition; \ + CHECK_EQ(error, cudaSuccess) << " " << cudaGetErrorString(error); \ + } while (0) + +#define CUBLAS_CHECK(condition) \ + do { \ + cublasStatus_t status = condition; \ + CHECK_EQ(status, CUBLAS_STATUS_SUCCESS) << " " \ + << caffe::cublasGetErrorString(status); \ + } while (0) + +#define CURAND_CHECK(condition) \ + do { \ + curandStatus_t status = condition; \ + CHECK_EQ(status, CURAND_STATUS_SUCCESS) << " " \ + << caffe::curandGetErrorString(status); \ + } while (0) + +// CUDA: grid stride looping +#define CUDA_KERNEL_LOOP(i, n) \ + for (int i = blockIdx.x * blockDim.x + threadIdx.x; \ + i < (n); \ + i += blockDim.x * gridDim.x) + +// CUDA: check for error after kernel execution and exit loudly if there is one. +#define CUDA_POST_KERNEL_CHECK CUDA_CHECK(cudaPeekAtLastError()) + +// Define not supported status for pre-6.0 compatibility. +#if CUDA_VERSION < 6000 +#define CUBLAS_STATUS_NOT_SUPPORTED 831486 +#endif namespace caffe { @@ -53,20 +68,6 @@ namespace caffe { using boost::shared_ptr; -// We will use 1024 threads per block, which requires cuda sm_2x or above. -#if __CUDA_ARCH__ >= 200 - const int CAFFE_CUDA_NUM_THREADS = 1024; -#else - const int CAFFE_CUDA_NUM_THREADS = 512; -#endif - - - -inline int CAFFE_GET_BLOCKS(const int N) { - return (N + CAFFE_CUDA_NUM_THREADS - 1) / CAFFE_CUDA_NUM_THREADS; -} - - // A singleton class to hold common caffe stuff, such as the handler that // caffe is going to use for cublas, curand, etc. class Caffe { @@ -81,15 +82,33 @@ class Caffe { enum Brew { CPU, GPU }; enum Phase { TRAIN, TEST }; - // The getters for the variables. - // Returns the cublas handle. + + // This random number generator facade hides boost and CUDA rng + // implementation from one another (for cross-platform compatibility). + class RNG { + public: + RNG(); + explicit RNG(unsigned int seed); + explicit RNG(const RNG&); + RNG& operator=(const RNG&); + void* generator(); + private: + class Generator; + shared_ptr generator_; + }; + + // Getters for boost rng, curand, and cublas handles + inline static RNG& rng_stream() { + if (!Get().random_generator_) { + Get().random_generator_.reset(new RNG()); + } + return *(Get().random_generator_); + } inline static cublasHandle_t cublas_handle() { return Get().cublas_handle_; } - // Returns the curand generator. inline static curandGenerator_t curand_generator() { return Get().curand_generator_; } - // Returns the MKL random stream. - inline static VSLStreamStatePtr vsl_stream() { return Get().vsl_stream_; } + // Returns the mode: running on CPU or GPU. inline static Brew mode() { return Get().mode_; } // Returns the phase: TRAIN or TEST. @@ -102,7 +121,7 @@ class Caffe { inline static void set_mode(Brew mode) { Get().mode_ = mode; } // Sets the phase. inline static void set_phase(Phase phase) { Get().phase_ = phase; } - // Sets the random seed of both MKL and curand + // Sets the random seed of both boost and curand static void set_random_seed(const unsigned int seed); // Sets the device. Since we have cublas and curand stuff, set device also // requires us to reset those values. @@ -113,7 +132,8 @@ class Caffe { protected: cublasHandle_t cublas_handle_; curandGenerator_t curand_generator_; - VSLStreamStatePtr vsl_stream_; + shared_ptr random_generator_; + Brew mode_; Phase phase_; static shared_ptr singleton_; @@ -125,6 +145,24 @@ class Caffe { DISABLE_COPY_AND_ASSIGN(Caffe); }; +// NVIDIA_CUDA-5.5_Samples/common/inc/helper_cuda.h +const char* cublasGetErrorString(cublasStatus_t error); +const char* curandGetErrorString(curandStatus_t error); + +// CUDA: thread number configuration. +// Use 1024 threads per block, which requires cuda sm_2x or above, +// or fall back to attempt compatibility (best of luck to you). +#if __CUDA_ARCH__ >= 200 + const int CAFFE_CUDA_NUM_THREADS = 1024; +#else + const int CAFFE_CUDA_NUM_THREADS = 512; +#endif + +// CUDA: number of blocks for threads. +inline int CAFFE_GET_BLOCKS(const int N) { + return (N + CAFFE_CUDA_NUM_THREADS - 1) / CAFFE_CUDA_NUM_THREADS; +} + } // namespace caffe diff --git a/include/caffe/data_layers.hpp b/include/caffe/data_layers.hpp new file mode 100644 index 00000000000..d9865ce485b --- /dev/null +++ b/include/caffe/data_layers.hpp @@ -0,0 +1,218 @@ +// Copyright 2014 BVLC and contributors. + +#ifndef CAFFE_DATA_LAYERS_HPP_ +#define CAFFE_DATA_LAYERS_HPP_ + +#include +#include +#include + +#include "leveldb/db.h" +#include "pthread.h" +#include "hdf5.h" +#include "boost/scoped_ptr.hpp" + +#include "caffe/blob.hpp" +#include "caffe/common.hpp" +#include "caffe/layer.hpp" +#include "caffe/proto/caffe.pb.h" + +namespace caffe { + +#define HDF5_DATA_DATASET_NAME "data" +#define HDF5_DATA_LABEL_NAME "label" + +template +class HDF5OutputLayer : public Layer { + public: + explicit HDF5OutputLayer(const LayerParameter& param); + virtual ~HDF5OutputLayer(); + virtual void SetUp(const vector*>& bottom, + vector*>* top); + inline std::string file_name() const { return file_name_; } + + protected: + virtual Dtype Forward_cpu(const vector*>& bottom, + vector*>* top); + virtual Dtype Forward_gpu(const vector*>& bottom, + vector*>* top); + virtual void Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); + virtual void Backward_gpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); + virtual void SaveBlobs(); + + std::string file_name_; + hid_t file_id_; + Blob data_blob_; + Blob label_blob_; +}; + + +template +class HDF5DataLayer : public Layer { + public: + explicit HDF5DataLayer(const LayerParameter& param) + : Layer(param) {} + virtual ~HDF5DataLayer(); + virtual void SetUp(const vector*>& bottom, + vector*>* top); + + protected: + virtual Dtype Forward_cpu(const vector*>& bottom, + vector*>* top); + virtual Dtype Forward_gpu(const vector*>& bottom, + vector*>* top); + virtual void Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); + virtual void Backward_gpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); + virtual void LoadHDF5FileData(const char* filename); + + std::vector hdf_filenames_; + unsigned int num_files_; + unsigned int current_file_; + hsize_t current_row_; + Blob data_blob_; + Blob label_blob_; +}; + +// TODO: DataLayer, ImageDataLayer, and WindowDataLayer all have the +// same basic structure and a lot of duplicated code. + +// This function is used to create a pthread that prefetches the data. +template +void* DataLayerPrefetch(void* layer_pointer); + +template +class DataLayer : public Layer { + // The function used to perform prefetching. + friend void* DataLayerPrefetch(void* layer_pointer); + + public: + explicit DataLayer(const LayerParameter& param) + : Layer(param) {} + virtual ~DataLayer(); + virtual void SetUp(const vector*>& bottom, + vector*>* top); + + protected: + virtual Dtype Forward_cpu(const vector*>& bottom, + vector*>* top); + virtual Dtype Forward_gpu(const vector*>& bottom, + vector*>* top); + virtual void Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom) { return; } + virtual void Backward_gpu(const vector*>& top, + const bool propagate_down, vector*>* bottom) { return; } + + virtual void CreatePrefetchThread(); + virtual void JoinPrefetchThread(); + virtual unsigned int PrefetchRand(); + + shared_ptr prefetch_rng_; + shared_ptr db_; + shared_ptr iter_; + int datum_channels_; + int datum_height_; + int datum_width_; + int datum_size_; + pthread_t thread_; + shared_ptr > prefetch_data_; + shared_ptr > prefetch_label_; + Blob data_mean_; + bool output_labels_; + Caffe::Phase phase_; +}; + +// This function is used to create a pthread that prefetches the data. +template +void* ImageDataLayerPrefetch(void* layer_pointer); + +template +class ImageDataLayer : public Layer { + // The function used to perform prefetching. + friend void* ImageDataLayerPrefetch(void* layer_pointer); + + public: + explicit ImageDataLayer(const LayerParameter& param) + : Layer(param) {} + virtual ~ImageDataLayer(); + virtual void SetUp(const vector*>& bottom, + vector*>* top); + + protected: + virtual Dtype Forward_cpu(const vector*>& bottom, + vector*>* top); + virtual Dtype Forward_gpu(const vector*>& bottom, + vector*>* top); + virtual void Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom) { return; } + virtual void Backward_gpu(const vector*>& top, + const bool propagate_down, vector*>* bottom) { return; } + + virtual void ShuffleImages(); + + virtual void CreatePrefetchThread(); + virtual void JoinPrefetchThread(); + virtual unsigned int PrefetchRand(); + + shared_ptr prefetch_rng_; + vector > lines_; + int lines_id_; + int datum_channels_; + int datum_height_; + int datum_width_; + int datum_size_; + pthread_t thread_; + shared_ptr > prefetch_data_; + shared_ptr > prefetch_label_; + Blob data_mean_; + Caffe::Phase phase_; +}; + + +// This function is used to create a pthread that prefetches the window data. +template +void* WindowDataLayerPrefetch(void* layer_pointer); + +template +class WindowDataLayer : public Layer { + // The function used to perform prefetching. + friend void* WindowDataLayerPrefetch(void* layer_pointer); + + public: + explicit WindowDataLayer(const LayerParameter& param) + : Layer(param) {} + virtual ~WindowDataLayer(); + virtual void SetUp(const vector*>& bottom, + vector*>* top); + + protected: + virtual Dtype Forward_cpu(const vector*>& bottom, + vector*>* top); + virtual Dtype Forward_gpu(const vector*>& bottom, + vector*>* top); + virtual void Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom) { return; } + virtual void Backward_gpu(const vector*>& top, + const bool propagate_down, vector*>* bottom) { return; } + + virtual void CreatePrefetchThread(); + virtual void JoinPrefetchThread(); + virtual unsigned int PrefetchRand(); + + shared_ptr prefetch_rng_; + pthread_t thread_; + shared_ptr > prefetch_data_; + shared_ptr > prefetch_label_; + Blob data_mean_; + vector > > image_database_; + enum WindowField { IMAGE_INDEX, LABEL, OVERLAP, X1, Y1, X2, Y2, NUM }; + vector > fg_windows_; + vector > bg_windows_; +}; + +} // namespace caffe + +#endif // CAFFE_DATA_LAYERS_HPP_ diff --git a/include/caffe/filler.hpp b/include/caffe/filler.hpp index 5b934a331e3..242f11a3513 100644 --- a/include/caffe/filler.hpp +++ b/include/caffe/filler.hpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. // Fillers are random number generators that fills a blob using the specified // algorithm. The expectation is that they are only going to be used during @@ -7,7 +7,6 @@ #ifndef CAFFE_FILLER_HPP #define CAFFE_FILLER_HPP -#include #include #include "caffe/common.hpp" @@ -42,6 +41,8 @@ class ConstantFiller : public Filler { for (int i = 0; i < count; ++i) { data[i] = value; } + CHECK_EQ(this->filler_param_.sparse(), -1) + << "Sparsity not supported by this Filler."; } }; @@ -52,9 +53,10 @@ class UniformFiller : public Filler { : Filler(param) {} virtual void Fill(Blob* blob) { CHECK(blob->count()); - caffe_vRngUniform(blob->count(), blob->mutable_cpu_data(), - Dtype(this->filler_param_.min()), - Dtype(this->filler_param_.max())); + caffe_rng_uniform(blob->count(), Dtype(this->filler_param_.min()), + Dtype(this->filler_param_.max()), blob->mutable_cpu_data()); + CHECK_EQ(this->filler_param_.sparse(), -1) + << "Sparsity not supported by this Filler."; } }; @@ -66,10 +68,30 @@ class GaussianFiller : public Filler { virtual void Fill(Blob* blob) { Dtype* data = blob->mutable_cpu_data(); CHECK(blob->count()); - caffe_vRngGaussian(blob->count(), blob->mutable_cpu_data(), - Dtype(this->filler_param_.mean()), - Dtype(this->filler_param_.std())); + caffe_rng_gaussian(blob->count(), Dtype(this->filler_param_.mean()), + Dtype(this->filler_param_.std()), blob->mutable_cpu_data()); + int sparse = this->filler_param_.sparse(); + CHECK_GE(sparse, -1); + if (sparse >= 0) { + // Sparse initialization is implemented for "weight" blobs; i.e. matrices. + // These have num == channels == 1; height is number of inputs; width is + // number of outputs. The 'sparse' variable specifies the mean number + // of non-zero input weights for a given output. + CHECK_EQ(blob->num(), 1); + CHECK_EQ(blob->channels(), 1); + int num_inputs = blob->height(); + Dtype non_zero_probability = Dtype(sparse) / Dtype(num_inputs); + rand_vec_.reset(new SyncedMemory(blob->count() * sizeof(int))); + int* mask = reinterpret_cast(rand_vec_->mutable_cpu_data()); + caffe_rng_bernoulli(blob->count(), non_zero_probability, mask); + for (int i = 0; i < blob->count(); ++i) { + data[i] *= mask[i]; + } + } } + + protected: + shared_ptr rand_vec_; }; template @@ -80,7 +102,7 @@ class PositiveUnitballFiller : public Filler { virtual void Fill(Blob* blob) { Dtype* data = blob->mutable_cpu_data(); DCHECK(blob->count()); - caffe_vRngUniform(blob->count(), blob->mutable_cpu_data(), 0, 1); + caffe_rng_uniform(blob->count(), 0, 1, blob->mutable_cpu_data()); // We expect the filler to not be called very frequently, so we will // just use a simple implementation int dim = blob->count() / blob->num(); @@ -94,6 +116,8 @@ class PositiveUnitballFiller : public Filler { data[i * dim + j] /= sum; } } + CHECK_EQ(this->filler_param_.sparse(), -1) + << "Sparsity not supported by this Filler."; } }; @@ -114,8 +138,10 @@ class XavierFiller : public Filler { CHECK(blob->count()); int fan_in = blob->count() / blob->num(); Dtype scale = sqrt(Dtype(3) / fan_in); - caffe_vRngUniform(blob->count(), blob->mutable_cpu_data(), - -scale, scale); + caffe_rng_uniform(blob->count(), -scale, scale, + blob->mutable_cpu_data()); + CHECK_EQ(this->filler_param_.sparse(), -1) + << "Sparsity not supported by this Filler."; } }; diff --git a/include/caffe/layer.hpp b/include/caffe/layer.hpp index a0cb487e50d..14bba63594b 100644 --- a/include/caffe/layer.hpp +++ b/include/caffe/layer.hpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #ifndef CAFFE_LAYER_H_ #define CAFFE_LAYER_H_ @@ -37,9 +37,9 @@ class Layer { // Forward and backward wrappers. You should implement the cpu and // gpu specific implementations instead, and should not change these // functions. - inline void Forward(const vector*>& bottom, + inline Dtype Forward(const vector*>& bottom, vector*>* top); - inline Dtype Backward(const vector*>& top, + inline void Backward(const vector*>& top, const bool propagate_down, vector*>* bottom); @@ -59,27 +59,27 @@ class Layer { // The vector that stores the parameters as a set of blobs. vector > > blobs_; - // Forward functions - virtual void Forward_cpu(const vector*>& bottom, + // Forward functions: compute the layer output + // (and loss layers return the loss; other layers return the dummy value 0.) + virtual Dtype Forward_cpu(const vector*>& bottom, vector*>* top) = 0; // If no gpu code is provided, we will simply use cpu code. - virtual void Forward_gpu(const vector*>& bottom, + virtual Dtype Forward_gpu(const vector*>& bottom, vector*>* top) { // LOG(WARNING) << "Using CPU code as backup."; - Forward_cpu(bottom, top); + return Forward_cpu(bottom, top); } - // Backward functions: the backward function will compute the gradients for - // any parameters and also for the bottom blobs if propagate_down is true. - // It will return the loss produced from this layer. - virtual Dtype Backward_cpu(const vector*>& top, + // Backward functions: compute the gradients for any parameters and + // for the bottom blobs if propagate_down is true. + virtual void Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom) = 0; - virtual Dtype Backward_gpu(const vector*>& top, + virtual void Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { // LOG(WARNING) << "Using CPU code as backup."; - return Backward_cpu(top, propagate_down, bottom); + Backward_cpu(top, propagate_down, bottom); } DISABLE_COPY_AND_ASSIGN(Layer); @@ -89,34 +89,36 @@ class Layer { // gpu specific implementations instead, and should not change these // functions. template -inline void Layer::Forward(const vector*>& bottom, +inline Dtype Layer::Forward(const vector*>& bottom, vector*>* top) { switch (Caffe::mode()) { case Caffe::CPU: - Forward_cpu(bottom, top); - break; + return Forward_cpu(bottom, top); case Caffe::GPU: - Forward_gpu(bottom, top); - break; + return Forward_gpu(bottom, top); default: LOG(FATAL) << "Unknown caffe mode."; + return Dtype(0); } } template -inline Dtype Layer::Backward(const vector*>& top, +inline void Layer::Backward(const vector*>& top, const bool propagate_down, vector*>* bottom) { switch (Caffe::mode()) { case Caffe::CPU: - return Backward_cpu(top, propagate_down, bottom); + Backward_cpu(top, propagate_down, bottom); + break; case Caffe::GPU: - return Backward_gpu(top, propagate_down, bottom); + Backward_gpu(top, propagate_down, bottom); + break; default: LOG(FATAL) << "Unknown caffe mode."; } } +// Serialize LayerParameter to protocol buffer template void Layer::ToProto(LayerParameter* param, bool write_diff) { param->Clear(); diff --git a/include/caffe/loss_layers.hpp b/include/caffe/loss_layers.hpp new file mode 100644 index 00000000000..cc798c499d3 --- /dev/null +++ b/include/caffe/loss_layers.hpp @@ -0,0 +1,171 @@ +// Copyright 2014 BVLC and contributors. + +#ifndef CAFFE_LOSS_LAYERS_HPP_ +#define CAFFE_LOSS_LAYERS_HPP_ + +#include +#include +#include + +#include "leveldb/db.h" +#include "pthread.h" +#include "boost/scoped_ptr.hpp" +#include "hdf5.h" + +#include "caffe/blob.hpp" +#include "caffe/common.hpp" +#include "caffe/layer.hpp" +#include "caffe/neuron_layers.hpp" +#include "caffe/proto/caffe.pb.h" + +namespace caffe { + +const float kLOG_THRESHOLD = 1e-20; + +/* LossLayer + Takes two inputs of same num (a and b), and has no output. + The gradient is propagated to a. +*/ +template +class LossLayer : public Layer { + public: + explicit LossLayer(const LayerParameter& param) + : Layer(param) {} + virtual void SetUp( + const vector*>& bottom, vector*>* top); + virtual void FurtherSetUp( + const vector*>& bottom, vector*>* top) {} +}; + +/* SigmoidCrossEntropyLossLayer +*/ +template +class SigmoidCrossEntropyLossLayer : public LossLayer { + public: + explicit SigmoidCrossEntropyLossLayer(const LayerParameter& param) + : LossLayer(param), + sigmoid_layer_(new SigmoidLayer(param)), + sigmoid_output_(new Blob()) {} + virtual void FurtherSetUp(const vector*>& bottom, + vector*>* top); + + protected: + virtual Dtype Forward_cpu(const vector*>& bottom, + vector*>* top); + virtual Dtype Forward_gpu(const vector*>& bottom, + vector*>* top); + virtual void Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); + virtual void Backward_gpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); + + shared_ptr > sigmoid_layer_; + // sigmoid_output stores the output of the sigmoid layer. + shared_ptr > sigmoid_output_; + // Vector holders to call the underlying sigmoid layer forward and backward. + vector*> sigmoid_bottom_vec_; + vector*> sigmoid_top_vec_; +}; + +/* EuclideanLossLayer + Compute the L_2 distance between the two inputs. + + loss = (1/2 \sum_i (a_i - b_i)^2) + a' = 1/I (a - b) +*/ +template +class EuclideanLossLayer : public LossLayer { + public: + explicit EuclideanLossLayer(const LayerParameter& param) + : LossLayer(param), diff_() {} + virtual void FurtherSetUp(const vector*>& bottom, + vector*>* top); + + protected: + virtual Dtype Forward_cpu(const vector*>& bottom, + vector*>* top); + virtual void Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); + + Blob diff_; +}; + +/* InfogainLossLayer +*/ +template +class InfogainLossLayer : public LossLayer { + public: + explicit InfogainLossLayer(const LayerParameter& param) + : LossLayer(param), infogain_() {} + virtual void FurtherSetUp(const vector*>& bottom, + vector*>* top); + + protected: + virtual Dtype Forward_cpu(const vector*>& bottom, + vector*>* top); + virtual void Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); + + Blob infogain_; +}; + +/* HingeLossLayer +*/ +template +class HingeLossLayer : public LossLayer { + public: + explicit HingeLossLayer(const LayerParameter& param) + : LossLayer(param) {} + + protected: + virtual Dtype Forward_cpu(const vector*>& bottom, + vector*>* top); + virtual void Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); +}; + +/* MultinomialLogisticLossLayer +*/ +template +class MultinomialLogisticLossLayer : public LossLayer { + public: + explicit MultinomialLogisticLossLayer(const LayerParameter& param) + : LossLayer(param) {} + virtual void FurtherSetUp(const vector*>& bottom, + vector*>* top); + + protected: + virtual Dtype Forward_cpu(const vector*>& bottom, + vector*>* top); + virtual void Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); +}; + +/* AccuracyLayer + Note: not an actual loss layer! Does not implement backwards step. + Computes the accuracy and logprob of a with respect to b. +*/ +template +class AccuracyLayer : public Layer { + public: + explicit AccuracyLayer(const LayerParameter& param) + : Layer(param) {} + virtual void SetUp(const vector*>& bottom, + vector*>* top); + + protected: + virtual Dtype Forward_cpu(const vector*>& bottom, + vector*>* top); + virtual void Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom) { + NOT_IMPLEMENTED; + } +}; + +/* Also see +- SoftmaxWithLossLayer in vision_layers.hpp +*/ + +} // namespace caffe + +#endif // CAFFE_LOSS_LAYERS_HPP_ diff --git a/include/caffe/net.hpp b/include/caffe/net.hpp index b5a57b3c5a4..46d72a6b0a1 100644 --- a/include/caffe/net.hpp +++ b/include/caffe/net.hpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #ifndef CAFFE_NET_HPP_ #define CAFFE_NET_HPP_ @@ -31,26 +31,33 @@ class Net { // Run forward with the input blobs already fed separately. You can get the // input blobs using input_blobs(). - const vector*>& ForwardPrefilled(); + const vector*>& ForwardPrefilled(Dtype* loss = NULL); // Run forward using a set of bottom blobs, and return the result. - const vector*>& Forward(const vector* > & bottom); + const vector*>& Forward(const vector* > & bottom, + Dtype* loss = NULL); // Run forward using a serialized BlobProtoVector and return the result // as a serialized BlobProtoVector - string Forward(const string& input_blob_protos); + string Forward(const string& input_blob_protos, Dtype* loss = NULL); // The network backward should take no input and output, since it solely // computes the gradient w.r.t the parameters, and the data has already // been provided during the forward pass. - Dtype Backward(); + void Backward(); Dtype ForwardBackward(const vector* > & bottom) { - Forward(bottom); - return Backward(); + Dtype loss; + Forward(bottom, &loss); + Backward(); + return loss; } // Updates the network weights based on the diff values computed. void Update(); + // For an already initialized net, ShareTrainedLayersWith() implicitly copies + // (i.e., using no additional memory) the already trained layers from another + // Net. + void ShareTrainedLayersWith(Net* other); // For an already initialized net, CopyTrainedLayersFrom() copies the already // trained layers from another net parameter instance. void CopyTrainedLayersFrom(const NetParameter& param); @@ -82,6 +89,15 @@ class Net { inline int num_outputs() { return net_output_blobs_.size(); } inline vector*>& input_blobs() { return net_input_blobs_; } inline vector*>& output_blobs() { return net_output_blobs_; } + inline vector& input_blob_indices() { return net_input_blob_indices_; } + inline vector& output_blob_indices() { return net_output_blob_indices_; } + // has_blob and blob_by_name are inspired by + // https://github.com/kencoken/caffe/commit/f36e71569455c9fbb4bf8a63c2d53224e32a4e7b + // Access intermediary computation layers, testing with centre image only + bool has_blob(const string& blob_name); + const shared_ptr > blob_by_name(const string& blob_name); + bool has_layer(const string& layer_name); + const shared_ptr > layer_by_name(const string& layer_name); protected: // Function to get misc parameters, e.g. the learning rate multiplier and @@ -91,11 +107,13 @@ class Net { // Individual layers in the net vector > > layers_; vector layer_names_; + map layer_names_index_; vector layer_need_backward_; // blobs stores the blobs that store intermediate results between the // layers. vector > > blobs_; vector blob_names_; + map blob_names_index_; vector blob_need_backward_; // bottom_vecs stores the vectors containing the input for each layer. // They don't actually host the blobs (blobs_ does), so we simply store @@ -107,6 +125,7 @@ class Net { vector > top_id_vecs_; // blob indices for the input and the output of the net vector net_input_blob_indices_; + vector net_output_blob_indices_; vector*> net_input_blobs_; vector*> net_output_blobs_; string name_; diff --git a/include/caffe/neuron_layers.hpp b/include/caffe/neuron_layers.hpp new file mode 100644 index 00000000000..fb2347da436 --- /dev/null +++ b/include/caffe/neuron_layers.hpp @@ -0,0 +1,207 @@ +// Copyright 2014 BVLC and contributors. + +#ifndef CAFFE_NEURON_LAYERS_HPP_ +#define CAFFE_NEURON_LAYERS_HPP_ + +#include +#include +#include + +#include "leveldb/db.h" +#include "pthread.h" +#include "boost/scoped_ptr.hpp" +#include "hdf5.h" + +#include "caffe/blob.hpp" +#include "caffe/common.hpp" +#include "caffe/layer.hpp" +#include "caffe/proto/caffe.pb.h" + +#define HDF5_DATA_DATASET_NAME "data" +#define HDF5_DATA_LABEL_NAME "label" + +namespace caffe { + +/* NeuronLayer + An interface for layers that take one blob as input (x), + and produce one blob as output (y). +*/ +template +class NeuronLayer : public Layer { + public: + explicit NeuronLayer(const LayerParameter& param) + : Layer(param) {} + virtual void SetUp(const vector*>& bottom, + vector*>* top); +}; + +/* BNLLLayer + + y = x + log(1 + exp(-x)) if x > 0 + y = log(1 + exp(x)) if x <= 0 + + y' = exp(x) / (exp(x) + 1) +*/ +template +class BNLLLayer : public NeuronLayer { + public: + explicit BNLLLayer(const LayerParameter& param) + : NeuronLayer(param) {} + + protected: + virtual Dtype Forward_cpu(const vector*>& bottom, + vector*>* top); + virtual Dtype Forward_gpu(const vector*>& bottom, + vector*>* top); + virtual void Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); + virtual void Backward_gpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); +}; + +/* DropoutLayer + During training only, sets some portion of x to 0, adjusting the + vector magnitude accordingly. + + mask = bernoulli(1 - threshold) + scale = 1 / (1 - threshold) + y = x * mask * scale + + y' = mask * scale +*/ +template +class DropoutLayer : public NeuronLayer { + public: + explicit DropoutLayer(const LayerParameter& param) + : NeuronLayer(param) {} + virtual void SetUp(const vector*>& bottom, + vector*>* top); + + protected: + virtual Dtype Forward_cpu(const vector*>& bottom, + vector*>* top); + virtual Dtype Forward_gpu(const vector*>& bottom, + vector*>* top); + virtual void Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); + virtual void Backward_gpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); + + shared_ptr rand_vec_; + Dtype threshold_; + Dtype scale_; + unsigned int uint_thres_; +}; + +/* PowerLayer + y = (shift + scale * x) ^ power + + y' = scale * power * (shift + scale * x) ^ (power - 1) + = scale * power * y / (shift + scale * x) +*/ +template +class PowerLayer : public NeuronLayer { + public: + explicit PowerLayer(const LayerParameter& param) + : NeuronLayer(param) {} + virtual void SetUp(const vector*>& bottom, + vector*>* top); + + protected: + virtual Dtype Forward_cpu(const vector*>& bottom, + vector*>* top); + virtual Dtype Forward_gpu(const vector*>& bottom, + vector*>* top); + virtual void Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); + virtual void Backward_gpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); + + Dtype power_; + Dtype scale_; + Dtype shift_; + Dtype diff_scale_; +}; + +/* ReLULayer + Rectified Linear Unit non-linearity. + The simple max is fast to compute, and the function does not saturate. + + y = max(0, x). + + y' = 0 if x < 0 + y' = 1 if x > 0 +*/ +template +class ReLULayer : public NeuronLayer { + public: + explicit ReLULayer(const LayerParameter& param) + : NeuronLayer(param) {} + + protected: + virtual Dtype Forward_cpu(const vector*>& bottom, + vector*>* top); + virtual Dtype Forward_gpu(const vector*>& bottom, + vector*>* top); + + virtual void Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); + virtual void Backward_gpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); +}; + +/* SigmoidLayer + Sigmoid function non-linearity, a classic choice in neural networks. + Note that the gradient vanishes as the values move away from 0. + The ReLULayer is often a better choice for this reason. + + y = 1. / (1 + exp(-x)) + + y ' = exp(x) / (1 + exp(x))^2 + or + y' = y * (1 - y) +*/ +template +class SigmoidLayer : public NeuronLayer { + public: + explicit SigmoidLayer(const LayerParameter& param) + : NeuronLayer(param) {} + + protected: + virtual Dtype Forward_cpu(const vector*>& bottom, + vector*>* top); + virtual Dtype Forward_gpu(const vector*>& bottom, + vector*>* top); + virtual void Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); + virtual void Backward_gpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); +}; + +/* TanHLayer + Hyperbolic tangent non-linearity, popular in auto-encoders. + + y = 1. * (exp(2x) - 1) / (exp(2x) + 1) + + y' = 1 - ( (exp(2x) - 1) / (exp(2x) + 1) ) ^ 2 +*/ +template +class TanHLayer : public NeuronLayer { + public: + explicit TanHLayer(const LayerParameter& param) + : NeuronLayer(param) {} + + protected: + virtual Dtype Forward_cpu(const vector*>& bottom, + vector*>* top); + virtual Dtype Forward_gpu(const vector*>& bottom, + vector*>* top); + virtual void Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); + virtual void Backward_gpu(const vector*>& top, + const bool propagate_down, vector*>* bottom); +}; + +} // namespace caffe + +#endif // CAFFE_NEURON_LAYERS_HPP_ diff --git a/include/caffe/solver.hpp b/include/caffe/solver.hpp index a5dafe61ae4..aef9b22c44d 100644 --- a/include/caffe/solver.hpp +++ b/include/caffe/solver.hpp @@ -1,4 +1,4 @@ -// Copyright Yangqing Jia 2013 +// Copyright 2014 BVLC and contributors. #ifndef CAFFE_OPTIMIZATION_SOLVER_HPP_ #define CAFFE_OPTIMIZATION_SOLVER_HPP_ @@ -12,12 +12,14 @@ template class Solver { public: explicit Solver(const SolverParameter& param); + explicit Solver(const string& param_file); + void Init(const SolverParameter& param); // The main entry of the solver function. In default, iter will be zero. Pass // in a non-zero iter number to resume training for a pre-trained net. virtual void Solve(const char* resume_file = NULL); inline void Solve(const string resume_file) { Solve(resume_file.c_str()); } virtual ~Solver() {} - inline Net* net() { return net_.get(); } + inline shared_ptr > net() { return net_; } protected: // PreSolve is run before any solving iteration starts, allowing one to @@ -53,6 +55,8 @@ class SGDSolver : public Solver { public: explicit SGDSolver(const SolverParameter& param) : Solver(param) {} + explicit SGDSolver(const string& param_file) + : Solver(param_file) {} protected: virtual void PreSolve(); diff --git a/include/caffe/syncedmem.hpp b/include/caffe/syncedmem.hpp index 97688cb2a05..bed55c3806e 100644 --- a/include/caffe/syncedmem.hpp +++ b/include/caffe/syncedmem.hpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #ifndef CAFFE_SYNCEDMEM_HPP_ #define CAFFE_SYNCEDMEM_HPP_ @@ -35,17 +35,21 @@ inline void CaffeFreeHost(void* ptr) { class SyncedMemory { public: SyncedMemory() - : cpu_ptr_(NULL), gpu_ptr_(NULL), size_(0), head_(UNINITIALIZED) {} + : cpu_ptr_(NULL), gpu_ptr_(NULL), size_(0), head_(UNINITIALIZED), + own_cpu_data_(false) {} explicit SyncedMemory(size_t size) - : cpu_ptr_(NULL), gpu_ptr_(NULL), size_(size), head_(UNINITIALIZED) {} + : cpu_ptr_(NULL), gpu_ptr_(NULL), size_(size), head_(UNINITIALIZED), + own_cpu_data_(false) {} ~SyncedMemory(); const void* cpu_data(); + void set_cpu_data(void* data); const void* gpu_data(); void* mutable_cpu_data(); void* mutable_gpu_data(); enum SyncedHead { UNINITIALIZED, HEAD_AT_CPU, HEAD_AT_GPU, SYNCED }; SyncedHead head() { return head_; } size_t size() { return size_; } + private: void to_cpu(); void to_gpu(); @@ -53,6 +57,7 @@ class SyncedMemory { void* gpu_ptr_; size_t size_; SyncedHead head_; + bool own_cpu_data_; DISABLE_COPY_AND_ASSIGN(SyncedMemory); }; // class SyncedMemory diff --git a/include/caffe/util/benchmark.hpp b/include/caffe/util/benchmark.hpp index fd6719a6820..1d26314c62f 100644 --- a/include/caffe/util/benchmark.hpp +++ b/include/caffe/util/benchmark.hpp @@ -1,4 +1,4 @@ -// Copyright 2014 kloud@github +// Copyright 2014 BVLC and contributors. #ifndef CAFFE_UTIL_BENCHMARK_H_ #define CAFFE_UTIL_BENCHMARK_H_ diff --git a/include/caffe/util/im2col.hpp b/include/caffe/util/im2col.hpp index 17da49cddcf..a649d8cc4e8 100644 --- a/include/caffe/util/im2col.hpp +++ b/include/caffe/util/im2col.hpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #ifndef _CAFFE_UTIL_IM2COL_HPP_ #define _CAFFE_UTIL_IM2COL_HPP_ diff --git a/include/caffe/util/insert_splits.hpp b/include/caffe/util/insert_splits.hpp index 37972b34829..e25cdd7faf1 100644 --- a/include/caffe/util/insert_splits.hpp +++ b/include/caffe/util/insert_splits.hpp @@ -1,4 +1,4 @@ -// Copyright 2014 Jeff Donahue +// Copyright 2014 BVLC and contributors. #ifndef _CAFFE_UTIL_INSERT_SPLITS_HPP_ #define _CAFFE_UTIL_INSERT_SPLITS_HPP_ @@ -14,16 +14,16 @@ namespace caffe { // Copy NetParameters with SplitLayers added to replace any shared bottom // blobs with unique bottom blobs provided by the SplitLayer. -void insert_splits(const NetParameter& param, NetParameter* param_split); +void InsertSplits(const NetParameter& param, NetParameter* param_split); -void configure_split_layer(const string& layer_name, const string& blob_name, +void ConfigureSplitLayer(const string& layer_name, const string& blob_name, const int blob_idx, const int split_count, - LayerConnection* split_layer_connection); + LayerParameter* split_layer_param); -string get_split_layer_name(const string& layer_name, const string& blob_name, +string SplitLayerName(const string& layer_name, const string& blob_name, const int blob_idx); -string get_split_blob_name(const string& layer_name, const string& blob_name, +string SplitBlobName(const string& layer_name, const string& blob_name, const int blob_idx, const int split_idx); } // namespace caffe diff --git a/include/caffe/util/io.hpp b/include/caffe/util/io.hpp index 7bf78977d6d..056b573db4c 100644 --- a/include/caffe/util/io.hpp +++ b/include/caffe/util/io.hpp @@ -1,4 +1,4 @@ -// Copyright Yangqing Jia 2013 +// Copyright 2014 BVLC and contributors. #ifndef CAFFE_UTIL_IO_H_ #define CAFFE_UTIL_IO_H_ @@ -15,13 +15,22 @@ using std::string; using ::google::protobuf::Message; +#define HDF5_NUM_DIMS 4 + namespace caffe { -void ReadProtoFromTextFile(const char* filename, - Message* proto); -inline void ReadProtoFromTextFile(const string& filename, - Message* proto) { - ReadProtoFromTextFile(filename.c_str(), proto); +bool ReadProtoFromTextFile(const char* filename, Message* proto); + +inline bool ReadProtoFromTextFile(const string& filename, Message* proto) { + return ReadProtoFromTextFile(filename.c_str(), proto); +} + +inline void ReadProtoFromTextFileOrDie(const char* filename, Message* proto) { + CHECK(ReadProtoFromTextFile(filename, proto)); +} + +inline void ReadProtoFromTextFileOrDie(const string& filename, Message* proto) { + ReadProtoFromTextFileOrDie(filename.c_str(), proto); } void WriteProtoToTextFile(const Message& proto, const char* filename); @@ -29,13 +38,22 @@ inline void WriteProtoToTextFile(const Message& proto, const string& filename) { WriteProtoToTextFile(proto, filename.c_str()); } -void ReadProtoFromBinaryFile(const char* filename, - Message* proto); -inline void ReadProtoFromBinaryFile(const string& filename, - Message* proto) { - ReadProtoFromBinaryFile(filename.c_str(), proto); +bool ReadProtoFromBinaryFile(const char* filename, Message* proto); + +inline bool ReadProtoFromBinaryFile(const string& filename, Message* proto) { + return ReadProtoFromBinaryFile(filename.c_str(), proto); +} + +inline void ReadProtoFromBinaryFileOrDie(const char* filename, Message* proto) { + CHECK(ReadProtoFromBinaryFile(filename, proto)); +} + +inline void ReadProtoFromBinaryFileOrDie(const string& filename, + Message* proto) { + ReadProtoFromBinaryFileOrDie(filename.c_str(), proto); } + void WriteProtoToBinaryFile(const Message& proto, const char* filename); inline void WriteProtoToBinaryFile( const Message& proto, const string& filename) { @@ -60,6 +78,10 @@ void hdf5_load_nd_dataset( hid_t file_id, const char* dataset_name_, int min_dim, int max_dim, Blob* blob); +template +void hdf5_save_nd_dataset( + const hid_t file_id, const string dataset_name, const Blob& blob); + } // namespace caffe #endif // CAFFE_UTIL_IO_H_ diff --git a/include/caffe/util/math_functions.hpp b/include/caffe/util/math_functions.hpp index e9e2db8f274..d9c78355b6f 100644 --- a/include/caffe/util/math_functions.hpp +++ b/include/caffe/util/math_functions.hpp @@ -1,10 +1,15 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #ifndef CAFFE_UTIL_MATH_FUNCTIONS_H_ #define CAFFE_UTIL_MATH_FUNCTIONS_H_ -#include #include +#include +#include // for std::fabs and std::signbit + +#include "glog/logging.h" + +#include "caffe/util/mkl_alternate.hpp" namespace caffe { @@ -44,7 +49,7 @@ void caffe_gpu_axpy(const int N, const Dtype alpha, const Dtype* X, Dtype* Y); template -void caffe_axpby(const int N, const Dtype alpha, const Dtype* X, +void caffe_cpu_axpby(const int N, const Dtype alpha, const Dtype* X, const Dtype beta, Dtype* Y); template @@ -54,9 +59,21 @@ void caffe_gpu_axpby(const int N, const Dtype alpha, const Dtype* X, template void caffe_copy(const int N, const Dtype *X, Dtype *Y); +template +void caffe_set(const int N, const Dtype alpha, Dtype *X); + +template +void caffe_gpu_set(const int N, const Dtype alpha, Dtype *X); + template void caffe_gpu_copy(const int N, const Dtype *X, Dtype *Y); +template +void caffe_add_scalar(const int N, const Dtype alpha, Dtype *X); + +template +void caffe_gpu_add_scalar(const int N, const Dtype alpha, Dtype *X); + template void caffe_scal(const int N, const Dtype alpha, Dtype *X); @@ -81,15 +98,48 @@ void caffe_gpu_mul(const int N, const Dtype* a, const Dtype* b, Dtype* y); template void caffe_div(const int N, const Dtype* a, const Dtype* b, Dtype* y); +template +void caffe_gpu_div(const int N, const Dtype* a, const Dtype* b, Dtype* y); + template void caffe_powx(const int n, const Dtype* a, const Dtype b, Dtype* y); template -void caffe_vRngUniform(const int n, Dtype* r, const Dtype a, const Dtype b); +void caffe_gpu_powx(const int n, const Dtype* a, const Dtype b, Dtype* y); + +unsigned int caffe_rng_rand(); + +template +Dtype caffe_nextafter(const Dtype b); + +template +void caffe_rng_uniform(const int n, const Dtype a, const Dtype b, Dtype* r); + +// caffe_gpu_rng_uniform with two arguments generates integers in the range +// [0, UINT_MAX]. +void caffe_gpu_rng_uniform(const int n, unsigned int* r); + +// caffe_gpu_rng_uniform with four arguments generates floats in the range +// (a, b] (strictly greater than a, less than or equal to b) due to the +// specification of curandGenerateUniform. With a = 0, b = 1, just calls +// curandGenerateUniform; with other limits will shift and scale the outputs +// appropriately after calling curandGenerateUniform. +template +void caffe_gpu_rng_uniform(const int n, const Dtype a, const Dtype b, Dtype* r); + +template +void caffe_rng_gaussian(const int n, const Dtype mu, const Dtype sigma, + Dtype* r); + +template +void caffe_gpu_rng_gaussian(const int n, const Dtype mu, const Dtype sigma, + Dtype* r); + +template +void caffe_rng_bernoulli(const int n, const Dtype p, int* r); template -void caffe_vRngGaussian(const int n, Dtype* r, const Dtype a, - const Dtype sigma); +void caffe_gpu_rng_bernoulli(const int n, const Dtype p, int* r); template void caffe_exp(const int n, const Dtype* a, Dtype* y); @@ -100,6 +150,94 @@ Dtype caffe_cpu_dot(const int n, const Dtype* x, const Dtype* y); template void caffe_gpu_dot(const int n, const Dtype* x, const Dtype* y, Dtype* out); +template +int caffe_cpu_hamming_distance(const int n, const Dtype* x, const Dtype* y); + +template +uint32_t caffe_gpu_hamming_distance(const int n, const Dtype* x, + const Dtype* y); + +// Returns the sum of the absolute values of the elements of vector x +template +Dtype caffe_cpu_asum(const int n, const Dtype* x); + +template +void caffe_gpu_asum(const int n, const Dtype* x, Dtype* y); + +// the branchless, type-safe version from +// http://stackoverflow.com/questions/1903954/is-there-a-standard-sign-function-signum-sgn-in-c-c +template +inline char caffe_sign(Dtype val) { + return (Dtype(0) < val) - (val < Dtype(0)); +} + +// The following two macros are modifications of DEFINE_VSL_UNARY_FUNC +// in include/caffe/util/mkl_alternate.hpp authored by @Rowland Depp. +// Please refer to commit 7e8ef25c7 of the boost-eigen branch. +// Git cherry picking that commit caused a conflict hard to resolve and +// copying that file in convenient for code reviewing. +// So they have to be pasted here temporarily. +#define DEFINE_CAFFE_CPU_UNARY_FUNC(name, operation) \ + template \ + void caffe_cpu_##name(const int n, const Dtype* x, Dtype* y) { \ + CHECK_GT(n, 0); CHECK(x); CHECK(y); \ + for (int i = 0; i < n; ++i) { \ + operation; \ + } \ + } + +#define INSTANTIATE_CAFFE_CPU_UNARY_FUNC(name) \ + template <> \ + void caffe_cpu_##name(const int n, const float* x, float* y); \ + template <> \ + void caffe_cpu_##name(const int n, const double* x, double* y) + + +#define DEFINE_AND_INSTANTIATE_GPU_UNARY_FUNC(name, operation) \ +template \ +__global__ void name##_kernel(const int n, const Dtype* x, Dtype* y) { \ + CUDA_KERNEL_LOOP(index, n) { \ + operation; \ + } \ +} \ +template <> \ +void caffe_gpu_##name(const int n, const float* x, float* y) { \ + /* NOLINT_NEXT_LINE(whitespace/operators) */ \ + name##_kernel<<>>( \ + n, x, y); \ +} \ +template <> \ +void caffe_gpu_##name(const int n, const double* x, double* y) { \ + /* NOLINT_NEXT_LINE(whitespace/operators) */ \ + name##_kernel<<>>( \ + n, x, y); \ +} + +// output is 1 for the positives, 0 for zero, and -1 for the negatives +DEFINE_CAFFE_CPU_UNARY_FUNC(sign, y[i] = caffe_sign(x[i])); + +template +void caffe_gpu_sign(const int n, const Dtype* x, Dtype* y); + +// This returns a nonzero value if the input has its sign bit set. +// The name sngbit is meant to avoid conflicts with std::signbit in the macro +using std::signbit; +DEFINE_CAFFE_CPU_UNARY_FUNC(sgnbit, y[i] = signbit(x[i])); + +template +void caffe_gpu_sgnbit(const int n, const Dtype* x, Dtype* y); + +DEFINE_CAFFE_CPU_UNARY_FUNC(fabs, y[i] = std::fabs(x[i])); + +template +void caffe_gpu_fabs(const int n, const Dtype* x, Dtype* y); + +template +void caffe_cpu_scale(const int n, const Dtype alpha, const Dtype *x, Dtype* y); + +template +void caffe_gpu_scale(const int n, const Dtype alpha, const Dtype *x, Dtype* y); + } // namespace caffe diff --git a/include/caffe/util/mkl_alternate.hpp b/include/caffe/util/mkl_alternate.hpp new file mode 100644 index 00000000000..c30eab8d3d4 --- /dev/null +++ b/include/caffe/util/mkl_alternate.hpp @@ -0,0 +1,97 @@ +// Copyright 2014 BVLC and contributors. + +#ifndef CAFFE_UTIL_MKL_ALTERNATE_H_ +#define CAFFE_UTIL_MKL_ALTERNATE_H_ + +#ifdef USE_MKL + +#include + +#else // If use MKL, simply include the MKL header + +extern "C" { +#include +} +#include + +// Functions that caffe uses but are not present if MKL is not linked. + +// A simple way to define the vsl unary functions. The operation should +// be in the form e.g. y[i] = sqrt(a[i]) +#define DEFINE_VSL_UNARY_FUNC(name, operation) \ + template \ + void v##name(const int n, const Dtype* a, Dtype* y) { \ + CHECK_GT(n, 0); CHECK(a); CHECK(y); \ + for (int i = 0; i < n; ++i) { operation; } \ + } \ + inline void vs##name( \ + const int n, const float* a, float* y) { \ + v##name(n, a, y); \ + } \ + inline void vd##name( \ + const int n, const double* a, double* y) { \ + v##name(n, a, y); \ + } + +DEFINE_VSL_UNARY_FUNC(Sqr, y[i] = a[i] * a[i]); +DEFINE_VSL_UNARY_FUNC(Exp, y[i] = exp(a[i])); + +// A simple way to define the vsl unary functions with singular parameter b. +// The operation should be in the form e.g. y[i] = pow(a[i], b) +#define DEFINE_VSL_UNARY_FUNC_WITH_PARAM(name, operation) \ + template \ + void v##name(const int n, const Dtype* a, const Dtype b, Dtype* y) { \ + CHECK_GT(n, 0); CHECK(a); CHECK(y); \ + for (int i = 0; i < n; ++i) { operation; } \ + } \ + inline void vs##name( \ + const int n, const float* a, const float b, float* y) { \ + v##name(n, a, b, y); \ + } \ + inline void vd##name( \ + const int n, const double* a, const float b, double* y) { \ + v##name(n, a, b, y); \ + } + +DEFINE_VSL_UNARY_FUNC_WITH_PARAM(Powx, y[i] = pow(a[i], b)); + +// A simple way to define the vsl binary functions. The operation should +// be in the form e.g. y[i] = a[i] + b[i] +#define DEFINE_VSL_BINARY_FUNC(name, operation) \ + template \ + void v##name(const int n, const Dtype* a, const Dtype* b, Dtype* y) { \ + CHECK_GT(n, 0); CHECK(a); CHECK(b); CHECK(y); \ + for (int i = 0; i < n; ++i) { operation; } \ + } \ + inline void vs##name( \ + const int n, const float* a, const float* b, float* y) { \ + v##name(n, a, b, y); \ + } \ + inline void vd##name( \ + const int n, const double* a, const double* b, double* y) { \ + v##name(n, a, b, y); \ + } + +DEFINE_VSL_BINARY_FUNC(Add, y[i] = a[i] + b[i]); +DEFINE_VSL_BINARY_FUNC(Sub, y[i] = a[i] - b[i]); +DEFINE_VSL_BINARY_FUNC(Mul, y[i] = a[i] * b[i]); +DEFINE_VSL_BINARY_FUNC(Div, y[i] = a[i] / b[i]); + +// In addition, MKL comes with an additional function axpby that is not present +// in standard blas. We will simply use a two-step (inefficient, of course) way +// to mimic that. +inline void cblas_saxpby(const int N, const float alpha, const float* X, + const int incX, const float beta, float* Y, + const int incY) { + cblas_sscal(N, beta, Y, incY); + cblas_saxpy(N, alpha, X, incX, Y, incY); +} +inline void cblas_daxpby(const int N, const double alpha, const double* X, + const int incX, const double beta, double* Y, + const int incY) { + cblas_dscal(N, beta, Y, incY); + cblas_daxpy(N, alpha, X, incX, Y, incY); +} + +#endif // USE_MKL +#endif // CAFFE_UTIL_MKL_ALTERNATE_H_ diff --git a/include/caffe/util/rng.hpp b/include/caffe/util/rng.hpp new file mode 100644 index 00000000000..5909d1715ed --- /dev/null +++ b/include/caffe/util/rng.hpp @@ -0,0 +1,19 @@ +// Copyright 2014 BVLC and contributors. + +#ifndef CAFFE_RNG_CPP_HPP_ +#define CAFFE_RNG_CPP_HPP_ + +#include +#include "caffe/common.hpp" + +namespace caffe { + + typedef boost::mt19937 rng_t; + + inline rng_t* caffe_rng() { + return static_cast(Caffe::rng_stream().generator()); + } + +} // namespace caffe + +#endif // CAFFE_RNG_HPP_ diff --git a/include/caffe/util/upgrade_proto.hpp b/include/caffe/util/upgrade_proto.hpp new file mode 100644 index 00000000000..a1ac060970f --- /dev/null +++ b/include/caffe/util/upgrade_proto.hpp @@ -0,0 +1,49 @@ +// Copyright 2014 BVLC and contributors. + +#ifndef CAFFE_UTIL_UPGRADE_PROTO_H_ +#define CAFFE_UTIL_UPGRADE_PROTO_H_ + +#include + +#include "caffe/proto/caffe.pb.h" +#include "caffe/proto/caffe_pretty_print.pb.h" + +using std::string; + +namespace caffe { + +// Return true iff any layer contains parameters specified using +// deprecated V0LayerParameter. +bool NetNeedsUpgrade(const NetParameter& net_param); + +// Perform all necessary transformations to upgrade a V0NetParameter into a +// NetParameter (including upgrading padding layers and LayerParameters). +bool UpgradeV0Net(const NetParameter& v0_net_param, NetParameter* net_param); + +// Upgrade NetParameter with padding layers to pad-aware conv layers. +// For any padding layer, remove it and put its pad parameter in any layers +// taking its top blob as input. +// Error if any of these above layers are not-conv layers. +void UpgradeV0PaddingLayers(const NetParameter& param, + NetParameter* param_upgraded_pad); + +// Upgrade a single V0LayerConnection to the new LayerParameter format. +bool UpgradeLayerParameter(const LayerParameter& v0_layer_connection, + LayerParameter* layer_param); + +LayerParameter_LayerType UpgradeV0LayerType(const string& type); + +// Convert a NetParameter to NetParameterPrettyPrint used for dumping to +// proto text files. +void NetParameterToPrettyPrint(const NetParameter& param, + NetParameterPrettyPrint* pretty_param); + +// Read parameters from a file into a NetParameter proto message. +void ReadNetParamsFromTextFileOrDie(const string& param_file, + NetParameter* param); +void ReadNetParamsFromBinaryFileOrDie(const string& param_file, + NetParameter* param); + +} // namespace caffe + +#endif // CAFFE_UTIL_UPGRADE_PROTO_H_ diff --git a/include/caffe/vision_layers.hpp b/include/caffe/vision_layers.hpp index 90e2caa664f..de99bc3033f 100644 --- a/include/caffe/vision_layers.hpp +++ b/include/caffe/vision_layers.hpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #ifndef CAFFE_VISION_LAYERS_HPP_ #define CAFFE_VISION_LAYERS_HPP_ @@ -7,170 +7,157 @@ #include #include -#include "leveldb/db.h" -#include "pthread.h" -#include "boost/scoped_ptr.hpp" -#include "hdf5.h" - +#include "caffe/blob.hpp" +#include "caffe/common.hpp" #include "caffe/layer.hpp" +#include "caffe/neuron_layers.hpp" +#include "caffe/loss_layers.hpp" +#include "caffe/data_layers.hpp" #include "caffe/proto/caffe.pb.h" namespace caffe { - -// The neuron layer is a specific type of layers that just works on single -// celements. +/* +ConcatLayer + Takes at least two blobs and concatenates them along either num or + channel dim, outputting the result. +*/ template -class NeuronLayer : public Layer { +class ConcatLayer : public Layer { public: - explicit NeuronLayer(const LayerParameter& param) - : Layer(param) {} + explicit ConcatLayer(const LayerParameter& param) + : Layer(param) {} virtual void SetUp(const vector*>& bottom, vector*>* top); -}; - - -template -class ReLULayer : public NeuronLayer { - public: - explicit ReLULayer(const LayerParameter& param) - : NeuronLayer(param) {} protected: - virtual void Forward_cpu(const vector*>& bottom, + virtual Dtype Forward_cpu(const vector*>& bottom, vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, + virtual Dtype Forward_gpu(const vector*>& bottom, vector*>* top); - - virtual Dtype Backward_cpu(const vector*>& top, + virtual void Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, + virtual void Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom); -}; -template -class TanHLayer : public NeuronLayer { - public: - explicit TanHLayer(const LayerParameter& param) - : NeuronLayer(param) {} - - protected: - virtual void Forward_cpu(const vector*>& bottom, - vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, - vector*>* top); - - virtual Dtype Backward_cpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); + Blob col_bob_; + int count_; + int num_; + int channels_; + int height_; + int width_; + int concat_dim_; }; +/* ConvolutionLayer +*/ template -class SigmoidLayer : public NeuronLayer { +class ConvolutionLayer : public Layer { public: - explicit SigmoidLayer(const LayerParameter& param) - : NeuronLayer(param) {} - - protected: - virtual void Forward_cpu(const vector*>& bottom, - vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, + explicit ConvolutionLayer(const LayerParameter& param) + : Layer(param) {} + virtual void SetUp(const vector*>& bottom, vector*>* top); - virtual Dtype Backward_cpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); -}; - - -template -class BNLLLayer : public NeuronLayer { - public: - explicit BNLLLayer(const LayerParameter& param) - : NeuronLayer(param) {} - protected: - virtual void Forward_cpu(const vector*>& bottom, + virtual Dtype Forward_cpu(const vector*>& bottom, vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, + virtual Dtype Forward_gpu(const vector*>& bottom, vector*>* top); - - virtual Dtype Backward_cpu(const vector*>& top, + virtual void Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, + virtual void Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom); -}; + int kernel_size_; + int stride_; + int num_; + int channels_; + int pad_; + int height_; + int width_; + int num_output_; + int group_; + Blob col_buffer_; + shared_ptr bias_multiplier_; + bool bias_term_; + int M_; + int K_; + int N_; +}; +/* EltwiseProductLayer +*/ template -class DropoutLayer : public NeuronLayer { +class EltwiseProductLayer : public Layer { public: - explicit DropoutLayer(const LayerParameter& param) - : NeuronLayer(param) {} + explicit EltwiseProductLayer(const LayerParameter& param) + : Layer(param) {} virtual void SetUp(const vector*>& bottom, vector*>* top); protected: - virtual void Forward_cpu(const vector*>& bottom, + virtual Dtype Forward_cpu(const vector*>& bottom, vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, + virtual Dtype Forward_gpu(const vector*>& bottom, vector*>* top); - - virtual Dtype Backward_cpu(const vector*>& top, + virtual void Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, + virtual void Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom); - shared_ptr rand_vec_; - float threshold_; - float scale_; - unsigned int uint_thres_; }; - template -class SplitLayer : public Layer { +class FlattenLayer : public Layer { public: - explicit SplitLayer(const LayerParameter& param) + explicit FlattenLayer(const LayerParameter& param) : Layer(param) {} virtual void SetUp(const vector*>& bottom, vector*>* top); protected: - virtual void Forward_cpu(const vector*>& bottom, + virtual Dtype Forward_cpu(const vector*>& bottom, vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, + virtual Dtype Forward_gpu(const vector*>& bottom, vector*>* top); - virtual Dtype Backward_cpu(const vector*>& top, + virtual void Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, + virtual void Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom); + int count_; }; - +/* Im2colLayer +*/ template -class FlattenLayer : public Layer { +class Im2colLayer : public Layer { public: - explicit FlattenLayer(const LayerParameter& param) + explicit Im2colLayer(const LayerParameter& param) : Layer(param) {} virtual void SetUp(const vector*>& bottom, vector*>* top); protected: - virtual void Forward_cpu(const vector*>& bottom, + virtual Dtype Forward_cpu(const vector*>& bottom, vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, + virtual Dtype Forward_gpu(const vector*>& bottom, vector*>* top); - virtual Dtype Backward_cpu(const vector*>& top, + virtual void Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, + virtual void Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom); - int count_; -}; + int kernel_size_; + int stride_; + int channels_; + int height_; + int width_; + int pad_; +}; +/* InnerProductLayer +*/ template class InnerProductLayer : public Layer { public: @@ -180,69 +167,60 @@ class InnerProductLayer : public Layer { vector*>* top); protected: - virtual void Forward_cpu(const vector*>& bottom, + virtual Dtype Forward_cpu(const vector*>& bottom, vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, + virtual Dtype Forward_gpu(const vector*>& bottom, vector*>* top); - - virtual Dtype Backward_cpu(const vector*>& top, + virtual void Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, + virtual void Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom); + int M_; int K_; int N_; - bool biasterm_; + bool bias_term_; shared_ptr bias_multiplier_; }; +// Forward declare PoolingLayer and SplitLayer for use in LRNLayer. +template class PoolingLayer; +template class SplitLayer; +/* LRNLayer + Local Response Normalization +*/ template -class PaddingLayer : public Layer { +class LRNLayer : public Layer { public: - explicit PaddingLayer(const LayerParameter& param) + explicit LRNLayer(const LayerParameter& param) : Layer(param) {} virtual void SetUp(const vector*>& bottom, vector*>* top); protected: - virtual void Forward_cpu(const vector*>& bottom, + virtual Dtype Forward_cpu(const vector*>& bottom, vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, + virtual Dtype Forward_gpu(const vector*>& bottom, vector*>* top); - virtual Dtype Backward_cpu(const vector*>& top, + virtual void Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, + virtual void Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom); - unsigned int PAD_; - int NUM_; - int CHANNEL_; - int HEIGHT_IN_; - int WIDTH_IN_; - int HEIGHT_OUT_; - int WIDTH_OUT_; -}; - -template -class LRNLayer : public Layer { - public: - explicit LRNLayer(const LayerParameter& param) - : Layer(param) {} - virtual void SetUp(const vector*>& bottom, + virtual Dtype CrossChannelForward_cpu(const vector*>& bottom, vector*>* top); - - protected: - virtual void Forward_cpu(const vector*>& bottom, + virtual Dtype CrossChannelForward_gpu(const vector*>& bottom, vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, + virtual Dtype WithinChannelForward(const vector*>& bottom, vector*>* top); - virtual Dtype Backward_cpu(const vector*>& top, + virtual void CrossChannelBackward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, + virtual void CrossChannelBackward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom); - // scale_ stores the intermediate summing results - Blob scale_; + virtual void WithinChannelBackward(const vector*>& top, + const bool propagate_down, vector*>* bottom); + int size_; int pre_pad_; Dtype alpha_; @@ -251,232 +229,97 @@ class LRNLayer : public Layer { int channels_; int height_; int width_; -}; - - -template -class Im2colLayer : public Layer { - public: - explicit Im2colLayer(const LayerParameter& param) - : Layer(param) {} - virtual void SetUp(const vector*>& bottom, - vector*>* top); - - protected: - virtual void Forward_cpu(const vector*>& bottom, - vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, - vector*>* top); - virtual Dtype Backward_cpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); - int KSIZE_; - int STRIDE_; - int CHANNELS_; - int HEIGHT_; - int WIDTH_; - int PAD_; -}; - -template -class PoolingLayer : public Layer { - public: - explicit PoolingLayer(const LayerParameter& param) - : Layer(param) {} - virtual void SetUp(const vector*>& bottom, - vector*>* top); - - protected: - virtual void Forward_cpu(const vector*>& bottom, - vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, - vector*>* top); - virtual Dtype Backward_cpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); - int KSIZE_; - int STRIDE_; - int CHANNELS_; - int HEIGHT_; - int WIDTH_; - int POOLED_HEIGHT_; - int POOLED_WIDTH_; - Blob rand_idx_; -}; - - -template -class ConvolutionLayer : public Layer { - public: - explicit ConvolutionLayer(const LayerParameter& param) - : Layer(param) {} - virtual void SetUp(const vector*>& bottom, - vector*>* top); - - protected: - virtual void Forward_cpu(const vector*>& bottom, - vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, - vector*>* top); - virtual Dtype Backward_cpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); - Blob col_bob_; - - int KSIZE_; - int STRIDE_; - int NUM_; - int CHANNELS_; - int PAD_; - int HEIGHT_; - int WIDTH_; - int NUM_OUTPUT_; - int GROUP_; - Blob col_buffer_; - shared_ptr bias_multiplier_; - bool biasterm_; - int M_; - int K_; - int N_; -}; - -template -class ConcatLayer : public Layer { - public: - explicit ConcatLayer(const LayerParameter& param) - : Layer(param) {} - virtual void SetUp(const vector*>& bottom, - vector*>* top); - protected: - virtual void Forward_cpu(const vector*>& bottom, - vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, - vector*>* top); - virtual Dtype Backward_cpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); - Blob col_bob_; + // Fields used for normalization ACROSS_CHANNELS + // scale_ stores the intermediate summing results + Blob scale_; - int COUNT_; - int NUM_; - int CHANNELS_; - int HEIGHT_; - int WIDTH_; - int concat_dim_; + // Fields used for normalization WITHIN_CHANNEL + shared_ptr > split_layer_; + vector*> split_top_vec_; + shared_ptr > square_layer_; + Blob square_input_; + Blob square_output_; + vector*> square_bottom_vec_; + vector*> square_top_vec_; + shared_ptr > pool_layer_; + Blob pool_output_; + vector*> pool_top_vec_; + shared_ptr > power_layer_; + Blob power_output_; + vector*> power_top_vec_; + shared_ptr > product_layer_; + Blob product_data_input_; + vector*> product_bottom_vec_; }; -// This function is used to create a pthread that prefetches the data. -template -void* DataLayerPrefetch(void* layer_pointer); - +/* PoolingLayer +*/ template -class DataLayer : public Layer { - // The function used to perform prefetching. - friend void* DataLayerPrefetch(void* layer_pointer); - +class MemoryDataLayer : public Layer { public: - explicit DataLayer(const LayerParameter& param) + explicit MemoryDataLayer(const LayerParameter& param) : Layer(param) {} - virtual ~DataLayer(); virtual void SetUp(const vector*>& bottom, vector*>* top); + // Reset should accept const pointers, but can't, because the memory + // will be given to Blob, which is mutable + void Reset(Dtype* data, Dtype* label, int n); + int datum_channels() { return datum_channels_; } + int datum_height() { return datum_height_; } + int datum_width() { return datum_width_; } + int batch_size() { return batch_size_; } protected: - virtual void Forward_cpu(const vector*>& bottom, - vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, + virtual Dtype Forward_cpu(const vector*>& bottom, vector*>* top); - virtual Dtype Backward_cpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); + virtual void Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom) { return; } + virtual void Backward_gpu(const vector*>& top, + const bool propagate_down, vector*>* bottom) { return; } - shared_ptr db_; - shared_ptr iter_; + Dtype* data_; + Dtype* labels_; int datum_channels_; int datum_height_; int datum_width_; int datum_size_; - pthread_t thread_; - shared_ptr > prefetch_data_; - shared_ptr > prefetch_label_; - Blob data_mean_; + int batch_size_; + int n_; + int pos_; }; -// This function is used to create a pthread that prefetches the data. template -void* ImagesLayerPrefetch(void* layer_pointer); - -template -class ImagesLayer : public Layer { - // The function used to perform prefetching. - friend void* ImagesLayerPrefetch(void* layer_pointer); - - public: - explicit ImagesLayer(const LayerParameter& param) - : Layer(param) {} - virtual ~ImagesLayer(); - virtual void SetUp(const vector*>& bottom, - vector*>* top); - - protected: - virtual void Forward_cpu(const vector*>& bottom, - vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, - vector*>* top); - virtual Dtype Backward_cpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); - - vector > lines_; - int lines_id_; - int datum_channels_; - int datum_height_; - int datum_width_; - int datum_size_; - pthread_t thread_; - shared_ptr > prefetch_data_; - shared_ptr > prefetch_label_; - Blob data_mean_; -}; - - -template -class HDF5DataLayer : public Layer { +class PoolingLayer : public Layer { public: - explicit HDF5DataLayer(const LayerParameter& param) + explicit PoolingLayer(const LayerParameter& param) : Layer(param) {} - virtual ~HDF5DataLayer(); virtual void SetUp(const vector*>& bottom, vector*>* top); protected: - virtual void Forward_cpu(const vector*>& bottom, + virtual Dtype Forward_cpu(const vector*>& bottom, vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, + virtual Dtype Forward_gpu(const vector*>& bottom, vector*>* top); - virtual Dtype Backward_cpu(const vector*>& top, + virtual void Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, + virtual void Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom); - virtual void load_hdf5_file_data(const char* filename); - - std::vector hdf_filenames_; - unsigned int num_files_; - unsigned int current_file_; - hsize_t current_row_; - Blob data_blob_; - Blob label_blob_; + int kernel_size_; + int stride_; + int pad_; + int channels_; + int height_; + int width_; + int pooled_height_; + int pooled_width_; + Blob rand_idx_; }; - +/* SoftmaxLayer +*/ template class SoftmaxLayer : public Layer { public: @@ -486,13 +329,13 @@ class SoftmaxLayer : public Layer { vector*>* top); protected: - virtual void Forward_cpu(const vector*>& bottom, + virtual Dtype Forward_cpu(const vector*>& bottom, vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, + virtual Dtype Forward_gpu(const vector*>& bottom, vector*>* top); - virtual Dtype Backward_cpu(const vector*>& top, + virtual void Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, + virtual void Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom); // sum_multiplier is just used to carry out sum using blas @@ -501,57 +344,14 @@ class SoftmaxLayer : public Layer { Blob scale_; }; +/* SoftmaxWithLossLayer + Implements softmax and computes the loss. -template -class MultinomialLogisticLossLayer : public Layer { - public: - explicit MultinomialLogisticLossLayer(const LayerParameter& param) - : Layer(param) {} - virtual void SetUp(const vector*>& bottom, - vector*>* top); - - protected: - // The loss layer will do nothing during forward - all computation are - // carried out in the backward pass. - virtual void Forward_cpu(const vector*>& bottom, - vector*>* top) { return; } - virtual void Forward_gpu(const vector*>& bottom, - vector*>* top) { return; } - virtual Dtype Backward_cpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); - // virtual Dtype Backward_gpu(const vector*>& top, - // const bool propagate_down, vector*>* bottom); -}; + It is preferred over separate softmax + multinomiallogisticloss + layers due to more numerically stable gradients. -template -class InfogainLossLayer : public Layer { - public: - explicit InfogainLossLayer(const LayerParameter& param) - : Layer(param), infogain_() {} - virtual void SetUp(const vector*>& bottom, - vector*>* top); - - protected: - // The loss layer will do nothing during forward - all computation are - // carried out in the backward pass. - virtual void Forward_cpu(const vector*>& bottom, - vector*>* top) { return; } - virtual void Forward_gpu(const vector*>& bottom, - vector*>* top) { return; } - virtual Dtype Backward_cpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); - // virtual Dtype Backward_gpu(const vector*>& top, - // const bool propagate_down, vector*>* bottom); - - Blob infogain_; -}; - - -// SoftmaxWithLossLayer is a layer that implements softmax and then computes -// the loss - it is preferred over softmax + multinomiallogisticloss in the -// sense that during training, this will produce more numerically stable -// gradients. During testing this layer could be replaced by a softmax layer -// to generate probability outputs. + In test, this layer could be replaced by simple softmax layer. +*/ template class SoftmaxWithLossLayer : public Layer { public: @@ -561,13 +361,13 @@ class SoftmaxWithLossLayer : public Layer { vector*>* top); protected: - virtual void Forward_cpu(const vector*>& bottom, + virtual Dtype Forward_cpu(const vector*>& bottom, vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, + virtual Dtype Forward_gpu(const vector*>& bottom, vector*>* top); - virtual Dtype Backward_cpu(const vector*>& top, + virtual void Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, + virtual void Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom); shared_ptr > softmax_layer_; @@ -578,86 +378,29 @@ class SoftmaxWithLossLayer : public Layer { vector*> softmax_top_vec_; }; - -template -class EuclideanLossLayer : public Layer { - public: - explicit EuclideanLossLayer(const LayerParameter& param) - : Layer(param), difference_() {} - virtual void SetUp(const vector*>& bottom, - vector*>* top); - - protected: - // The loss layer will do nothing during forward - all computation are - // carried out in the backward pass. - virtual void Forward_cpu(const vector*>& bottom, - vector*>* top) { return; } - virtual void Forward_gpu(const vector*>& bottom, - vector*>* top) { return; } - virtual Dtype Backward_cpu(const vector*>& top, - const bool propagate_down, vector*>* bottom); - // virtual Dtype Backward_gpu(const vector*>& top, - // const bool propagate_down, vector*>* bottom); - Blob difference_; -}; - - -template -class AccuracyLayer : public Layer { - public: - explicit AccuracyLayer(const LayerParameter& param) - : Layer(param) {} - virtual void SetUp(const vector*>& bottom, - vector*>* top); - - protected: - virtual void Forward_cpu(const vector*>& bottom, - vector*>* top); - // The accuracy layer should not be used to compute backward operations. - virtual Dtype Backward_cpu(const vector*>& top, - const bool propagate_down, vector*>* bottom) { - NOT_IMPLEMENTED; - return Dtype(0.); - } -}; - -// This function is used to create a pthread that prefetches the window data. +/* SplitLayer +*/ template -void* WindowDataLayerPrefetch(void* layer_pointer); - -template -class WindowDataLayer : public Layer { - // The function used to perform prefetching. - friend void* WindowDataLayerPrefetch(void* layer_pointer); - +class SplitLayer : public Layer { public: - explicit WindowDataLayer(const LayerParameter& param) + explicit SplitLayer(const LayerParameter& param) : Layer(param) {} - virtual ~WindowDataLayer(); virtual void SetUp(const vector*>& bottom, vector*>* top); protected: - virtual void Forward_cpu(const vector*>& bottom, + virtual Dtype Forward_cpu(const vector*>& bottom, vector*>* top); - virtual void Forward_gpu(const vector*>& bottom, + virtual Dtype Forward_gpu(const vector*>& bottom, vector*>* top); - virtual Dtype Backward_cpu(const vector*>& top, + virtual void Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom); - virtual Dtype Backward_gpu(const vector*>& top, + virtual void Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom); - pthread_t thread_; - shared_ptr > prefetch_data_; - shared_ptr > prefetch_label_; - Blob data_mean_; - vector > > image_database_; - enum WindowField { IMAGE_INDEX, LABEL, OVERLAP, X1, Y1, X2, Y2, NUM }; - vector > fg_windows_; - vector > bg_windows_; + int count_; }; - } // namespace caffe #endif // CAFFE_VISION_LAYERS_HPP_ diff --git a/matlab/caffe/matcaffe.cpp b/matlab/caffe/matcaffe.cpp index 1913abd424a..21f51e83994 100644 --- a/matlab/caffe/matcaffe.cpp +++ b/matlab/caffe/matcaffe.cpp @@ -1,4 +1,4 @@ -// Copyright Ross Girshick and Yangqing Jia 2013 +// Copyright 2014 BVLC and contributors. // // matcaffe.cpp provides a wrapper of the caffe::Net class as well as some // caffe::Caffe functions so that one could easily call it from matlab. @@ -43,6 +43,7 @@ static int init_key = -2; // // The actual forward function. It takes in a cell array of 4-D arrays as // input and outputs a cell array. + static mxArray* do_forward(const mxArray* const bottom) { vector*>& input_blobs = net_->input_blobs(); CHECK_EQ(static_cast(mxGetDimensions(bottom)[0]), @@ -67,8 +68,11 @@ static mxArray* do_forward(const mxArray* const bottom) { const vector*>& output_blobs = net_->ForwardPrefilled(); mxArray* mx_out = mxCreateCellMatrix(output_blobs.size(), 1); for (unsigned int i = 0; i < output_blobs.size(); ++i) { - mxArray* mx_blob = mxCreateNumericMatrix(output_blobs[i]->count(), - 1, mxSINGLE_CLASS, mxREAL); + // internally data is stored as (width, height, channels, num) + // where width is the fastest dimension + mwSize dims[4] = {output_blobs[i]->width(), output_blobs[i]->height(), + output_blobs[i]->channels(), output_blobs[i]->num()}; + mxArray* mx_blob = mxCreateNumericArray(4, dims, mxSINGLE_CLASS, mxREAL); mxSetCell(mx_out, i, mx_blob); float* data_ptr = reinterpret_cast(mxGetPr(mx_blob)); switch (Caffe::mode()) { @@ -88,11 +92,63 @@ static mxArray* do_forward(const mxArray* const bottom) { return mx_out; } +static mxArray* do_backward(const mxArray* const top_diff) { + vector*>& output_blobs = net_->output_blobs(); + vector*>& input_blobs = net_->input_blobs(); + CHECK_EQ(static_cast(mxGetDimensions(top_diff)[0]), + output_blobs.size()); + // First, copy the output diff + for (unsigned int i = 0; i < output_blobs.size(); ++i) { + const mxArray* const elem = mxGetCell(top_diff, i); + const float* const data_ptr = + reinterpret_cast(mxGetPr(elem)); + switch (Caffe::mode()) { + case Caffe::CPU: + memcpy(output_blobs[i]->mutable_cpu_diff(), data_ptr, + sizeof(float) * output_blobs[i]->count()); + break; + case Caffe::GPU: + cudaMemcpy(output_blobs[i]->mutable_gpu_diff(), data_ptr, + sizeof(float) * output_blobs[i]->count(), cudaMemcpyHostToDevice); + break; + default: + LOG(FATAL) << "Unknown Caffe mode."; + } // switch (Caffe::mode()) + } + // LOG(INFO) << "Start"; + net_->Backward(); + // LOG(INFO) << "End"; + mxArray* mx_out = mxCreateCellMatrix(input_blobs.size(), 1); + for (unsigned int i = 0; i < input_blobs.size(); ++i) { + // internally data is stored as (width, height, channels, num) + // where width is the fastest dimension + mwSize dims[4] = {input_blobs[i]->width(), input_blobs[i]->height(), + input_blobs[i]->channels(), input_blobs[i]->num()}; + mxArray* mx_blob = mxCreateNumericArray(4, dims, mxSINGLE_CLASS, mxREAL); + mxSetCell(mx_out, i, mx_blob); + float* data_ptr = reinterpret_cast(mxGetPr(mx_blob)); + switch (Caffe::mode()) { + case Caffe::CPU: + memcpy(data_ptr, input_blobs[i]->cpu_diff(), + sizeof(float) * input_blobs[i]->count()); + break; + case Caffe::GPU: + cudaMemcpy(data_ptr, input_blobs[i]->gpu_diff(), + sizeof(float) * input_blobs[i]->count(), cudaMemcpyDeviceToHost); + break; + default: + LOG(FATAL) << "Unknown Caffe mode."; + } // switch (Caffe::mode()) + } + + return mx_out; +} + static mxArray* do_get_weights() { const vector > >& layers = net_->layers(); const vector& layer_names = net_->layer_names(); - // Step 1: count the number of layers + // Step 1: count the number of layers with weights int num_layers = 0; { string prev_layer_name = ""; @@ -142,16 +198,12 @@ static mxArray* do_get_weights() { // where width is the fastest dimension mwSize dims[4] = {layer_blobs[j]->width(), layer_blobs[j]->height(), layer_blobs[j]->channels(), layer_blobs[j]->num()}; - mxArray* mx_weights = mxCreateNumericArray(4, dims, mxSINGLE_CLASS, - mxREAL); + + mxArray* mx_weights = + mxCreateNumericArray(4, dims, mxSINGLE_CLASS, mxREAL); mxSetCell(mx_layer_cells, j, mx_weights); float* weights_ptr = reinterpret_cast(mxGetPr(mx_weights)); - // mexPrintf("layer: %s (%d) blob: %d %d: (%d, %d, %d) %d\n", - // layer_names[i].c_str(), i, j, layer_blobs[j]->num(), - // layer_blobs[j]->height(), layer_blobs[j]->width(), - // layer_blobs[j]->channels(), layer_blobs[j]->count()); - switch (Caffe::mode()) { case Caffe::CPU: memcpy(weights_ptr, layer_blobs[j]->cpu_data(), @@ -220,13 +272,21 @@ static void init(MEX_ARGS) { mxFree(param_file); mxFree(model_file); - // NOLINT_NEXT_LINE(runtime/threadsafe_fn) - init_key = rand(); + init_key = random(); // NOLINT(caffe/random_fn) + if (nlhs == 1) { plhs[0] = mxCreateDoubleScalar(init_key); } } +static void reset(MEX_ARGS) { + if (net_) { + net_.reset(); + init_key = -2; + LOG(INFO) << "Network reset, call init before use it again"; + } +} + static void forward(MEX_ARGS) { if (nrhs != 1) { LOG(ERROR) << "Only given " << nrhs << " arguments"; @@ -236,6 +296,15 @@ static void forward(MEX_ARGS) { plhs[0] = do_forward(prhs[0]); } +static void backward(MEX_ARGS) { + if (nrhs != 1) { + LOG(ERROR) << "Only given " << nrhs << " arguments"; + mexErrMsgTxt("Wrong number of arguments"); + } + + plhs[0] = do_backward(prhs[0]); +} + static void is_initialized(MEX_ARGS) { if (!net_) { plhs[0] = mxCreateDoubleScalar(0); @@ -255,6 +324,7 @@ struct handler_registry { static handler_registry handlers[] = { // Public API functions { "forward", forward }, + { "backward", backward }, { "init", init }, { "is_initialized", is_initialized }, { "set_mode_cpu", set_mode_cpu }, @@ -264,6 +334,7 @@ static handler_registry handlers[] = { { "set_device", set_device }, { "get_weights", get_weights }, { "get_init_key", get_init_key }, + { "reset", reset }, // The end. { "END", NULL }, }; diff --git a/matlab/caffe/matcaffe_batch.m b/matlab/caffe/matcaffe_batch.m new file mode 100644 index 00000000000..3cb7f1445fb --- /dev/null +++ b/matlab/caffe/matcaffe_batch.m @@ -0,0 +1,76 @@ +function [scores,list_im] = matcaffe_batch(list_im, use_gpu) +% scores = matcaffe_batch(list_im, use_gpu) +% +% Demo of the matlab wrapper using the ILSVRC network. +% +% input +% list_im list of images files +% use_gpu 1 to use the GPU, 0 to use the CPU +% +% output +% scores 1000 x num_images ILSVRC output vector +% +% You may need to do the following before you start matlab: +% $ export LD_LIBRARY_PATH=/opt/intel/mkl/lib/intel64:/usr/local/cuda/lib64 +% $ export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 +% Or the equivalent based on where things are installed on your system +% +% Usage: +% scores = matcaffe_batch({'peppers.png','onion.png'}); +% scores = matcaffe_batch('list_images.txt', 1); +if nargin < 1 + % For test purposes + list_im = {'peppers.png','onions.png'}; +end +if ischar(list_im) + %Assume it is a file contaning the list of images + filename = list_im; + list_im = read_cell(filename); +end +% Adjust the batch size to match with imagenet_deploy.prototxt +batch_size = 10; +% Adjust dim to the output size of imagenet_deploy.prototxt +dim = 1000; +disp(list_im) +if mod(length(list_im),batch_size) + warning(['Assuming batches of ' num2str(batch_size) ' images rest will be filled with zeros']) +end + +% init caffe network (spews logging info) +if exist('use_gpu', 'var') + matcaffe_init(use_gpu); +else + matcaffe_init(); +end + +d = load('ilsvrc_2012_mean'); +IMAGE_MEAN = d.image_mean; + +% prepare input + +num_images = length(list_im); +scores = zeros(dim,num_images,'single'); +num_batches = ceil(length(list_im)/batch_size) +initic=tic; +for bb = 1 : num_batches + batchtic = tic; + range = 1+batch_size*(bb-1):min(num_images,batch_size * bb); + tic + input_data = prepare_batch(list_im(range),IMAGE_MEAN,batch_size); + toc, tic + fprintf('Batch %d out of %d %.2f%% Complete ETA %.2f seconds\n',... + bb,num_batches,bb/num_batches*100,toc(initic)/bb*(num_batches-bb)); + output_data = caffe('forward', {input_data}); + toc + output_data = squeeze(output_data{1}); + scores(:,range) = output_data(:,mod(range-1,batch_size)+1); + toc(batchtic) +end +toc(initic); + +if exist('filename', 'var') + save([filename '.probs.mat'],'list_im','scores','-v7.3'); +end + + + diff --git a/matlab/caffe/matcaffe_demo.m b/matlab/caffe/matcaffe_demo.m index ff27f970a31..a931f910cbf 100644 --- a/matlab/caffe/matcaffe_demo.m +++ b/matlab/caffe/matcaffe_demo.m @@ -1,4 +1,4 @@ -function [scores, layers] = matcaffe_demo(im, use_gpu) +function [scores, maxlabel] = matcaffe_demo(im, use_gpu) % scores = matcaffe_demo(im, use_gpu) % % Demo of the matlab wrapper using the ILSVRC network. @@ -19,44 +19,63 @@ % im = imread('../../examples/images/cat.jpg'); % scores = matcaffe_demo(im, 1); % [score, class] = max(scores); +% Five things to be aware of: +% caffe uses row-major order +% matlab uses column-major order +% caffe uses BGR color channel order +% matlab uses RGB color channel order +% images need to have the data mean subtracted -% init caffe network (spews logging info) -if caffe('is_initialized') == 0 - model_def_file = '../../examples/imagenet/imagenet_deploy.prototxt'; - model_file = '../../examples/imagenet/caffe_reference_imagenet_model'; - if exist(model_file, 'file') == 0 - % NOTE: you'll have to get the pre-trained ILSVRC network - error('You need a network model file'); - end - caffe('init', model_def_file, model_file); -end +% Data coming in from matlab needs to be in the order +% [width, height, channels, images] +% where width is the fastest dimension. +% Here is the rough matlab for putting image data into the correct +% format: +% % convert from uint8 to single +% im = single(im); +% % reshape to a fixed size (e.g., 227x227) +% im = imresize(im, [IMAGE_DIM IMAGE_DIM], 'bilinear'); +% % permute from RGB to BGR and subtract the data mean (already in BGR) +% im = im(:,:,[3 2 1]) - data_mean; +% % flip width and height to make width the fastest dimension +% im = permute(im, [2 1 3]); + +% If you have multiple images, cat them with cat(4, ...) -% set to use GPU or CPU -if exist('use_gpu', 'var') && use_gpu - caffe('set_mode_gpu'); +% The actual forward function. It takes in a cell array of 4-D arrays as +% input and outputs a cell array. + + +% init caffe network (spews logging info) +if exist('use_gpu', 'var') + matcaffe_init(use_gpu); else - caffe('set_mode_cpu'); + matcaffe_init(); end -% put into test mode -caffe('set_phase_test'); +if nargin < 1 + % For demo purposes we will use the peppers image + im = imread('peppers.png'); +end % prepare oversampled input +% input_data is Height x Width x Channel x Num tic; input_data = {prepare_image(im)}; toc; % do forward pass to get scores +% scores are now Width x Height x Channels x Num tic; scores = caffe('forward', input_data); toc; -% average output scores -scores = reshape(scores{1}, [1000 10]); -scores = mean(scores, 2); +scores = scores{1}; +size(scores) +scores = squeeze(scores); +scores = mean(scores,2); -% you can also get network weights by calling -layers = caffe('get_weights'); +[~,maxlabel] = max(scores); % ------------------------------------------------------------------------ function images = prepare_image(im) diff --git a/matlab/caffe/matcaffe_init.m b/matlab/caffe/matcaffe_init.m new file mode 100644 index 00000000000..4e4ef8bff4a --- /dev/null +++ b/matlab/caffe/matcaffe_init.m @@ -0,0 +1,44 @@ +function matcaffe_init(use_gpu, model_def_file, model_file) +% matcaffe_init(model_def_file, model_file, use_gpu) +% Initilize matcaffe wrapper + +if nargin < 1 + % By default use CPU + use_gpu = 0; +end +if nargin < 2 || isempty(model_def_file) + % By default use imagenet_deploy + model_def_file = '../../examples/imagenet/imagenet_deploy.prototxt'; +end +if nargin < 3 || isempty(model_file) + % By default use caffe reference model + model_file = '../../examples/imagenet/caffe_reference_imagenet_model'; +end + + +if caffe('is_initialized') == 0 + if exist(model_file, 'file') == 0 + % NOTE: you'll have to get the pre-trained ILSVRC network + error('You need a network model file'); + end + if ~exist(model_def_file,'file') + % NOTE: you'll have to get network definition + error('You need the network prototxt definition'); + end + caffe('init', model_def_file, model_file) +end +fprintf('Done with init\n'); + +% set to use GPU or CPU +if use_gpu + fprintf('Using GPU Mode\n'); + caffe('set_mode_gpu'); +else + fprintf('Using CPU Mode\n'); + caffe('set_mode_cpu'); +end +fprintf('Done with set_mode\n'); + +% put into test mode +caffe('set_phase_test'); +fprintf('Done with set_phase_test\n'); diff --git a/matlab/caffe/prepare_batch.m b/matlab/caffe/prepare_batch.m new file mode 100644 index 00000000000..345c8eb5f0b --- /dev/null +++ b/matlab/caffe/prepare_batch.m @@ -0,0 +1,41 @@ +% ------------------------------------------------------------------------ +function images = prepare_batch(image_files,IMAGE_MEAN,batch_size) +% ------------------------------------------------------------------------ +if nargin < 2 + d = load('ilsvrc_2012_mean'); + IMAGE_MEAN = d.image_mean; +end +num_images = length(image_files); +if nargin < 3 + batch_size = num_images; +end + +IMAGE_DIM = 256; +CROPPED_DIM = 227; +indices = [0 IMAGE_DIM-CROPPED_DIM] + 1; +center = floor(indices(2) / 2)+1; + +num_images = length(image_files); +images = zeros(CROPPED_DIM,CROPPED_DIM,3,batch_size,'single'); + +parfor i=1:num_images + % read file + fprintf('%c Preparing %s\n',13,image_files{i}); + try + im = imread(image_files{i}); + % resize to fixed input size + im = single(im); + im = imresize(im, [IMAGE_DIM IMAGE_DIM], 'bilinear'); + % Transform GRAY to RGB + if size(im,3) == 1 + im = cat(3,im,im,im); + end + % permute from RGB to BGR (IMAGE_MEAN is already BGR) + im = im(:,:,[3 2 1]) - IMAGE_MEAN; + % Crop the center of the image + images(:,:,:,i) = permute(im(center:center+CROPPED_DIM-1,... + center:center+CROPPED_DIM-1,:),[2 1 3]); + catch + warning('Problems with file',image_files{i}); + end +end \ No newline at end of file diff --git a/matlab/caffe/print_cell.m b/matlab/caffe/print_cell.m new file mode 100644 index 00000000000..864340d4be9 --- /dev/null +++ b/matlab/caffe/print_cell.m @@ -0,0 +1,42 @@ +function res=print_cell(input,file,linesep,cellsep) +assert(iscell(input),'The input should be a cell') +if nargin < 4 + cellsep = '\t'; +end +if nargin < 3 + linesep = '\n'; +end +if exist('file','var') && ~isempty(file) + %% + fid = fopen(file,'w'); + for l=1:length(input) + if iscell(input{l}) + for i=1:length(input{l}) + fprintf(fid,['%s' cellsep],input{l}{i}); + end + fprintf(fid,linesep); + else + if size(input,2) > 1 + for i=1:size(input,2) + fprintf(fid,'%s ',input{l,i}); + end + fprintf(fid,linesep); + else + fprintf(fid,['%s' linesep],input{l}); + end + end + end + fclose(fid); +else + res = ''; + for l=1:length(input) + if iscell(input{l}) + for i=1:length(input{l}) + res = [res sprintf([cellsep{1} '%s' cellsep{2}],input{l}{i})]; + end + res = [res sprintf(linesep)]; + else + res = [res sprintf(['%s' linesep],input{l}(:))]; + end + end +end \ No newline at end of file diff --git a/matlab/caffe/read_cell.m b/matlab/caffe/read_cell.m new file mode 100644 index 00000000000..19831167106 --- /dev/null +++ b/matlab/caffe/read_cell.m @@ -0,0 +1,21 @@ +function res=read_cell(filename,linesep,cellsep) +if nargin < 2, linesep='\n'; end +if nargin < 3, cellsep = '\t'; end +if exist(filename,'file') + fid = fopen(filename); +else + % Assume that filename is either a file ide or a string + fid = filename; +end + +fileLines = textscan(fid,'%s','delimiter',linesep,'BufSize',100000); + +fileLines = fileLines{1}; + +if regexp(fileLines{1},cellsep,'once') + fileLines = regexprep(fileLines,['^' cellsep '|' cellsep '$'],''); + res = regexp(fileLines,cellsep,'split'); + res = cell2matcell(res); +else + res = fileLines; +end diff --git a/python/caffe/__init__.py b/python/caffe/__init__.py index b906d3e6ae9..430bfce2ba5 100644 --- a/python/caffe/__init__.py +++ b/python/caffe/__init__.py @@ -1 +1,4 @@ -from .pycaffe import Net +from .pycaffe import Net, SGDSolver +from .classifier import Classifier +from .detector import Detector +import io diff --git a/python/caffe/_caffe.cpp b/python/caffe/_caffe.cpp index 137cc283571..9f190096ace 100644 --- a/python/caffe/_caffe.cpp +++ b/python/caffe/_caffe.cpp @@ -1,7 +1,7 @@ -// Copyright Yangqing Jia 2013 +// Copyright 2014 BVLC and contributors. // pycaffe provides a wrapper of the caffe::Net class as well as some // caffe::Caffe functions so that one could easily call it from Python. -// Note that for python, we will simply use float as the data type. +// Note that for Python, we will simply use float as the data type. #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION @@ -32,9 +32,21 @@ using boost::python::object; using boost::python::handle; using boost::python::vector_indexing_suite; +// for convenience, check that input files can be opened, and raise an +// exception that boost will send to Python if not (caffe could still crash +// later if the input files are disturbed before they are actually used, but +// this saves frustration in most cases) +static void CheckFile(const string& filename) { + std::ifstream f(filename.c_str()); + if (!f.good()) { + f.close(); + throw std::runtime_error("Could not open file " + filename); + } + f.close(); +} // wrap shared_ptr > in a class that we construct in C++ and pass -// to Python +// to Python class CaffeBlob { public: CaffeBlob(const shared_ptr > &blob, const string& name) @@ -58,9 +70,9 @@ class CaffeBlob { }; -// we need another wrapper (used as boost::python's HeldType) that receives a -// self PyObject * which we can use as ndarray.base, so that data/diff memory -// is not freed while still being used in Python +// We need another wrapper (used as boost::python's HeldType) that receives a +// self PyObject * which we can use as ndarray.base, so that data/diff memory +// is not freed while still being used in Python. class CaffeBlobWrap : public CaffeBlob { public: CaffeBlobWrap(PyObject *p, const CaffeBlob &blob) @@ -122,139 +134,96 @@ class CaffeLayer { // A simple wrapper over CaffeNet that runs the forward process. struct CaffeNet { - CaffeNet(string param_file, string pretrained_param_file) { - // for convenience, check that the input files can be opened, and raise - // an exception that boost will send to Python if not - // (this function could still crash if the input files are disturbed - // before Net construction) - std::ifstream f(param_file.c_str()); - if (!f.good()) { - f.close(); - throw std::runtime_error("Could not open file " + param_file); - } - f.close(); - f.open(pretrained_param_file.c_str()); - if (!f.good()) { - f.close(); - throw std::runtime_error("Could not open file " + pretrained_param_file); - } - f.close(); + // For cases where parameters will be determined later by the Python user, + // create a Net with unallocated parameters (which will not be zero-filled + // when accessed). + explicit CaffeNet(string param_file) { + Init(param_file); + } - net_.reset(new Net(param_file)); + CaffeNet(string param_file, string pretrained_param_file) { + Init(param_file); + CheckFile(pretrained_param_file); net_->CopyTrainedLayersFrom(pretrained_param_file); } - virtual ~CaffeNet() {} + explicit CaffeNet(shared_ptr > net) + : net_(net) {} - inline void check_array_against_blob( - PyArrayObject* arr, Blob* blob) { - CHECK(PyArray_FLAGS(arr) & NPY_ARRAY_C_CONTIGUOUS); - CHECK_EQ(PyArray_NDIM(arr), 4); - CHECK_EQ(PyArray_ITEMSIZE(arr), 4); - npy_intp* dims = PyArray_DIMS(arr); - CHECK_EQ(dims[0], blob->num()); - CHECK_EQ(dims[1], blob->channels()); - CHECK_EQ(dims[2], blob->height()); - CHECK_EQ(dims[3], blob->width()); + void Init(string param_file) { + CheckFile(param_file); + net_.reset(new Net(param_file)); } - // The actual forward function. It takes in a python list of numpy arrays as - // input and a python list of numpy arrays as output. The input and output - // should all have correct shapes, are single-precisionabcdnt- and - // c contiguous. - void Forward(list bottom, list top) { - vector*>& input_blobs = net_->input_blobs(); - CHECK_EQ(len(bottom), input_blobs.size()); - CHECK_EQ(len(top), net_->num_outputs()); - // First, copy the input - for (int i = 0; i < input_blobs.size(); ++i) { - object elem = bottom[i]; - PyArrayObject* arr = reinterpret_cast(elem.ptr()); - check_array_against_blob(arr, input_blobs[i]); - switch (Caffe::mode()) { - case Caffe::CPU: - memcpy(input_blobs[i]->mutable_cpu_data(), PyArray_DATA(arr), - sizeof(float) * input_blobs[i]->count()); - break; - case Caffe::GPU: - cudaMemcpy(input_blobs[i]->mutable_gpu_data(), PyArray_DATA(arr), - sizeof(float) * input_blobs[i]->count(), cudaMemcpyHostToDevice); - break; - default: - LOG(FATAL) << "Unknown Caffe mode."; - } // switch (Caffe::mode()) + + virtual ~CaffeNet() {} + + // Generate Python exceptions for badly shaped or discontiguous arrays. + inline void check_contiguous_array(PyArrayObject* arr, string name, + int channels, int height, int width) { + if (!(PyArray_FLAGS(arr) & NPY_ARRAY_C_CONTIGUOUS)) { + throw std::runtime_error(name + " must be C contiguous"); } - // LOG(INFO) << "Start"; - const vector*>& output_blobs = net_->ForwardPrefilled(); - // LOG(INFO) << "End"; - for (int i = 0; i < output_blobs.size(); ++i) { - object elem = top[i]; - PyArrayObject* arr = reinterpret_cast(elem.ptr()); - check_array_against_blob(arr, output_blobs[i]); - switch (Caffe::mode()) { - case Caffe::CPU: - memcpy(PyArray_DATA(arr), output_blobs[i]->cpu_data(), - sizeof(float) * output_blobs[i]->count()); - break; - case Caffe::GPU: - cudaMemcpy(PyArray_DATA(arr), output_blobs[i]->gpu_data(), - sizeof(float) * output_blobs[i]->count(), cudaMemcpyDeviceToHost); - break; - default: - LOG(FATAL) << "Unknown Caffe mode."; - } // switch (Caffe::mode()) + if (PyArray_NDIM(arr) != 4) { + throw std::runtime_error(name + " must be 4-d"); } - } - - void Backward(list top_diff, list bottom_diff) { - vector*>& output_blobs = net_->output_blobs(); - vector*>& input_blobs = net_->input_blobs(); - CHECK_EQ(len(bottom_diff), input_blobs.size()); - CHECK_EQ(len(top_diff), output_blobs.size()); - // First, copy the output diff - for (int i = 0; i < output_blobs.size(); ++i) { - object elem = top_diff[i]; - PyArrayObject* arr = reinterpret_cast(elem.ptr()); - check_array_against_blob(arr, output_blobs[i]); - switch (Caffe::mode()) { - case Caffe::CPU: - memcpy(output_blobs[i]->mutable_cpu_diff(), PyArray_DATA(arr), - sizeof(float) * output_blobs[i]->count()); - break; - case Caffe::GPU: - cudaMemcpy(output_blobs[i]->mutable_gpu_diff(), PyArray_DATA(arr), - sizeof(float) * output_blobs[i]->count(), cudaMemcpyHostToDevice); - break; - default: - LOG(FATAL) << "Unknown Caffe mode."; - } // switch (Caffe::mode()) + if (PyArray_TYPE(arr) != NPY_FLOAT32) { + throw std::runtime_error(name + " must be float32"); } - // LOG(INFO) << "Start"; - net_->Backward(); - // LOG(INFO) << "End"; - for (int i = 0; i < input_blobs.size(); ++i) { - object elem = bottom_diff[i]; - PyArrayObject* arr = reinterpret_cast(elem.ptr()); - check_array_against_blob(arr, input_blobs[i]); - switch (Caffe::mode()) { - case Caffe::CPU: - memcpy(PyArray_DATA(arr), input_blobs[i]->cpu_diff(), - sizeof(float) * input_blobs[i]->count()); - break; - case Caffe::GPU: - cudaMemcpy(PyArray_DATA(arr), input_blobs[i]->gpu_diff(), - sizeof(float) * input_blobs[i]->count(), cudaMemcpyDeviceToHost); - break; - default: - LOG(FATAL) << "Unknown Caffe mode."; - } // switch (Caffe::mode()) + if (PyArray_DIMS(arr)[1] != channels) { + throw std::runtime_error(name + " has wrong number of channels"); + } + if (PyArray_DIMS(arr)[2] != height) { + throw std::runtime_error(name + " has wrong height"); + } + if (PyArray_DIMS(arr)[3] != width) { + throw std::runtime_error(name + " has wrong width"); } } - void ForwardPrefilled() { + void Forward() { net_->ForwardPrefilled(); } + void Backward() { + net_->Backward(); + } + + void set_input_arrays(object data_obj, object labels_obj) { + // check that this network has an input MemoryDataLayer + shared_ptr > md_layer = + boost::dynamic_pointer_cast >(net_->layers()[0]); + if (!md_layer) { + throw std::runtime_error("set_input_arrays may only be called if the" + " first layer is a MemoryDataLayer"); + } + + // check that we were passed appropriately-sized contiguous memory + PyArrayObject* data_arr = + reinterpret_cast(data_obj.ptr()); + PyArrayObject* labels_arr = + reinterpret_cast(labels_obj.ptr()); + check_contiguous_array(data_arr, "data array", md_layer->datum_channels(), + md_layer->datum_height(), md_layer->datum_width()); + check_contiguous_array(labels_arr, "labels array", 1, 1, 1); + if (PyArray_DIMS(data_arr)[0] != PyArray_DIMS(labels_arr)[0]) { + throw std::runtime_error("data and labels must have the same first" + " dimension"); + } + if (PyArray_DIMS(data_arr)[0] % md_layer->batch_size() != 0) { + throw std::runtime_error("first dimensions of input arrays must be a" + " multiple of batch size"); + } + + // hold references + input_data_ = data_obj; + input_labels_ = labels_obj; + + md_layer->Reset(static_cast(PyArray_DATA(data_arr)), + static_cast(PyArray_DATA(labels_arr)), + PyArray_DIMS(data_arr)[0]); + } + // The caffe::Caffe utility functions. void set_mode_cpu() { Caffe::set_mode(Caffe::CPU); } void set_mode_gpu() { Caffe::set_mode(Caffe::GPU); } @@ -278,29 +247,78 @@ struct CaffeNet { return result; } + list inputs() { + list input_blob_names; + for (int i = 0; i < net_->input_blob_indices().size(); ++i) { + input_blob_names.append( + net_->blob_names()[net_->input_blob_indices()[i]]); + } + return input_blob_names; + } + + list outputs() { + list output_blob_names; + for (int i = 0; i < net_->output_blob_indices().size(); ++i) { + output_blob_names.append( + net_->blob_names()[net_->output_blob_indices()[i]]); + } + return output_blob_names; + } + // The pointer to the internal caffe::Net instant. shared_ptr > net_; + // if taking input from an ndarray, we need to hold references + object input_data_; + object input_labels_; }; +class CaffeSGDSolver { + public: + explicit CaffeSGDSolver(const string& param_file) { + // as in CaffeNet, (as a convenience, not a guarantee), create a Python + // exception if param_file can't be opened + CheckFile(param_file); + solver_.reset(new SGDSolver(param_file)); + // we need to explicitly store the net wrapper, rather than constructing + // it on the fly, so that it can hold references to Python objects + net_.reset(new CaffeNet(solver_->net())); + } + + shared_ptr net() { return net_; } + void Solve() { return solver_->Solve(); } + void SolveResume(const string& resume_file) { + CheckFile(resume_file); + return solver_->Solve(resume_file); + } + + protected: + shared_ptr net_; + shared_ptr > solver_; +}; -// The boost python module definition. +// The boost_python module definition. BOOST_PYTHON_MODULE(_caffe) { - boost::python::class_( - "CaffeNet", boost::python::init()) - .def("Forward", &CaffeNet::Forward) - .def("ForwardPrefilled", &CaffeNet::ForwardPrefilled) - .def("Backward", &CaffeNet::Backward) - .def("set_mode_cpu", &CaffeNet::set_mode_cpu) - .def("set_mode_gpu", &CaffeNet::set_mode_gpu) - .def("set_phase_train", &CaffeNet::set_phase_train) - .def("set_phase_test", &CaffeNet::set_phase_test) - .def("set_device", &CaffeNet::set_device) - .add_property("blobs", &CaffeNet::blobs) - .add_property("layers", &CaffeNet::layers); + // below, we prepend an underscore to methods that will be replaced + // in Python + boost::python::class_ >( + "Net", boost::python::init()) + .def(boost::python::init()) + .def("_forward", &CaffeNet::Forward) + .def("_backward", &CaffeNet::Backward) + .def("set_mode_cpu", &CaffeNet::set_mode_cpu) + .def("set_mode_gpu", &CaffeNet::set_mode_gpu) + .def("set_phase_train", &CaffeNet::set_phase_train) + .def("set_phase_test", &CaffeNet::set_phase_test) + .def("set_device", &CaffeNet::set_device) + .add_property("_blobs", &CaffeNet::blobs) + .add_property("layers", &CaffeNet::layers) + .add_property("inputs", &CaffeNet::inputs) + .add_property("outputs", &CaffeNet::outputs) + .def("_set_input_arrays", &CaffeNet::set_input_arrays); boost::python::class_( - "CaffeBlob", boost::python::no_init) + "Blob", boost::python::no_init) .add_property("name", &CaffeBlob::name) .add_property("num", &CaffeBlob::num) .add_property("channels", &CaffeBlob::channels) @@ -311,10 +329,16 @@ BOOST_PYTHON_MODULE(_caffe) { .add_property("diff", &CaffeBlobWrap::get_diff); boost::python::class_( - "CaffeLayer", boost::python::no_init) + "Layer", boost::python::no_init) .add_property("name", &CaffeLayer::name) .add_property("blobs", &CaffeLayer::blobs); + boost::python::class_( + "SGDSolver", boost::python::init()) + .add_property("net", &CaffeSGDSolver::net) + .def("solve", &CaffeSGDSolver::Solve) + .def("solve", &CaffeSGDSolver::SolveResume); + boost::python::class_ >("BlobVec") .def(vector_indexing_suite, true>()); diff --git a/python/caffe/classifier.py b/python/caffe/classifier.py new file mode 100644 index 00000000000..f347be42a93 --- /dev/null +++ b/python/caffe/classifier.py @@ -0,0 +1,86 @@ +#!/usr/bin/env python +""" +Classifier is an image classifier specialization of Net. +""" + +import numpy as np + +import caffe + + +class Classifier(caffe.Net): + """ + Classifier extends Net for image class prediction + by scaling, center cropping, or oversampling. + """ + def __init__(self, model_file, pretrained_file, image_dims=None, + gpu=False, mean_file=None, input_scale=None, channel_swap=None): + """ + Take + image_dims: dimensions to scale input for cropping/sampling. + Default is to scale to net input size for whole-image crop. + gpu, mean_file, input_scale, channel_swap: convenience params for + setting mode, mean, input scale, and channel order. + """ + caffe.Net.__init__(self, model_file, pretrained_file) + self.set_phase_test() + + if gpu: + self.set_mode_gpu() + else: + self.set_mode_cpu() + + if mean_file: + self.set_mean(self.inputs[0], mean_file) + if input_scale: + self.set_input_scale(self.inputs[0], input_scale) + if channel_swap: + self.set_channel_swap(self.inputs[0], channel_swap) + + self.crop_dims = np.array(self.blobs[self.inputs[0]].data.shape[2:]) + if not image_dims: + image_dims = self.crop_dims + self.image_dims = image_dims + + + def predict(self, inputs, oversample=True): + """ + Predict classification probabilities of inputs. + + Take + inputs: iterable of (H x W x K) input ndarrays. + oversample: average predictions across center, corners, and mirrors + when True (default). Center-only prediction when False. + + Give + predictions: (N x C) ndarray of class probabilities + for N images and C classes. + """ + # Scale to standardize input dimensions. + inputs = np.asarray([caffe.io.resize_image(im, self.image_dims) + for im in inputs]) + + if oversample: + # Generate center, corner, and mirrored crops. + inputs = caffe.io.oversample(inputs, self.crop_dims) + else: + # Take center crop. + center = np.array(self.image_dims) / 2.0 + crop = np.tile(center, (1, 2))[0] + np.concatenate([ + -self.crop_dims / 2.0, + self.crop_dims / 2.0 + ]) + inputs = inputs[:, crop[0]:crop[2], crop[1]:crop[3], :] + + # Classify + caffe_in = np.asarray([self.preprocess(self.inputs[0], in_) + for in_ in inputs]) + out = self.forward_all(**{self.inputs[0]: caffe_in}) + predictions = out[self.outputs[0]].squeeze(axis=(2,3)) + + # For oversampling, average predictions across crops. + if oversample: + predictions = predictions.reshape((len(predictions) / 10, 10, -1)) + predictions = predictions.mean(1) + + return predictions diff --git a/python/caffe/detection/__init__.py b/python/caffe/detection/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/python/caffe/detection/detector.py b/python/caffe/detection/detector.py deleted file mode 100644 index 9355274c85f..00000000000 --- a/python/caffe/detection/detector.py +++ /dev/null @@ -1,462 +0,0 @@ -#!/usr/bin/env python -""" -Do windowed detection by classifying a number of images/crops at once, -optionally using the selective search window proposal method. - -This implementation follows - Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik. - Rich feature hierarchies for accurate object detection and semantic - segmentation. - http://arxiv.org/abs/1311.2524 - -The selective_search_ijcv_with_python code is available at - https://github.com/sergeyk/selective_search_ijcv_with_python - -TODO: -- batch up image filenames as well: don't want to load all of them into memory -- refactor into class (without globals) -- get rid of imagenet mean file and just use mean pixel value -""" -import numpy as np -import pandas as pd -import os -import sys -import argparse -import time -import skimage.io -import skimage.transform -import selective_search_ijcv_with_python as selective_search -import caffe - -NET = None - -IMAGE_DIM = None -CROPPED_DIM = None -IMAGE_CENTER = None - -IMAGE_MEAN = None -CROPPED_IMAGE_MEAN = None - -BATCH_SIZE = None -NUM_OUTPUT = None - -CROP_MODES = ['list', 'center_only', 'corners', 'selective_search'] - - -def load_image(filename): - """ - Input: - filename: string - - Output: - image: an image of size (H x W x 3) of type uint8. - """ - img = skimage.io.imread(filename) - if img.ndim == 2: - img = np.tile(img[:, :, np.newaxis], (1, 1, 3)) - elif img.shape[2] == 4: - img = img[:, :, :3] - return img - - -def format_image(image, window=None, cropped_size=False): - """ - Input: - image: (H x W x 3) ndarray - window: (4) ndarray - (ymin, xmin, ymax, xmax) coordinates, 0-indexed - cropped_size: bool - Whether to output cropped size image or full size image. - - Output: - image: (3 x H x W) ndarray - Resized to either IMAGE_DIM or CROPPED_DIM. - dims: (H, W) of the original image - """ - dims = image.shape[:2] - - # Crop a subimage if window is provided. - if window is not None: - image = image[window[0]:window[2], window[1]:window[3]] - - # Resize to input size, subtract mean, convert to BGR - image = image[:, :, ::-1] - if cropped_size: - image = skimage.transform.resize(image, (CROPPED_DIM, CROPPED_DIM)) * 255 - image -= CROPPED_IMAGE_MEAN - else: - image = skimage.transform.resize(image, (IMAGE_DIM, IMAGE_DIM)) * 255 - image -= IMAGE_MEAN - - image = image.swapaxes(1, 2).swapaxes(0, 1) - return image, dims - - -def _image_coordinates(dims, window): - """ - Calculate the original image coordinates of a - window in the canonical (IMAGE_DIM x IMAGE_DIM) coordinates - - Input: - dims: (H, W) of the original image - window: (ymin, xmin, ymax, xmax) in the (IMAGE_DIM x IMAGE_DIM) frame - - Output: - image_window: (ymin, xmin, ymax, xmax) in the original image frame - """ - h, w = dims - max_dim = float(IMAGE_DIM) - h_scale, w_scale = h / max_dim, w / max_dim - image_window = window * np.array((1. / h_scale, 1. / w_scale, - h_scale, w_scale)) - return image_window.round().astype(int) - - -def _assemble_images_list(input_df): - """ - For each image, collect the crops for the given windows. - - Input: - input_df: pandas.DataFrame - with 'filename', 'ymin', 'xmin', 'ymax', 'xmax' columns - - Output: - images_df: pandas.DataFrame - with 'image', 'window', 'filename' columns - """ - # unpack sequence of (image filename, windows) - coords = ['ymin', 'xmin', 'ymax', 'xmax'] - image_windows = ( - (ix, input_df.iloc[np.where(input_df.index == ix)][coords].values) - for ix in input_df.index.unique() - ) - - # extract windows - data = [] - for image_fname, windows in image_windows: - image = load_image(image_fname) - for window in windows: - window_image, _ = format_image(image, window, cropped_size=True) - data.append({ - 'image': window_image[np.newaxis, :], - 'window': window, - 'filename': image_fname - }) - - images_df = pd.DataFrame(data) - return images_df - - -def _assemble_images_center_only(image_fnames): - """ - For each image, square the image and crop its center. - - Input: - image_fnames: list - - Output: - images_df: pandas.DataFrame - With 'image', 'window', 'filename' columns. - """ - crop_start, crop_end = IMAGE_CENTER, IMAGE_CENTER + CROPPED_DIM - crop_window = np.array((crop_start, crop_start, crop_end, crop_end)) - - data = [] - for image_fname in image_fnames: - image, dims = format_image(load_image(image_fname)) - data.append({ - 'image': image[np.newaxis, :, - crop_start:crop_end, - crop_start:crop_end], - 'window': _image_coordinates(dims, crop_window), - 'filename': image_fname - }) - - images_df = pd.DataFrame(data) - return images_df - - -def _assemble_images_corners(image_fnames): - """ - For each image, square the image and crop its center, four corners, - and mirrored version of the above. - - Input: - image_fnames: list - - Output: - images_df: pandas.DataFrame - With 'image', 'window', 'filename' columns. - """ - # make crops - indices = [0, IMAGE_DIM - CROPPED_DIM] - crops = np.empty((5, 4), dtype=int) - curr = 0 - for i in indices: - for j in indices: - crops[curr] = (i, j, i + CROPPED_DIM, j + CROPPED_DIM) - curr += 1 - crops[4] = (IMAGE_CENTER, IMAGE_CENTER, - IMAGE_CENTER + CROPPED_DIM, IMAGE_CENTER + CROPPED_DIM) - all_crops = np.tile(crops, (2, 1)) - - data = [] - for image_fname in image_fnames: - image, dims = format_image(load_image(image_fname)) - image_crops = np.empty((10, 3, CROPPED_DIM, CROPPED_DIM), dtype=np.float32) - curr = 0 - for crop in crops: - image_crops[curr] = image[:, crop[0]:crop[2], crop[1]:crop[3]] - curr += 1 - image_crops[5:] = image_crops[:5, :, :, ::-1] # flip for mirrors - for i in range(len(all_crops)): - data.append({ - 'image': image_crops[i][np.newaxis, :], - 'window': _image_coordinates(dims, all_crops[i]), - 'filename': image_fname - }) - - images_df = pd.DataFrame(data) - return images_df - - -def _assemble_images_selective_search(image_fnames): - """ - Run Selective Search window proposals on all images, then for each - image-window pair, extract a square crop. - - Input: - image_fnames: list - - Output: - images_df: pandas.DataFrame - With 'image', 'window', 'filename' columns. - """ - windows_list = selective_search.get_windows(image_fnames) - - data = [] - for image_fname, windows in zip(image_fnames, windows_list): - image = load_image(image_fname) - for window in windows: - window_image, _ = format_image(image, window, cropped_size=True) - data.append({ - 'image': window_image[np.newaxis, :], - 'window': window, - 'filename': image_fname - }) - - images_df = pd.DataFrame(data) - return images_df - - -def assemble_batches(inputs, crop_mode='center_only'): - """ - Assemble DataFrame of image crops for feature computation. - - Input: - inputs: list of filenames (center_only, corners, and selective_search mode) - OR input DataFrame (list mode) - mode: string - 'list': take the image windows from the input as-is - 'center_only': take the CROPPED_DIM middle of the image windows - 'corners': take CROPPED_DIM-sized boxes at 4 corners and center of - the image windows, as well as their flipped versions: a total of 10. - 'selective_search': run Selective Search region proposal on the - image windows, and take each enclosing subwindow. - - Output: - df_batches: list of DataFrames, each one of BATCH_SIZE rows. - Each row has 'image', 'filename', and 'window' info. - Column 'image' contains (X x 3 x CROPPED_DIM x CROPPED_IM) ndarrays. - Column 'filename' contains source filenames. - Column 'window' contains [ymin, xmin, ymax, xmax] ndarrays. - If 'filename' is None, then the row is just for padding. - - Note: for increased efficiency, increase the batch size (to the limit of gpu - memory) to avoid the communication cost - """ - if crop_mode == 'list': - images_df = _assemble_images_list(inputs) - - elif crop_mode == 'center_only': - images_df = _assemble_images_center_only(inputs) - - elif crop_mode == 'corners': - images_df = _assemble_images_corners(inputs) - - elif crop_mode == 'selective_search': - images_df = _assemble_images_selective_search(inputs) - - else: - raise Exception("Unknown mode: not in {}".format(CROP_MODES)) - - # Make sure the DataFrame has a multiple of BATCH_SIZE rows: - # just fill the extra rows with NaN filenames and all-zero images. - N = images_df.shape[0] - remainder = N % BATCH_SIZE - if remainder > 0: - zero_image = np.zeros_like(images_df['image'].iloc[0]) - zero_window = np.zeros((1, 4), dtype=int) - remainder_df = pd.DataFrame([{ - 'filename': None, - 'image': zero_image, - 'window': zero_window - }] * (BATCH_SIZE - remainder)) - images_df = images_df.append(remainder_df) - N = images_df.shape[0] - - # Split into batches of BATCH_SIZE. - ind = np.arange(N) / BATCH_SIZE - df_batches = [images_df[ind == i] for i in range(N / BATCH_SIZE)] - return df_batches - - -def compute_feats(images_df): - input_blobs = [np.ascontiguousarray( - np.concatenate(images_df['image'].values), dtype='float32')] - output_blobs = [np.empty((BATCH_SIZE, NUM_OUTPUT, 1, 1), dtype=np.float32)] - - NET.Forward(input_blobs, output_blobs) - feats = [output_blobs[0][i].flatten() for i in range(len(output_blobs[0]))] - - # Add the features and delete the images. - del images_df['image'] - images_df['feat'] = feats - return images_df - - -def config(model_def, pretrained_model, gpu, image_dim, image_mean_file): - global IMAGE_DIM, CROPPED_DIM, IMAGE_CENTER, IMAGE_MEAN, CROPPED_IMAGE_MEAN - global NET, BATCH_SIZE, NUM_OUTPUT - - # Initialize network by loading model definition and weights. - t = time.time() - print("Loading Caffe model.") - NET = caffe.Net(model_def, pretrained_model) - NET.set_phase_test() - if gpu: - NET.set_mode_gpu() - print("Caffe model loaded in {:.3f} s".format(time.time() - t)) - - # Configure for input/output data - IMAGE_DIM = image_dim - CROPPED_DIM = NET.blobs.values()[0].width - IMAGE_CENTER = int((IMAGE_DIM - CROPPED_DIM) / 2) - - # Load the data set mean file - IMAGE_MEAN = np.load(image_mean_file) - - CROPPED_IMAGE_MEAN = IMAGE_MEAN[IMAGE_CENTER:IMAGE_CENTER + CROPPED_DIM, - IMAGE_CENTER:IMAGE_CENTER + CROPPED_DIM, - :] - BATCH_SIZE = NET.blobs.values()[0].num # network batch size - NUM_OUTPUT = NET.blobs.values()[-1].channels # number of output classes - - -if __name__ == "__main__": - parser = argparse.ArgumentParser() - - # Required arguments: input and output. - parser.add_argument( - "input_file", - help="Input txt/csv filename. If .txt, must be list of filenames.\ - If .csv, must be comma-separated file with header\ - 'filename, xmin, ymin, xmax, ymax'" - ) - parser.add_argument( - "output_file", - help="Output h5/csv filename. Format depends on extension." - ) - - # Optional arguments. - parser.add_argument( - "--model_def", - default="../../../examples/imagenet/imagenet_deploy.prototxt", - help="Model definition file." - ) - parser.add_argument( - "--pretrained_model", - default="../../../examples/imagenet/caffe_reference_imagenet_model", - help="Trained model weights file." - ) - parser.add_argument( - "--gpu", - default=False, - help="Switch for gpu computation." - ) - parser.add_argument( - "--crop_mode", - default="center_only", - choices=CROP_MODES, - help="Image crop mode" - ) - parser.add_argument( - "--images_dim", - default=256, - help="Canonical dimension of (square) images." - ) - parser.add_argument( - "--images_mean_file", - default=os.path.join( - os.path.dirname(__file__), '../imagenet/ilsvrc_2012_mean.npy'), - help="Data set image mean (numpy array).") - - args = parser.parse_args() - - # Configure network, input, output. - config(args.model_def, args.pretrained_model, args.gpu, args.images_dim, - args.images_mean_file) - - # Load input. - t = time.time() - print('Loading input and assembling batches...') - if args.input_file.lower().endswith('txt'): - with open(args.input_file) as f: - inputs = [_.strip() for _ in f.readlines()] - elif args.input_file.lower().endswith('csv'): - inputs = pd.read_csv(args.input_file, sep=',', dtype={'filename': str}) - inputs.set_index('filename', inplace=True) - else: - raise Exception("Uknown input file type: not in txt or csv") - - # Assemble into batches - image_batches = assemble_batches(inputs, args.crop_mode) - print('{} batches assembled in {:.3f} s'.format(len(image_batches), - time.time() - t)) - - # Process the batches. - t = time.time() - print 'Processing {} files in {} batches'.format(len(inputs), - len(image_batches)) - dfs_with_feats = [] - for i in range(len(image_batches)): - if i % 10 == 0: - print('...on batch {}/{}, elapsed time: {:.3f} s'.format( - i, len(image_batches), time.time() - t)) - dfs_with_feats.append(compute_feats(image_batches[i])) - - # Concatenate, droppping the padding rows. - df = pd.concat(dfs_with_feats).dropna(subset=['filename']) - df.set_index('filename', inplace=True) - print("Processing complete after {:.3f} s.".format(time.time() - t)) - - # Label coordinates - coord_cols = ['ymin', 'xmin', 'ymax', 'xmax'] - df[coord_cols] = pd.DataFrame( - data=np.vstack(df['window']), index=df.index, columns=coord_cols) - del(df['window']) - - # Write out the results. - t = time.time() - if args.output_file.lower().endswith('csv'): - # enumerate the class probabilities - class_cols = ['class{}'.format(x) for x in range(NUM_OUTPUT)] - df[class_cols] = pd.DataFrame( - data=np.vstack(df['feat']), index=df.index, columns=class_cols) - df.to_csv(args.output_file, cols=coord_cols + class_cols) - else: - df.to_hdf(args.output_file, 'df', mode='w') - print("Done. Saving to {} took {:.3f} s.".format( - args.output_file, time.time() - t)) - - sys.exit() diff --git a/python/caffe/detector.py b/python/caffe/detector.py new file mode 100644 index 00000000000..5a30dab92f5 --- /dev/null +++ b/python/caffe/detector.py @@ -0,0 +1,111 @@ +#!/usr/bin/env python +""" +Do windowed detection by classifying a number of images/crops at once, +optionally using the selective search window proposal method. + +This implementation follows ideas in + Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik. + Rich feature hierarchies for accurate object detection and semantic + segmentation. + http://arxiv.org/abs/1311.2524 + +The selective_search_ijcv_with_python code required for the selective search +proposal mode is available at + https://github.com/sergeyk/selective_search_ijcv_with_python + +TODO +- R-CNN crop mode / crop with context. +- Bundle with R-CNN model for example. +""" +import numpy as np +import os + +import caffe + + +class Detector(caffe.Net): + """ + Detector extends Net for windowed detection by a list of crops or + selective search proposals. + """ + def __init__(self, model_file, pretrained_file, gpu=False, mean_file=None, + input_scale=None, channel_swap=None): + """ + Take + gpu, mean_file, input_scale, channel_swap: convenience params for + setting mode, mean, input scale, and channel order. + """ + caffe.Net.__init__(self, model_file, pretrained_file) + self.set_phase_test() + + if gpu: + self.set_mode_gpu() + else: + self.set_mode_cpu() + + if mean_file: + self.set_mean(self.inputs[0], mean_file) + if input_scale: + self.set_input_scale(self.inputs[0], input_scale) + if channel_swap: + self.set_channel_swap(self.inputs[0], channel_swap) + + + def detect_windows(self, images_windows): + """ + Do windowed detection over given images and windows. Windows are + extracted then warped to the input dimensions of the net. + + Take + images_windows: (image filename, window list) iterable. + + Give + detections: list of {filename: image filename, window: crop coordinates, + predictions: prediction vector} dicts. + """ + # Extract windows. + window_inputs = [] + for image_fname, windows in images_windows: + image = caffe.io.load_image(image_fname).astype(np.float32) + for window in windows: + window_inputs.append(image[window[0]:window[2], + window[1]:window[3]]) + + # Run through the net (warping windows to input dimensions). + caffe_in = np.asarray([self.preprocess(self.inputs[0], window_in) + for window_in in window_inputs]) + out = self.forward_all(**{self.inputs[0]: caffe_in}) + predictions = out[self.outputs[0]].squeeze(axis=(2,3)) + + # Package predictions with images and windows. + detections = [] + ix = 0 + for image_fname, windows in images_windows: + for window in windows: + detections.append({ + 'window': window, + 'prediction': predictions[ix], + 'filename': image_fname + }) + ix += 1 + return detections + + + def detect_selective_search(self, image_fnames): + """ + Do windowed detection over Selective Search proposals by extracting + the crop and warping to the input dimensions of the net. + + Take + image_fnames: list + + Give + detections: list of {filename: image filename, window: crop coordinates, + predictions: prediction vector} dicts. + """ + import selective_search_ijcv_with_python as selective_search + # Make absolute paths so MATLAB can find the files. + image_fnames = [os.path.abspath(f) for f in image_fnames] + windows_list = selective_search.get_windows(image_fnames) + # Run windowed detection on the selective search list. + return self.detect_windows(zip(image_fnames, windows_list)) diff --git a/python/caffe/drawnet.py b/python/caffe/draw.py similarity index 78% rename from python/caffe/drawnet.py rename to python/caffe/draw.py index 8ff0d83fc07..f8631cfa09e 100644 --- a/python/caffe/drawnet.py +++ b/python/caffe/draw.py @@ -1,12 +1,14 @@ -#!/usr/bin/env python -"""Functions to draw a caffe NetParameter protobuffer. +""" +Caffe network visualization: draw the NetParameter protobuffer. + +NOTE: this requires pydot>=1.0.2, which is not included in requirements.txt +since it requires graphviz and other prerequisites outside the scope of the +Caffe. """ from caffe.proto import caffe_pb2 from google.protobuf import text_format import pydot -import os -import sys # Internal layer and blob styles. LAYER_STYLE = {'shape': 'record', 'fillcolor': '#6495ED', @@ -15,14 +17,21 @@ 'style': 'filled'} BLOB_STYLE = {'shape': 'octagon', 'fillcolor': '#F0E68C', 'style': 'filled'} +def get_enum_name_by_value(): + desc = caffe_pb2.LayerParameter.LayerType.DESCRIPTOR + d = {} + for k,v in desc.values_by_name.items(): + d[v.number] = k + return d def get_pydot_graph(caffe_net): - pydot_graph = pydot.Dot(caffe_net.name, graph_type='digraph') + pydot_graph = pydot.Dot(caffe_net.name, graph_type='digraph', rankdir="BT") pydot_nodes = {} pydot_edges = [] + d = get_enum_name_by_value() for layer in caffe_net.layers: - name = layer.layer.name - layertype = layer.layer.type + name = layer.name + layertype = d[layer.type] if (len(layer.bottom) == 1 and len(layer.top) == 1 and layer.bottom[0] == layer.top[0]): # We have an in-place neuron layer. @@ -63,17 +72,5 @@ def draw_net_to_file(caffe_net, filename): to graphviz to draw graphs. """ ext = filename[filename.rfind('.')+1:] - with open(filename, 'w') as fid: + with open(filename, 'wb') as fid: fid.write(draw_net(caffe_net, ext)) - -if __name__ == '__main__': - if len(sys.argv) != 3: - print 'Usage: %s input_net_proto_file output_image_file' % \ - os.path.basename(sys.argv[0]) - else: - net = caffe_pb2.NetParameter() - text_format.Merge(open(sys.argv[1]).read(), net) - print 'Drawing net to %s' % sys.argv[2] - draw_net_to_file(net, sys.argv[2]) - - diff --git a/python/caffe/imagenet/__init__.py b/python/caffe/imagenet/__init__.py deleted file mode 100644 index 88cd44770e1..00000000000 --- a/python/caffe/imagenet/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .wrapper import * diff --git a/python/caffe/imagenet/ilsvrc_2012_mean.npy b/python/caffe/imagenet/ilsvrc_2012_mean.npy index 51fd17c6205..666082c6a65 100644 Binary files a/python/caffe/imagenet/ilsvrc_2012_mean.npy and b/python/caffe/imagenet/ilsvrc_2012_mean.npy differ diff --git a/python/caffe/imagenet/wrapper.py b/python/caffe/imagenet/wrapper.py deleted file mode 100644 index 4a5b6ed8df4..00000000000 --- a/python/caffe/imagenet/wrapper.py +++ /dev/null @@ -1,128 +0,0 @@ -#!/usr/bin/env python -"""wrapper.py implements an end-to-end wrapper that classifies an image read -from disk, using the imagenet classifier. -""" - -import numpy as np -import os -from skimage import io -from skimage import transform - -import caffe - -IMAGE_DIM = 256 -CROPPED_DIM = 227 - -# Load the imagenet mean file -IMAGENET_MEAN = np.load( - os.path.join(os.path.dirname(__file__), 'ilsvrc_2012_mean.npy')) - - -def oversample(image, center_only=False): - """ - Oversamples an image. Currently the indices are hard coded to the - 4 corners and the center of the image, as well as their flipped ones, - a total of 10 images. - - Input: - image: an image of size (256 x 256 x 3) and has data type uint8. - center_only: if True, only return the center image. - Output: - images: the output of size (10 x 3 x 227 x 227) - """ - image = image.swapaxes(1, 2).swapaxes(0, 1) - indices = [0, IMAGE_DIM - CROPPED_DIM] - center = int(indices[1] / 2) - if center_only: - return np.ascontiguousarray( - image[np.newaxis, :, center:center + CROPPED_DIM, - center:center + CROPPED_DIM], - dtype=np.float32) - else: - images = np.empty((10, 3, CROPPED_DIM, CROPPED_DIM), dtype=np.float32) - curr = 0 - for i in indices: - for j in indices: - images[curr] = image[:, i:i + CROPPED_DIM, j:j + CROPPED_DIM] - curr += 1 - images[4] = image[:, center:center + CROPPED_DIM, - center:center + CROPPED_DIM] - # flipped version - images[5:] = images[:5, :, :, ::-1] - return images - - -def prepare_image(filename, center_only=False): - img = io.imread(filename) - if img.ndim == 2: - img = np.tile(img[:, :, np.newaxis], (1, 1, 3)) - elif img.shape[2] == 4: - img = img[:, :, :3] - # Resize and convert to BGR - img_reshape = (transform.resize(img, (IMAGE_DIM,IMAGE_DIM)) * 255)[:, :, ::-1] - # subtract main - img_reshape -= IMAGENET_MEAN - return oversample(img_reshape, center_only) - - -class ImageNetClassifier(object): - """ - The ImageNetClassifier is a wrapper class to perform easier deployment - of models trained on imagenet. - """ - def __init__(self, model_def_file, pretrained_model, center_only=False, - num_output=1000): - if center_only: - num = 1 - else: - num = 10 - self.caffenet = caffe.Net(model_def_file, pretrained_model) - self._output_blobs = [np.empty((num, num_output, 1, 1), dtype=np.float32)] - self._center_only = center_only - - def predict(self, filename): - input_blob = [prepare_image(filename, self._center_only)] - self.caffenet.Forward(input_blob, self._output_blobs) - return self._output_blobs[0].mean(0).flatten() - - -def main(argv): - """ - The main function will carry out classification. - """ - import gflags - import glob - import time - gflags.DEFINE_string("root", "", "The folder that contains images.") - gflags.DEFINE_string("ext", "JPEG", "The image extension.") - gflags.DEFINE_string("model_def", "", "The model definition file.") - gflags.DEFINE_string("pretrained_model", "", "The pretrained model.") - gflags.DEFINE_string("output", "", "The output numpy file.") - gflags.DEFINE_boolean("gpu", True, "use gpu for computation") - FLAGS = gflags.FLAGS - FLAGS(argv) - - net = ImageNetClassifier(FLAGS.model_def, FLAGS.pretrained_model) - - if FLAGS.gpu: - print 'Use gpu.' - net.caffenet.set_mode_gpu() - - files = glob.glob(os.path.join(FLAGS.root, "*." + FLAGS.ext)) - files.sort() - print 'A total of %d files' % len(files) - output = np.empty((len(files), net._output_blobs[0].shape[1]), - dtype=np.float32) - start = time.time() - for i, f in enumerate(files): - output[i] = net.predict(f) - if i % 1000 == 0 and i > 0: - print 'Processed %d files, elapsed %.2f s' % (i, time.time() - start) - # Finally, write the results - np.save(FLAGS.output, output) - print 'Done. Saved to %s.' % FLAGS.output - - -if __name__ == "__main__": - import sys - main(sys.argv) diff --git a/python/caffe/convert.py b/python/caffe/io.py similarity index 52% rename from python/caffe/convert.py rename to python/caffe/io.py index deef6577081..0bd2f812bec 100644 --- a/python/caffe/convert.py +++ b/python/caffe/io.py @@ -1,9 +1,84 @@ -#!/usr/bin/env python -"""This script converts blobproto instances to numpy arrays. -""" +import numpy as np +import skimage.io +import skimage.transform from caffe.proto import caffe_pb2 -import numpy as np + + +def load_image(filename): + """ + Load an image converting from grayscale or alpha as needed. + + Take + filename: string + + Give + image: an image of size (H x W x 3) with RGB channels of type uint8. + """ + img = skimage.img_as_float(skimage.io.imread(filename)).astype(np.float32) + if img.ndim == 2: + img = np.tile(img[:, :, np.newaxis], (1, 1, 3)) + elif img.shape[2] == 4: + img = img[:, :, :3] + return img + + +def resize_image(im, new_dims, interp_order=1): + """ + Resize an image array with interpolation. + + Take + im: (H x W x K) ndarray + new_dims: (height, width) tuple of new dimensions. + interp_order: interpolation order, default is linear. + + Give + im: resized ndarray with shape (new_dims[0], new_dims[1], K) + """ + return skimage.transform.resize(im, new_dims, order=interp_order) + + +def oversample(images, crop_dims): + """ + Crop images into the four corners, center, and their mirrored versions. + + Take + image: iterable of (H x W x K) ndarrays + crop_dims: (height, width) tuple for the crops. + + Give + crops: (10*N x H x W x K) ndarray of crops for number of inputs N. + """ + # Dimensions and center. + im_shape = np.array(images[0].shape) + crop_dims = np.array(crop_dims) + im_center = im_shape[:2] / 2.0 + + # Make crop coordinates + h_indices = (0, im_shape[0] - crop_dims[0]) + w_indices = (0, im_shape[1] - crop_dims[1]) + crops_ix = np.empty((5, 4), dtype=int) + curr = 0 + for i in h_indices: + for j in w_indices: + crops_ix[curr] = (i, j, i + crop_dims[0], j + crop_dims[1]) + curr += 1 + crops_ix[4] = np.tile(im_center, (1, 2)) + np.concatenate([ + -crop_dims / 2.0, + crop_dims / 2.0 + ]) + crops_ix = np.tile(crops_ix, (2, 1)) + + # Extract crops + crops = np.empty((10 * len(images), crop_dims[0], crop_dims[1], + im_shape[-1]), dtype=np.float32) + ix = 0 + for im in images: + for crop in crops_ix: + crops[ix] = im[crop[0]:crop[2], crop[1]:crop[3], :] + ix += 1 + crops[ix-5:ix] = crops[ix-5:ix, :, ::-1, :] # flip for mirrors + return crops def blobproto_to_array(blob, return_diff=False): diff --git a/python/caffe/proto/__init__.py b/python/caffe/proto/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/python/caffe/pycaffe.py b/python/caffe/pycaffe.py index 8fbbcf9aac9..537e737b5c0 100644 --- a/python/caffe/pycaffe.py +++ b/python/caffe/pycaffe.py @@ -3,26 +3,347 @@ interface. """ -from ._caffe import CaffeNet from collections import OrderedDict +from itertools import izip_longest +import numpy as np -class Net(CaffeNet): - """ - The direct Python interface to caffe, exposing Forward and Backward - passes, data, gradients, and layer parameters - """ - def __init__(self, param_file, pretrained_param_file): - super(Net, self).__init__(param_file, pretrained_param_file) - self._blobs = OrderedDict([(bl.name, bl) - for bl in super(Net, self).blobs]) - self.params = OrderedDict([(lr.name, lr.blobs) - for lr in super(Net, self).layers - if len(lr.blobs) > 0]) - - @property - def blobs(self): - """ - An OrderedDict (bottom to top, i.e., input to output) of network - blobs indexed by name - """ - return self._blobs +from ._caffe import Net, SGDSolver +import caffe.io + +# We directly update methods from Net here (rather than using composition or +# inheritance) so that nets created by caffe (e.g., by SGDSolver) will +# automatically have the improved interface. + +# Input preprocessing +Net.mean = {} # input mean (ndarray, input dimensional or broadcastable) +Net.input_scale = {} # for a model that expects data = input * input_scale +Net.channel_swap = {} # for RGB -> BGR and the like + + +@property +def _Net_blobs(self): + """ + An OrderedDict (bottom to top, i.e., input to output) of network + blobs indexed by name + """ + return OrderedDict([(bl.name, bl) for bl in self._blobs]) + + +@property +def _Net_params(self): + """ + An OrderedDict (bottom to top, i.e., input to output) of network + parameters indexed by name; each is a list of multiple blobs (e.g., + weights and biases) + """ + return OrderedDict([(lr.name, lr.blobs) for lr in self.layers + if len(lr.blobs) > 0]) + + +def _Net_forward(self, blobs=None, **kwargs): + """ + Forward pass: prepare inputs and run the net forward. + + Take + blobs: list of blobs to return in addition to output blobs. + kwargs: Keys are input blob names and values are blob ndarrays. + For formatting inputs for Caffe, see Net.preprocess(). + If None, input is taken from data layers. + + Give + outs: {blob name: blob ndarray} dict. + """ + if blobs is None: + blobs = [] + + if kwargs: + if set(kwargs.keys()) != set(self.inputs): + raise Exception('Input blob arguments do not match net inputs.') + # Set input according to defined shapes and make arrays single and + # C-contiguous as Caffe expects. + for in_, blob in kwargs.iteritems(): + if blob.shape[0] != self.blobs[in_].num: + raise Exception('Input is not batch sized') + if blob.ndim != 4: + raise Exception('{} blob is not 4-d'.format(in_)) + self.blobs[in_].data[...] = blob + + self._forward() + + # Unpack blobs to extract + outs = {out: self.blobs[out].data for out in set(self.outputs + blobs)} + return outs + + +def _Net_backward(self, diffs=None, **kwargs): + """ + Backward pass: prepare diffs and run the net backward. + + Take + diffs: list of diffs to return in addition to bottom diffs. + kwargs: Keys are output blob names and values are diff ndarrays. + If None, top diffs are taken from forward loss. + + Give + outs: {blob name: diff ndarray} dict. + """ + if diffs is None: + diffs = [] + + if kwargs: + if set(kwargs.keys()) != set(self.outputs): + raise Exception('Top diff arguments do not match net outputs.') + # Set top diffs according to defined shapes and make arrays single and + # C-contiguous as Caffe expects. + for top, diff in kwargs.iteritems(): + if diff.shape[0] != self.blobs[top].num: + raise Exception('Diff is not batch sized') + if diff.ndim != 4: + raise Exception('{} diff is not 4-d'.format(top)) + self.blobs[top].diff[...] = diff + + self._backward() + + # Unpack diffs to extract + outs = {out: self.blobs[out].diff for out in set(self.inputs + diffs)} + return outs + + +def _Net_forward_all(self, blobs=None, **kwargs): + """ + Run net forward in batches. + + Take + blobs: list of blobs to extract as in forward() + kwargs: Keys are input blob names and values are blob ndarrays. + Refer to forward(). + + Give + all_outs: {blob name: list of blobs} dict. + """ + # Collect outputs from batches + all_outs = {out: [] for out in set(self.outputs + (blobs or []))} + for batch in self._batch(kwargs): + outs = self.forward(blobs=blobs, **batch) + for out, out_blob in outs.iteritems(): + all_outs[out].extend(out_blob.copy()) + # Package in ndarray. + for out in all_outs: + all_outs[out] = np.asarray(all_outs[out]) + # Discard padding. + pad = len(all_outs.itervalues().next()) - len(kwargs.itervalues().next()) + if pad: + for out in all_outs: + all_outs[out] = all_outs[out][:-pad] + return all_outs + + +def _Net_forward_backward_all(self, blobs=None, diffs=None, **kwargs): + """ + Run net forward + backward in batches. + + Take + blobs: list of blobs to extract as in forward() + diffs: list of diffs to extract as in backward() + kwargs: Keys are input (for forward) and output (for backward) blob names + and values are ndarrays. Refer to forward() and backward(). + Prefilled variants are called for lack of input or output blobs. + + Give + all_blobs: {blob name: blob ndarray} dict. + all_diffs: {blob name: diff ndarray} dict. + """ + # Batch blobs and diffs. + all_outs = {out: [] for out in set(self.outputs + (blobs or []))} + all_diffs = {diff: [] for diff in set(self.inputs + (diffs or []))} + forward_batches = self._batch({in_: kwargs[in_] + for in_ in self.inputs if in_ in kwargs}) + backward_batches = self._batch({out: kwargs[out] + for out in self.outputs if out in kwargs}) + # Collect outputs from batches (and heed lack of forward/backward batches). + for fb, bb in izip_longest(forward_batches, backward_batches, fillvalue={}): + batch_blobs = self.forward(blobs=blobs, **fb) + batch_diffs = self.backward(diffs=diffs, **bb) + for out, out_blobs in batch_blobs.iteritems(): + all_outs[out].extend(out_blobs) + for diff, out_diffs in batch_diffs.iteritems(): + all_diffs[diff].extend(out_diffs) + # Package in ndarray. + for out, diff in zip(all_outs, all_diffs): + all_outs[out] = np.asarray(all_outs[out]) + all_diffs[diff] = np.asarray(all_diffs[diff]) + # Discard padding at the end and package in ndarray. + pad = len(all_outs.itervalues().next()) - len(kwargs.itervalues().next()) + if pad: + for out, diff in zip(all_outs, all_diffs): + all_outs[out] = all_outs[out][:-pad] + all_diffs[diff] = all_diffs[diff][:-pad] + return all_outs, all_diffs + + +def _Net_set_mean(self, input_, mean_f, mode='elementwise'): + """ + Set the mean to subtract for data centering. + + Take + input_: which input to assign this mean. + mean_f: path to mean .npy + mode: elementwise = use the whole mean (and check dimensions) + channel = channel constant (e.g. mean pixel instead of mean image) + """ + if input_ not in self.inputs: + raise Exception('Input not in {}'.format(self.inputs)) + in_shape = self.blobs[input_].data.shape + mean = np.load(mean_f) + if mode == 'elementwise': + if mean.shape != in_shape[1:]: + # Resize mean (which requires H x W x K input in range [0,1]). + m_min, m_max = mean.min(), mean.max() + normal_mean = (mean - m_min) / (m_max - m_min) + mean = caffe.io.resize_image(normal_mean.transpose((1,2,0)), + in_shape[2:]).transpose((2,0,1)) * (m_max - m_min) + m_min + self.mean[input_] = mean + elif mode == 'channel': + self.mean[input_] = mean.mean(1).mean(1).reshape((in_shape[1], 1, 1)) + else: + raise Exception('Mode not in {}'.format(['elementwise', 'channel'])) + + + +def _Net_set_input_scale(self, input_, scale): + """ + Set the input feature scaling factor s.t. input blob = input * scale. + + Take + input_: which input to assign this scale factor + scale: scale coefficient + """ + if input_ not in self.inputs: + raise Exception('Input not in {}'.format(self.inputs)) + self.input_scale[input_] = scale + + +def _Net_set_channel_swap(self, input_, order): + """ + Set the input channel order for e.g. RGB to BGR conversion + as needed for the reference ImageNet model. + + Take + input_: which input to assign this channel order + order: the order to take the channels. + (2,1,0) maps RGB to BGR for example. + """ + if input_ not in self.inputs: + raise Exception('Input not in {}'.format(self.inputs)) + self.channel_swap[input_] = order + + +def _Net_preprocess(self, input_name, input_): + """ + Format input for Caffe: + - convert to single + - resize to input dimensions (preserving number of channels) + - scale feature + - reorder channels (for instance color to BGR) + - subtract mean + - transpose dimensions to K x H x W + + Take + input_name: name of input blob to preprocess for + input_: (H' x W' x K) ndarray + + Give + caffe_inputs: (K x H x W) ndarray + """ + caffe_in = input_.astype(np.float32) + input_scale = self.input_scale.get(input_name) + channel_order = self.channel_swap.get(input_name) + mean = self.mean.get(input_name) + in_size = self.blobs[input_name].data.shape[2:] + if caffe_in.shape[:2] != in_size: + caffe_in = caffe.io.resize_image(caffe_in, in_size) + if input_scale: + caffe_in *= input_scale + if channel_order: + caffe_in = caffe_in[:, :, channel_order] + caffe_in = caffe_in.transpose((2, 0, 1)) + if mean is not None: + caffe_in -= mean + return caffe_in + + +def _Net_deprocess(self, input_name, input_): + """ + Invert Caffe formatting; see Net.preprocess(). + """ + decaf_in = input_.copy().squeeze() + input_scale = self.input_scale.get(input_name) + channel_order = self.channel_swap.get(input_name) + mean = self.mean.get(input_name) + if mean is not None: + decaf_in += mean + decaf_in = decaf_in.transpose((1,2,0)) + if channel_order: + decaf_in = decaf_in[:, :, channel_order[::-1]] + if input_scale: + decaf_in /= input_scale + return decaf_in + + +def _Net_set_input_arrays(self, data, labels): + """ + Set input arrays of the in-memory MemoryDataLayer. + (Note: this is only for networks declared with the memory data layer.) + """ + if labels.ndim == 1: + labels = np.ascontiguousarray(labels[:, np.newaxis, np.newaxis, + np.newaxis]) + return self._set_input_arrays(data, labels) + + +def _Net_batch(self, blobs): + """ + Batch blob lists according to net's batch size. + + Take + blobs: Keys blob names and values are lists of blobs (of any length). + Naturally, all the lists should have the same length. + + Give (yield) + batch: {blob name: list of blobs} dict for a single batch. + """ + num = len(blobs.itervalues().next()) + batch_size = self.blobs.itervalues().next().num + remainder = num % batch_size + num_batches = num / batch_size + + # Yield full batches. + for b in range(num_batches): + i = b * batch_size + yield {name: blobs[name][i:i + batch_size] for name in blobs} + + # Yield last padded batch, if any. + if remainder > 0: + padded_batch = {} + for name in blobs: + padding = np.zeros((batch_size - remainder,) + + blobs[name].shape[1:]) + padded_batch[name] = np.concatenate([blobs[name][-remainder:], + padding]) + yield padded_batch + + +# Attach methods to Net. +Net.blobs = _Net_blobs +Net.params = _Net_params +Net.forward = _Net_forward +Net.backward = _Net_backward +Net.forward_all = _Net_forward_all +Net.forward_backward_all = _Net_forward_backward_all +Net.set_mean = _Net_set_mean +Net.set_input_scale = _Net_set_input_scale +Net.set_channel_swap = _Net_set_channel_swap +Net.preprocess = _Net_preprocess +Net.deprocess = _Net_deprocess +Net.set_input_arrays = _Net_set_input_arrays +Net._batch = _Net_batch diff --git a/python/classify.py b/python/classify.py new file mode 100755 index 00000000000..fdaeeb01be4 --- /dev/null +++ b/python/classify.py @@ -0,0 +1,120 @@ +#!/usr/bin/env python +""" +classify.py is an out-of-the-box image classifer callable from the command line. + +By default it configures and runs the Caffe reference ImageNet model. +""" +import numpy as np +import os +import sys +import argparse +import glob +import time + +import caffe + + +def main(argv): + pycaffe_dir = os.path.dirname(__file__) + + parser = argparse.ArgumentParser() + # Required arguments: input and output files. + parser.add_argument( + "input_file", + help="Input image, directory, or npy." + ) + parser.add_argument( + "output_file", + help="Output npy filename." + ) + # Optional arguments. + parser.add_argument( + "--model_def", + default=os.path.join(pycaffe_dir, + "../examples/imagenet/imagenet_deploy.prototxt"), + help="Model definition file." + ) + parser.add_argument( + "--pretrained_model", + default=os.path.join(pycaffe_dir, + "../examples/imagenet/caffe_reference_imagenet_model"), + help="Trained model weights file." + ) + parser.add_argument( + "--gpu", + action='store_true', + help="Switch for gpu computation." + ) + parser.add_argument( + "--center_only", + action='store_true', + help="Switch for prediction from center crop alone instead of " + + "averaging predictions across crops (default)." + ) + parser.add_argument( + "--images_dim", + default='256,256', + help="Canonical 'height,width' dimensions of input images." + ) + parser.add_argument( + "--mean_file", + default=os.path.join(pycaffe_dir, + 'caffe/imagenet/ilsvrc_2012_mean.npy'), + help="Data set image mean of H x W x K dimensions (numpy array). " + + "Set to '' for no mean subtraction." + ) + parser.add_argument( + "--input_scale", + type=float, + default=255, + help="Multiply input features by this scale before input to net" + ) + parser.add_argument( + "--channel_swap", + default='2,1,0', + help="Order to permute input channels. The default converts " + + "RGB -> BGR since BGR is the Caffe default by way of OpenCV." + + ) + parser.add_argument( + "--ext", + default='jpg', + help="Image file extension to take as input when a directory " + + "is given as the input file." + ) + args = parser.parse_args() + + image_dims = [int(s) for s in args.images_dim.split(',')] + channel_swap = [int(s) for s in args.channel_swap.split(',')] + + # Make classifier. + classifier = caffe.Classifier(args.model_def, args.pretrained_model, + image_dims=image_dims, gpu=args.gpu, mean_file=args.mean_file, + input_scale=args.input_scale, channel_swap=channel_swap) + + if args.gpu: + print 'GPU mode' + + # Load numpy array (.npy), directory glob (*.jpg), or image file. + args.input_file = os.path.expanduser(args.input_file) + if args.input_file.endswith('npy'): + inputs = np.load(args.input_file) + elif os.path.isdir(args.input_file): + inputs =[caffe.io.load_image(im_f) + for im_f in glob.glob(args.input_file + '/*.' + args.ext)] + else: + inputs = [caffe.io.load_image(args.input_file)] + + print "Classifying %d inputs." % len(inputs) + + # Classify. + start = time.time() + predictions = classifier.predict(inputs, not args.center_only) + print "Done in %.2f s." % (time.time() - start) + + # Save + np.save(args.output_file, predictions) + + +if __name__ == '__main__': + main(sys.argv) diff --git a/python/detect.py b/python/detect.py new file mode 100755 index 00000000000..15418bba5c2 --- /dev/null +++ b/python/detect.py @@ -0,0 +1,151 @@ +#!/usr/bin/env python +""" +detector.py is an out-of-the-box windowed detector +callable from the command line. + +By default it configures and runs the Caffe reference ImageNet model. +Note that this model was trained for image classification and not detection, +and finetuning for detection can be expected to improve results. + +The selective_search_ijcv_with_python code required for the selective search +proposal mode is available at + https://github.com/sergeyk/selective_search_ijcv_with_python + +TODO: +- batch up image filenames as well: don't want to load all of them into memory +- come up with a batching scheme that preserved order / keeps a unique ID +""" +import numpy as np +import pandas as pd +import os +import argparse +import time + +import caffe + +CROP_MODES = ['list', 'selective_search'] +COORD_COLS = ['ymin', 'xmin', 'ymax', 'xmax'] + + +def main(argv): + pycaffe_dir = os.path.dirname(__file__) + + parser = argparse.ArgumentParser() + # Required arguments: input and output. + parser.add_argument( + "input_file", + help="Input txt/csv filename. If .txt, must be list of filenames.\ + If .csv, must be comma-separated file with header\ + 'filename, xmin, ymin, xmax, ymax'" + ) + parser.add_argument( + "output_file", + help="Output h5/csv filename. Format depends on extension." + ) + # Optional arguments. + parser.add_argument( + "--model_def", + default=os.path.join(pycaffe_dir, + "../examples/imagenet/imagenet_deploy.prototxt"), + help="Model definition file." + ) + parser.add_argument( + "--pretrained_model", + default=os.path.join(pycaffe_dir, + "../examples/imagenet/caffe_reference_imagenet_model"), + help="Trained model weights file." + ) + parser.add_argument( + "--crop_mode", + default="center_only", + choices=CROP_MODES, + help="Image crop mode" + ) + parser.add_argument( + "--gpu", + action='store_true', + help="Switch for gpu computation." + ) + parser.add_argument( + "--mean_file", + default=os.path.join(pycaffe_dir, + 'caffe/imagenet/ilsvrc_2012_mean.npy'), + help="Data set image mean of H x W x K dimensions (numpy array). " + + "Set to '' for no mean subtraction." + ) + parser.add_argument( + "--input_scale", + type=float, + default=255, + help="Multiply input features by this scale before input to net" + ) + parser.add_argument( + "--channel_swap", + default='2,1,0', + help="Order to permute input channels. The default converts " + + "RGB -> BGR since BGR is the Caffe default by way of OpenCV." + + ) + args = parser.parse_args() + + channel_swap = [int(s) for s in args.channel_swap.split(',')] + + # Make detector. + detector = caffe.Detector(args.model_def, args.pretrained_model, + gpu=args.gpu, mean_file=args.mean_file, + input_scale=args.input_scale, channel_swap=channel_swap) + + if args.gpu: + print 'GPU mode' + + # Load input. + t = time.time() + print('Loading input...') + if args.input_file.lower().endswith('txt'): + with open(args.input_file) as f: + inputs = [_.strip() for _ in f.readlines()] + elif args.input_file.lower().endswith('csv'): + inputs = pd.read_csv(args.input_file, sep=',', dtype={'filename': str}) + inputs.set_index('filename', inplace=True) + else: + raise Exception("Unknown input file type: not in txt or csv.") + + # Detect. + if args.crop_mode == 'list': + # Unpack sequence of (image filename, windows). + images_windows = ( + (ix, inputs.iloc[np.where(inputs.index == ix)][COORD_COLS].values) + for ix in inputs.index.unique() + ) + detections = detector.detect_windows(images_windows) + else: + detections = detector.detect_selective_search(inputs) + print("Processed {} windows in {:.3f} s.".format(len(detections), + time.time() - t)) + + # Collect into dataframe with labeled fields. + df = pd.DataFrame(detections) + df.set_index('filename', inplace=True) + df[COORD_COLS] = pd.DataFrame( + data=np.vstack(df['window']), index=df.index, columns=COORD_COLS) + del(df['window']) + + # Save results. + t = time.time() + if args.output_file.lower().endswith('csv'): + # csv + # Enumerate the class probabilities. + class_cols = ['class{}'.format(x) for x in range(NUM_OUTPUT)] + df[class_cols] = pd.DataFrame( + data=np.vstack(df['feat']), index=df.index, columns=class_cols) + df.to_csv(args.output_file, cols=COORD_COLS + class_cols) + else: + # h5 + df.to_hdf(args.output_file, 'df', mode='w') + print("Saved to {} in {:.3f} s.".format(args.output_file, + time.time() - t)) + + +if __name__ == "__main__": + import sys + main(sys.argv) diff --git a/python/draw_net.py b/python/draw_net.py new file mode 100755 index 00000000000..cbea5d9ff4e --- /dev/null +++ b/python/draw_net.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python +""" +Draw a graph of the net architecture. +""" +import os +from google.protobuf import text_format + +import caffe +from caffe.proto import caffe_pb2 + + +def main(argv): + if len(argv) != 3: + print 'Usage: %s input_net_proto_file output_image_file' % \ + os.path.basename(sys.argv[0]) + else: + net = caffe_pb2.NetParameter() + text_format.Merge(open(sys.argv[1]).read(), net) + print 'Drawing net to %s' % sys.argv[2] + draw_net_to_file(net, sys.argv[2]) + + +if __name__ == '__main__': + import sys + main(sys.argv) diff --git a/scripts/cpp_lint.py b/scripts/cpp_lint.py index f7898d8f764..76eee4b2dbe 100755 --- a/scripts/cpp_lint.py +++ b/scripts/cpp_lint.py @@ -154,6 +154,7 @@ 'build/namespaces', 'build/printf_format', 'build/storage_class', + 'caffe/random_fn', 'legal/copyright', 'readability/alt_tokens', 'readability/braces', @@ -444,6 +445,9 @@ # on which those errors are expected and should be suppressed. _error_suppressions = {} +# Finds Copyright. +_RE_COPYRIGHT = re.compile(r'Copyright \d\d\d\d BVLC and contributors.') + # The root directory used for deriving header guard CPP variable. # This is set by --root flag. _root = None @@ -1370,11 +1374,11 @@ def CheckForCopyright(filename, lines, error): # We'll say it should occur by line 10. Don't forget there's a # dummy line at the front. for line in xrange(1, min(len(lines), 11)): - if re.search(r'Copyright', lines[line], re.I): break + if _RE_COPYRIGHT.search(lines[line], re.I): break else: # means no copyright line was found error(filename, 0, 'legal/copyright', 5, - 'No copyright message found. ' - 'You should have a line: "Copyright [year] "') + 'BVLC copyright message not found. ' + 'You should have a line: "Copyright [year] BVLC and contributors."') def GetHeaderGuardCPPVariable(filename): @@ -1557,6 +1561,38 @@ def CheckForMultilineCommentsAndStrings(filename, clean_lines, linenum, error): 'Use C++11 raw strings or concatenation instead.') +c_random_function_list = ( + 'rand(', + 'rand_r(', + 'random(', + ) + +def CheckCaffeRandom(filename, clean_lines, linenum, error): + """Checks for calls to C random functions (rand, rand_r, random, ...). + + Caffe code should (almost) always use the caffe_rng_* functions rather + than these, as the internal state of these C functions is independent of the + native Caffe RNG system which should produce deterministic results for a + fixed Caffe seed set using Caffe::set_random_seed(...). + + Args: + filename: The name of the current file. + clean_lines: A CleansedLines instance containing the file. + linenum: The number of the line to check. + error: The function to call with any errors found. + """ + line = clean_lines.elided[linenum] + for function in c_random_function_list: + ix = line.find(function) + # Comparisons made explicit for clarity -- pylint: disable=g-explicit-bool-comparison + if ix >= 0 and (ix == 0 or (not line[ix - 1].isalnum() and + line[ix - 1] not in ('_', '.', '>'))): + error(filename, linenum, 'caffe/random_fn', 2, + 'Use caffe_rng_rand() (or other caffe_rng_* function) instead of ' + + function + + ') to ensure results are deterministic for a fixed Caffe seed.') + + threading_list = ( ('asctime(', 'asctime_r('), ('ctime(', 'ctime_r('), @@ -1567,7 +1603,6 @@ def CheckForMultilineCommentsAndStrings(filename, clean_lines, linenum, error): ('getpwuid(', 'getpwuid_r('), ('gmtime(', 'gmtime_r('), ('localtime(', 'localtime_r('), - ('rand(', 'rand_r('), ('strtok(', 'strtok_r('), ('ttyname(', 'ttyname_r('), ) @@ -4527,6 +4562,7 @@ def ProcessLine(filename, file_extension, clean_lines, line, CheckForNonStandardConstructs(filename, clean_lines, line, nesting_state, error) CheckVlogArguments(filename, clean_lines, line, error) + CheckCaffeRandom(filename, clean_lines, line, error) CheckPosixThreading(filename, clean_lines, line, error) CheckInvalidIncrement(filename, clean_lines, line, error) CheckMakePairUsesDeduction(filename, clean_lines, line, error) diff --git a/src/caffe/blob.cpp b/src/caffe/blob.cpp index 68380367310..444e9cf4009 100644 --- a/src/caffe/blob.cpp +++ b/src/caffe/blob.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -31,6 +31,11 @@ void Blob::Reshape(const int num, const int channels, const int height, } } +template +void Blob::ReshapeLike(const Blob& other) { + Reshape(other.num(), other.channels(), other.height(), other.width()); +} + template Blob::Blob(const int num, const int channels, const int height, const int width) { @@ -43,6 +48,12 @@ const Dtype* Blob::cpu_data() const { return (const Dtype*)data_->cpu_data(); } +template +void Blob::set_cpu_data(Dtype* data) { + CHECK(data); + data_->set_cpu_data(data); +} + template const Dtype* Blob::gpu_data() const { CHECK(data_); @@ -85,6 +96,18 @@ Dtype* Blob::mutable_gpu_diff() { return reinterpret_cast(diff_->mutable_gpu_data()); } +template +void Blob::ShareData(const Blob& other) { + CHECK_EQ(count_, other.count()); + data_ = other.data(); +} + +template +void Blob::ShareDiff(const Blob& other) { + CHECK_EQ(count_, other.count()); + diff_ = other.diff(); +} + template void Blob::Update() { // We will perform update based on where the data is located. diff --git a/src/caffe/common.cpp b/src/caffe/common.cpp index f47173afcae..7edb3a455ac 100644 --- a/src/caffe/common.cpp +++ b/src/caffe/common.cpp @@ -1,15 +1,17 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include #include "caffe/common.hpp" +#include "caffe/util/rng.hpp" namespace caffe { shared_ptr Caffe::singleton_; +// curand seeding int64_t cluster_seedgen(void) { int64_t s, seed, pid; pid = getpid(); @@ -21,7 +23,8 @@ int64_t cluster_seedgen(void) { Caffe::Caffe() : mode_(Caffe::CPU), phase_(Caffe::TRAIN), cublas_handle_(NULL), - curand_generator_(NULL), vsl_stream_(NULL) { + curand_generator_(NULL), + random_generator_() { // Try to create a cublas handler, and report an error if failed (but we will // keep the program running as one might just want to run CPU code). if (cublasCreate(&cublas_handle_) != CUBLAS_STATUS_SUCCESS) { @@ -34,13 +37,6 @@ Caffe::Caffe() != CURAND_STATUS_SUCCESS) { LOG(ERROR) << "Cannot create Curand generator. Curand won't be available."; } - // Try to create a vsl stream. This should almost always work, but we will - // check it anyway. - if (vslNewStream(&vsl_stream_, VSL_BRNG_MT19937, - cluster_seedgen()) != VSL_STATUS_OK) { - LOG(ERROR) << "Cannot create vsl stream. VSL random number generator " - << "won't be available."; - } } Caffe::~Caffe() { @@ -48,7 +44,6 @@ Caffe::~Caffe() { if (curand_generator_) { CURAND_CHECK(curandDestroyGenerator(curand_generator_)); } - if (vsl_stream_) VSL_CHECK(vslDeleteStream(&vsl_stream_)); } void Caffe::set_random_seed(const unsigned int seed) { @@ -64,9 +59,8 @@ void Caffe::set_random_seed(const unsigned int seed) { } else { LOG(ERROR) << "Curand not available. Skipping setting the curand seed."; } - // VSL seed - VSL_CHECK(vslDeleteStream(&(Get().vsl_stream_))); - VSL_CHECK(vslNewStream(&(Get().vsl_stream_), VSL_BRNG_MT19937, seed)); + // RNG seed + Get().random_generator_.reset(new RNG(seed)); } void Caffe::SetDevice(const int device_id) { @@ -120,4 +114,83 @@ void Caffe::DeviceQuery() { return; } + +class Caffe::RNG::Generator { + public: + Generator() : rng_(new caffe::rng_t(cluster_seedgen())) {} + explicit Generator(unsigned int seed) : rng_(new caffe::rng_t(seed)) {} + caffe::rng_t* rng() { return rng_.get(); } + private: + shared_ptr rng_; +}; + +Caffe::RNG::RNG() : generator_(new Generator) { } + +Caffe::RNG::RNG(unsigned int seed) : generator_(new Generator(seed)) { } + +Caffe::RNG& Caffe::RNG::operator=(const RNG& other) { + generator_.reset(other.generator_.get()); + return *this; +} + +void* Caffe::RNG::generator() { + return static_cast(generator_->rng()); +} + +const char* cublasGetErrorString(cublasStatus_t error) { + switch (error) { + case CUBLAS_STATUS_SUCCESS: + return "CUBLAS_STATUS_SUCCESS"; + case CUBLAS_STATUS_NOT_INITIALIZED: + return "CUBLAS_STATUS_NOT_INITIALIZED"; + case CUBLAS_STATUS_ALLOC_FAILED: + return "CUBLAS_STATUS_ALLOC_FAILED"; + case CUBLAS_STATUS_INVALID_VALUE: + return "CUBLAS_STATUS_INVALID_VALUE"; + case CUBLAS_STATUS_ARCH_MISMATCH: + return "CUBLAS_STATUS_ARCH_MISMATCH"; + case CUBLAS_STATUS_MAPPING_ERROR: + return "CUBLAS_STATUS_MAPPING_ERROR"; + case CUBLAS_STATUS_EXECUTION_FAILED: + return "CUBLAS_STATUS_EXECUTION_FAILED"; + case CUBLAS_STATUS_INTERNAL_ERROR: + return "CUBLAS_STATUS_INTERNAL_ERROR"; + case CUBLAS_STATUS_NOT_SUPPORTED: + return "CUBLAS_STATUS_NOT_SUPPORTED"; + } + return "Unknown cublas status"; +} + +const char* curandGetErrorString(curandStatus_t error) { + switch (error) { + case CURAND_STATUS_SUCCESS: + return "CURAND_STATUS_SUCCESS"; + case CURAND_STATUS_VERSION_MISMATCH: + return "CURAND_STATUS_VERSION_MISMATCH"; + case CURAND_STATUS_NOT_INITIALIZED: + return "CURAND_STATUS_NOT_INITIALIZED"; + case CURAND_STATUS_ALLOCATION_FAILED: + return "CURAND_STATUS_ALLOCATION_FAILED"; + case CURAND_STATUS_TYPE_ERROR: + return "CURAND_STATUS_TYPE_ERROR"; + case CURAND_STATUS_OUT_OF_RANGE: + return "CURAND_STATUS_OUT_OF_RANGE"; + case CURAND_STATUS_LENGTH_NOT_MULTIPLE: + return "CURAND_STATUS_LENGTH_NOT_MULTIPLE"; + case CURAND_STATUS_DOUBLE_PRECISION_REQUIRED: + return "CURAND_STATUS_DOUBLE_PRECISION_REQUIRED"; + case CURAND_STATUS_LAUNCH_FAILURE: + return "CURAND_STATUS_LAUNCH_FAILURE"; + case CURAND_STATUS_PREEXISTING_FAILURE: + return "CURAND_STATUS_PREEXISTING_FAILURE"; + case CURAND_STATUS_INITIALIZATION_FAILED: + return "CURAND_STATUS_INITIALIZATION_FAILED"; + case CURAND_STATUS_ARCH_MISMATCH: + return "CURAND_STATUS_ARCH_MISMATCH"; + case CURAND_STATUS_INTERNAL_ERROR: + return "CURAND_STATUS_INTERNAL_ERROR"; + } + return "Unknown curand status"; +} + } // namespace caffe diff --git a/src/caffe/layer_factory.cpp b/src/caffe/layer_factory.cpp index 54e90d21034..2991c81f559 100644 --- a/src/caffe/layer_factory.cpp +++ b/src/caffe/layer_factory.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #ifndef CAFFE_LAYER_FACTORY_HPP_ #define CAFFE_LAYER_FACTORY_HPP_ @@ -9,6 +9,7 @@ #include "caffe/vision_layers.hpp" #include "caffe/proto/caffe.pb.h" +using std::string; namespace caffe { @@ -18,57 +19,71 @@ namespace caffe { // but we will leave it this way for now. template Layer* GetLayer(const LayerParameter& param) { - const std::string& type = param.type(); - if (type == "accuracy") { + const string& name = param.name(); + const LayerParameter_LayerType& type = param.type(); + switch (type) { + case LayerParameter_LayerType_ACCURACY: return new AccuracyLayer(param); - } else if (type == "bnll") { + case LayerParameter_LayerType_BNLL: return new BNLLLayer(param); - } else if (type == "concat") { + case LayerParameter_LayerType_CONCAT: return new ConcatLayer(param); - } else if (type == "conv") { + case LayerParameter_LayerType_CONVOLUTION: return new ConvolutionLayer(param); - } else if (type == "data") { + case LayerParameter_LayerType_DATA: return new DataLayer(param); - } else if (type == "dropout") { + case LayerParameter_LayerType_DROPOUT: return new DropoutLayer(param); - } else if (type == "euclidean_loss") { + case LayerParameter_LayerType_EUCLIDEAN_LOSS: return new EuclideanLossLayer(param); - } else if (type == "flatten") { + case LayerParameter_LayerType_ELTWISE_PRODUCT: + return new EltwiseProductLayer(param); + case LayerParameter_LayerType_FLATTEN: return new FlattenLayer(param); - } else if (type == "hdf5_data") { + case LayerParameter_LayerType_HDF5_DATA: return new HDF5DataLayer(param); - } else if (type == "images") { - return new ImagesLayer(param); - } else if (type == "im2col") { + case LayerParameter_LayerType_HDF5_OUTPUT: + return new HDF5OutputLayer(param); + case LayerParameter_LayerType_HINGE_LOSS: + return new HingeLossLayer(param); + case LayerParameter_LayerType_IMAGE_DATA: + return new ImageDataLayer(param); + case LayerParameter_LayerType_IM2COL: return new Im2colLayer(param); - } else if (type == "infogain_loss") { + case LayerParameter_LayerType_INFOGAIN_LOSS: return new InfogainLossLayer(param); - } else if (type == "innerproduct") { + case LayerParameter_LayerType_INNER_PRODUCT: return new InnerProductLayer(param); - } else if (type == "lrn") { + case LayerParameter_LayerType_LRN: return new LRNLayer(param); - } else if (type == "multinomial_logistic_loss") { + case LayerParameter_LayerType_MEMORY_DATA: + return new MemoryDataLayer(param); + case LayerParameter_LayerType_MULTINOMIAL_LOGISTIC_LOSS: return new MultinomialLogisticLossLayer(param); - } else if (type == "padding") { - return new PaddingLayer(param); - } else if (type == "pool") { + case LayerParameter_LayerType_POOLING: return new PoolingLayer(param); - } else if (type == "relu") { + case LayerParameter_LayerType_POWER: + return new PowerLayer(param); + case LayerParameter_LayerType_RELU: return new ReLULayer(param); - } else if (type == "sigmoid") { + case LayerParameter_LayerType_SIGMOID: return new SigmoidLayer(param); - } else if (type == "softmax") { + case LayerParameter_LayerType_SIGMOID_CROSS_ENTROPY_LOSS: + return new SigmoidCrossEntropyLossLayer(param); + case LayerParameter_LayerType_SOFTMAX: return new SoftmaxLayer(param); - } else if (type == "softmax_loss") { + case LayerParameter_LayerType_SOFTMAX_LOSS: return new SoftmaxWithLossLayer(param); - } else if (type == "split") { + case LayerParameter_LayerType_SPLIT: return new SplitLayer(param); - } else if (type == "tanh") { + case LayerParameter_LayerType_TANH: return new TanHLayer(param); - } else if (type == "window_data") { + case LayerParameter_LayerType_WINDOW_DATA: return new WindowDataLayer(param); - } else { - LOG(FATAL) << "Unknown layer name: " << type; + case LayerParameter_LayerType_NONE: + LOG(FATAL) << "Layer " << name << " has unspecified type."; + default: + LOG(FATAL) << "Layer " << name << " has unknown type " << type; } // just to suppress old compiler warnings. return (Layer*)(NULL); diff --git a/src/caffe/layers/accuracy_layer.cpp b/src/caffe/layers/accuracy_layer.cpp new file mode 100644 index 00000000000..3e671704465 --- /dev/null +++ b/src/caffe/layers/accuracy_layer.cpp @@ -0,0 +1,65 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include +#include +#include + +#include "caffe/layer.hpp" +#include "caffe/vision_layers.hpp" +#include "caffe/util/math_functions.hpp" +#include "caffe/util/io.hpp" + +using std::max; + +namespace caffe { + +template +void AccuracyLayer::SetUp( + const vector*>& bottom, vector*>* top) { + CHECK_EQ(bottom.size(), 2) << "Accuracy Layer takes two blobs as input."; + CHECK_EQ(top->size(), 1) << "Accuracy Layer takes 1 output."; + CHECK_EQ(bottom[0]->num(), bottom[1]->num()) + << "The data and label should have the same number."; + CHECK_EQ(bottom[1]->channels(), 1); + CHECK_EQ(bottom[1]->height(), 1); + CHECK_EQ(bottom[1]->width(), 1); + (*top)[0]->Reshape(1, 2, 1, 1); +} + +template +Dtype AccuracyLayer::Forward_cpu(const vector*>& bottom, + vector*>* top) { + Dtype accuracy = 0; + Dtype logprob = 0; + const Dtype* bottom_data = bottom[0]->cpu_data(); + const Dtype* bottom_label = bottom[1]->cpu_data(); + int num = bottom[0]->num(); + int dim = bottom[0]->count() / bottom[0]->num(); + for (int i = 0; i < num; ++i) { + // Accuracy + Dtype maxval = -FLT_MAX; + int max_id = 0; + for (int j = 0; j < dim; ++j) { + if (bottom_data[i * dim + j] > maxval) { + maxval = bottom_data[i * dim + j]; + max_id = j; + } + } + if (max_id == static_cast(bottom_label[i])) { + ++accuracy; + } + Dtype prob = max(bottom_data[i * dim + static_cast(bottom_label[i])], + Dtype(kLOG_THRESHOLD)); + logprob -= log(prob); + } + // LOG(INFO) << "Accuracy: " << accuracy; + (*top)[0]->mutable_cpu_data()[0] = accuracy / num; + (*top)[0]->mutable_cpu_data()[1] = logprob / num; + // Accuracy layer should not be used as a loss function. + return Dtype(0); +} + +INSTANTIATE_CLASS(AccuracyLayer); + +} // namespace caffe diff --git a/src/caffe/layers/bnll_layer.cpp b/src/caffe/layers/bnll_layer.cpp index b769a35212a..d08adc49eef 100644 --- a/src/caffe/layers/bnll_layer.cpp +++ b/src/caffe/layers/bnll_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -13,7 +13,7 @@ namespace caffe { const float kBNLL_THRESHOLD = 50.; template -void BNLLLayer::Forward_cpu(const vector*>& bottom, +Dtype BNLLLayer::Forward_cpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->cpu_data(); Dtype* top_data = (*top)[0]->mutable_cpu_data(); @@ -23,10 +23,11 @@ void BNLLLayer::Forward_cpu(const vector*>& bottom, bottom_data[i] + log(1. + exp(-bottom_data[i])) : log(1. + exp(bottom_data[i])); } + return Dtype(0); } template -Dtype BNLLLayer::Backward_cpu(const vector*>& top, +void BNLLLayer::Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { if (propagate_down) { @@ -40,7 +41,6 @@ Dtype BNLLLayer::Backward_cpu(const vector*>& top, bottom_diff[i] = top_diff[i] * expval / (expval + 1.); } } - return Dtype(0); } diff --git a/src/caffe/layers/bnll_layer.cu b/src/caffe/layers/bnll_layer.cu index 1fd200894c3..75bea00e993 100644 --- a/src/caffe/layers/bnll_layer.cu +++ b/src/caffe/layers/bnll_layer.cu @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -22,7 +22,7 @@ __global__ void BNLLForward(const int n, const Dtype* in, Dtype* out) { } template -void BNLLLayer::Forward_gpu(const vector*>& bottom, +Dtype BNLLLayer::Forward_gpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->gpu_data(); Dtype* top_data = (*top)[0]->mutable_gpu_data(); @@ -31,6 +31,7 @@ void BNLLLayer::Forward_gpu(const vector*>& bottom, BNLLForward<<>>( count, bottom_data, top_data); CUDA_POST_KERNEL_CHECK; + return Dtype(0); } template @@ -43,7 +44,7 @@ __global__ void BNLLBackward(const int n, const Dtype* in_diff, } template -Dtype BNLLLayer::Backward_gpu(const vector*>& top, +void BNLLLayer::Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { if (propagate_down) { @@ -56,7 +57,6 @@ Dtype BNLLLayer::Backward_gpu(const vector*>& top, count, top_diff, bottom_data, bottom_diff); CUDA_POST_KERNEL_CHECK; } - return Dtype(0); } INSTANTIATE_CLASS(BNLLLayer); diff --git a/src/caffe/layers/concat_layer.cpp b/src/caffe/layers/concat_layer.cpp index dc949c14010..8036bdab675 100644 --- a/src/caffe/layers/concat_layer.cpp +++ b/src/caffe/layers/concat_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2014 Sergio Guadarrama +// Copyright 2014 BVLC and contributors. #include @@ -12,37 +12,40 @@ template void ConcatLayer::SetUp(const vector*>& bottom, vector*>* top) { CHECK_GT(bottom.size(), 1) << - "Concat Layer takes at least two blobs as input."; + "ConcatLayer takes at least two blobs as input."; CHECK_EQ(top->size(), 1) << - "Concat Layer takes a single blob as output."; - concat_dim_ = this->layer_param_.concat_dim(); - CHECK_GE(concat_dim_, 0) << "concat_dim should be >= 0"; + "ConcatLayer takes a single blob as output."; + + concat_dim_ = this->layer_param_.concat_param().concat_dim(); + CHECK_GE(concat_dim_, 0) << + "concat_dim should be >= 0"; CHECK_LE(concat_dim_, 1) << "For now concat_dim <=1, it can only concat num and channels"; - // Intialize with the first blob - COUNT_ = bottom[0]->count(); - NUM_ = bottom[0]->num(); - CHANNELS_ = bottom[0]->channels(); - HEIGHT_ = bottom[0]->height(); - WIDTH_ = bottom[0]->width(); + + // Initialize with the first blob. + count_ = bottom[0]->count(); + num_ = bottom[0]->num(); + channels_ = bottom[0]->channels(); + height_ = bottom[0]->height(); + width_ = bottom[0]->width(); for (int i = 1; i < bottom.size(); ++i) { - COUNT_ += bottom[i]->count(); + count_ += bottom[i]->count(); if (concat_dim_== 0) { - NUM_ += bottom[i]->num(); + num_ += bottom[i]->num(); } else if (concat_dim_ == 1) { - CHANNELS_ += bottom[i]->channels(); + channels_ += bottom[i]->channels(); } else if (concat_dim_ == 2) { - HEIGHT_ += bottom[i]->height(); + height_ += bottom[i]->height(); } else if (concat_dim_ == 3) { - WIDTH_ += bottom[i]->width(); + width_ += bottom[i]->width(); } } - (*top)[0]->Reshape(NUM_, CHANNELS_, HEIGHT_, WIDTH_); - CHECK_EQ(COUNT_, (*top)[0]->count()); + (*top)[0]->Reshape(num_, channels_, height_, width_); + CHECK_EQ(count_, (*top)[0]->count()); } template -void ConcatLayer::Forward_cpu(const vector*>& bottom, +Dtype ConcatLayer::Forward_cpu(const vector*>& bottom, vector*>* top) { Dtype* top_data = (*top)[0]->mutable_cpu_data(); if (concat_dim_== 0) { @@ -59,20 +62,18 @@ void ConcatLayer::Forward_cpu(const vector*>& bottom, const Dtype* bottom_data = bottom[i]->cpu_data(); int num_elem = bottom[i]->channels()*bottom[i]->height()*bottom[i]->width(); - for (int n = 0; n < NUM_; ++n) { + for (int n = 0; n < num_; ++n) { caffe_copy(num_elem, bottom_data+bottom[i]->offset(n), top_data+(*top)[0]->offset(n, offset_channel)); } offset_channel += bottom[i]->channels(); - } - } else { - LOG(FATAL) << "concat_dim along dim" << concat_dim_ << - " not implemented yet"; + } // concat_dim_ is guaranteed to be 0 or 1 by SetUp. } + return Dtype(0.); } template -Dtype ConcatLayer::Backward_cpu(const vector*>& top, +void ConcatLayer::Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { const Dtype* top_diff = top[0]->cpu_diff(); if (concat_dim_ == 0) { @@ -90,17 +91,13 @@ Dtype ConcatLayer::Backward_cpu(const vector*>& top, Blob* blob = (*bottom)[i]; Dtype* bottom_diff = blob->mutable_cpu_diff(); int num_elem = blob->channels()*blob->height()*blob->width(); - for (int n = 0; n < NUM_; ++n) { + for (int n = 0; n < num_; ++n) { caffe_copy(num_elem, top_diff+top[0]->offset(n, offset_channel), bottom_diff+blob->offset(n)); } offset_channel += blob->channels(); } - } else { - LOG(FATAL) << "concat_dim along dim" << concat_dim_ << - " not implemented yet"; - } - return Dtype(0.); + } // concat_dim_ is guaranteed to be 0 or 1 by SetUp. } INSTANTIATE_CLASS(ConcatLayer); diff --git a/src/caffe/layers/concat_layer.cu b/src/caffe/layers/concat_layer.cu index 616a5e61683..2820bf0dfdf 100644 --- a/src/caffe/layers/concat_layer.cu +++ b/src/caffe/layers/concat_layer.cu @@ -1,4 +1,4 @@ -// Copyright 2014 Sergio Guadarrama +// Copyright 2014 BVLC and contributors. #include @@ -9,7 +9,7 @@ namespace caffe { template -void ConcatLayer::Forward_gpu(const vector*>& bottom, +Dtype ConcatLayer::Forward_gpu(const vector*>& bottom, vector*>* top) { Dtype* top_data = (*top)[0]->mutable_gpu_data(); if (concat_dim_ == 0) { @@ -17,7 +17,7 @@ void ConcatLayer::Forward_gpu(const vector*>& bottom, for (int i = 0; i < bottom.size(); ++i) { const Dtype* bottom_data = bottom[i]->gpu_data(); caffe_gpu_copy(bottom[i]->count(), bottom_data, - top_data+(*top)[0]->offset(offset_num)); + top_data + (*top)[0]->offset(offset_num)); offset_num += bottom[i]->num(); } } else if (concat_dim_ == 1) { @@ -25,10 +25,10 @@ void ConcatLayer::Forward_gpu(const vector*>& bottom, for (int i = 0; i < bottom.size(); ++i) { const Dtype* bottom_data = bottom[i]->gpu_data(); int num_elem = - bottom[i]->channels()*bottom[i]->height()*bottom[i]->width(); - for (int n = 0; n < NUM_; ++n) { + bottom[i]->channels() * bottom[i]->height() * bottom[i]->width(); + for (int n = 0; n < num_; ++n) { caffe_gpu_copy(num_elem, bottom_data+bottom[i]->offset(n), - top_data+(*top)[0]->offset(n, offset_channel)); + top_data + (*top)[0]->offset(n, offset_channel)); } offset_channel += bottom[i]->channels(); } @@ -36,10 +36,11 @@ void ConcatLayer::Forward_gpu(const vector*>& bottom, LOG(FATAL) << "concat_dim along dim" << concat_dim_ << " not implemented yet"; } + return Dtype(0.); } template -Dtype ConcatLayer::Backward_gpu(const vector*>& top, +void ConcatLayer::Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { const Dtype* top_diff = top[0]->gpu_diff(); if (concat_dim_ == 0) { @@ -48,7 +49,7 @@ Dtype ConcatLayer::Backward_gpu(const vector*>& top, Blob* blob = (*bottom)[i]; Dtype* bottom_diff = blob->mutable_gpu_diff(); caffe_gpu_copy(blob->count(), - top_diff+top[0]->offset(offset_num), bottom_diff); + top_diff + top[0]->offset(offset_num), bottom_diff); offset_num += blob->num(); } } else if (concat_dim_ == 1) { @@ -57,9 +58,9 @@ Dtype ConcatLayer::Backward_gpu(const vector*>& top, Blob* blob = (*bottom)[i]; Dtype* bottom_diff = blob->mutable_gpu_diff(); int num_elem = blob->channels()*blob->height()*blob->width(); - for (int n = 0; n < NUM_; ++n) { - caffe_gpu_copy(num_elem, top_diff+top[0]->offset(n, offset_channel), - bottom_diff+blob->offset(n)); + for (int n = 0; n < num_; ++n) { + caffe_gpu_copy(num_elem, top_diff + top[0]->offset(n, offset_channel), + bottom_diff + blob->offset(n)); } offset_channel += blob->channels(); } @@ -67,7 +68,6 @@ Dtype ConcatLayer::Backward_gpu(const vector*>& top, LOG(FATAL) << "concat_dim along dim" << concat_dim_ << " not implemented yet"; } - return Dtype(0.); } INSTANTIATE_CLASS(ConcatLayer); diff --git a/src/caffe/layers/conv_layer.cpp b/src/caffe/layers/conv_layer.cpp index 64a652a8e1d..55966b54bde 100644 --- a/src/caffe/layers/conv_layer.cpp +++ b/src/caffe/layers/conv_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include @@ -15,57 +15,58 @@ void ConvolutionLayer::SetUp(const vector*>& bottom, vector*>* top) { CHECK_EQ(bottom.size(), 1) << "Conv Layer takes a single blob as input."; CHECK_EQ(top->size(), 1) << "Conv Layer takes a single blob as output."; - KSIZE_ = this->layer_param_.kernelsize(); - STRIDE_ = this->layer_param_.stride(); - GROUP_ = this->layer_param_.group(); - PAD_ = this->layer_param_.pad(); - NUM_ = bottom[0]->num(); - CHANNELS_ = bottom[0]->channels(); - HEIGHT_ = bottom[0]->height(); - WIDTH_ = bottom[0]->width(); - NUM_OUTPUT_ = this->layer_param_.num_output(); - CHECK_GT(NUM_OUTPUT_, 0); - CHECK_EQ(CHANNELS_ % GROUP_, 0); + kernel_size_ = this->layer_param_.convolution_param().kernel_size(); + stride_ = this->layer_param_.convolution_param().stride(); + group_ = this->layer_param_.convolution_param().group(); + pad_ = this->layer_param_.convolution_param().pad(); + num_ = bottom[0]->num(); + channels_ = bottom[0]->channels(); + height_ = bottom[0]->height(); + width_ = bottom[0]->width(); + num_output_ = this->layer_param_.convolution_param().num_output(); + CHECK_GT(num_output_, 0); + CHECK_EQ(channels_ % group_, 0); // The im2col result buffer would only hold one image at a time to avoid // overly large memory usage. - int height_out = (HEIGHT_ + 2 * PAD_ - KSIZE_) / STRIDE_ + 1; - int width_out = (WIDTH_ + 2 * PAD_ - KSIZE_) / STRIDE_ + 1; - col_buffer_.Reshape(1, CHANNELS_ * KSIZE_ * KSIZE_, height_out, width_out); + int height_out = (height_ + 2 * pad_ - kernel_size_) / stride_ + 1; + int width_out = (width_ + 2 * pad_ - kernel_size_) / stride_ + 1; + col_buffer_.Reshape( + 1, channels_ * kernel_size_ * kernel_size_, height_out, width_out); // Set the parameters - CHECK_EQ(NUM_OUTPUT_ % GROUP_, 0) + CHECK_EQ(num_output_ % group_, 0) << "Number of output should be multiples of group."; - biasterm_ = this->layer_param_.biasterm(); + bias_term_ = this->layer_param_.convolution_param().bias_term(); // Figure out the dimensions for individual gemms. - M_ = NUM_OUTPUT_ / GROUP_; - K_ = CHANNELS_ * KSIZE_ * KSIZE_ / GROUP_; + M_ = num_output_ / group_; + K_ = channels_ * kernel_size_ * kernel_size_ / group_; N_ = height_out * width_out; - (*top)[0]->Reshape(bottom[0]->num(), NUM_OUTPUT_, height_out, width_out); + (*top)[0]->Reshape(bottom[0]->num(), num_output_, height_out, width_out); // Check if we need to set up the weights if (this->blobs_.size() > 0) { LOG(INFO) << "Skipping parameter initialization"; } else { - if (biasterm_) { + if (bias_term_) { this->blobs_.resize(2); } else { this->blobs_.resize(1); } // Intialize the weight - this->blobs_[0].reset( - new Blob(NUM_OUTPUT_, CHANNELS_ / GROUP_, KSIZE_, KSIZE_)); + this->blobs_[0].reset(new Blob( + num_output_, channels_ / group_, kernel_size_, kernel_size_)); // fill the weights - shared_ptr > weight_filler( - GetFiller(this->layer_param_.weight_filler())); + shared_ptr > weight_filler(GetFiller( + this->layer_param_.convolution_param().weight_filler())); weight_filler->Fill(this->blobs_[0].get()); // If necessary, intiialize and fill the bias term - if (biasterm_) { - this->blobs_[1].reset(new Blob(1, 1, 1, NUM_OUTPUT_)); - shared_ptr > bias_filler( - GetFiller(this->layer_param_.bias_filler())); + if (bias_term_) { + this->blobs_[1].reset(new Blob(1, 1, 1, num_output_)); + shared_ptr > bias_filler(GetFiller( + this->layer_param_.convolution_param().bias_filler())); bias_filler->Fill(this->blobs_[1].get()); } } // Set up the bias filler - if (biasterm_) { + if (bias_term_) { bias_multiplier_.reset(new SyncedMemory(N_ * sizeof(Dtype))); Dtype* bias_multiplier_data = reinterpret_cast(bias_multiplier_->mutable_cpu_data()); @@ -77,7 +78,7 @@ void ConvolutionLayer::SetUp(const vector*>& bottom, template -void ConvolutionLayer::Forward_cpu(const vector*>& bottom, +Dtype ConvolutionLayer::Forward_cpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->cpu_data(); Dtype* top_data = (*top)[0]->mutable_cpu_data(); @@ -86,28 +87,29 @@ void ConvolutionLayer::Forward_cpu(const vector*>& bottom, int weight_offset = M_ * K_; int col_offset = K_ * N_; int top_offset = M_ * N_; - for (int n = 0; n < NUM_; ++n) { + for (int n = 0; n < num_; ++n) { // First, im2col - im2col_cpu(bottom_data + bottom[0]->offset(n), CHANNELS_, HEIGHT_, - WIDTH_, KSIZE_, PAD_, STRIDE_, col_data); + im2col_cpu(bottom_data + bottom[0]->offset(n), channels_, height_, + width_, kernel_size_, pad_, stride_, col_data); // Second, innerproduct with groups - for (int g = 0; g < GROUP_; ++g) { + for (int g = 0; g < group_; ++g) { caffe_cpu_gemm(CblasNoTrans, CblasNoTrans, M_, N_, K_, (Dtype)1., weight + weight_offset * g, col_data + col_offset * g, (Dtype)0., top_data + (*top)[0]->offset(n) + top_offset * g); } // third, add bias - if (biasterm_) { - caffe_cpu_gemm(CblasNoTrans, CblasNoTrans, NUM_OUTPUT_, + if (bias_term_) { + caffe_cpu_gemm(CblasNoTrans, CblasNoTrans, num_output_, N_, 1, (Dtype)1., this->blobs_[1]->cpu_data(), reinterpret_cast(bias_multiplier_->cpu_data()), (Dtype)1., top_data + (*top)[0]->offset(n)); } } + return Dtype(0.); } template -Dtype ConvolutionLayer::Backward_cpu(const vector*>& top, +void ConvolutionLayer::Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { const Dtype* top_diff = top[0]->cpu_diff(); const Dtype* weight = this->blobs_[0]->cpu_data(); @@ -119,11 +121,11 @@ Dtype ConvolutionLayer::Backward_cpu(const vector*>& top, // bias gradient if necessary Dtype* bias_diff = NULL; - if (biasterm_) { + if (bias_term_) { bias_diff = this->blobs_[1]->mutable_cpu_diff(); memset(bias_diff, 0, sizeof(Dtype) * this->blobs_[1]->count()); - for (int n = 0; n < NUM_; ++n) { - caffe_cpu_gemv(CblasNoTrans, NUM_OUTPUT_, N_, + for (int n = 0; n < num_; ++n) { + caffe_cpu_gemv(CblasNoTrans, num_output_, N_, 1., top_diff + top[0]->offset(n), reinterpret_cast(bias_multiplier_->cpu_data()), 1., bias_diff); @@ -134,13 +136,13 @@ Dtype ConvolutionLayer::Backward_cpu(const vector*>& top, int col_offset = K_ * N_; int top_offset = M_ * N_; memset(weight_diff, 0, sizeof(Dtype) * this->blobs_[0]->count()); - for (int n = 0; n < NUM_; ++n) { + for (int n = 0; n < num_; ++n) { // since we saved memory in the forward pass by not storing all col data, // we will need to recompute them. - im2col_cpu(bottom_data + (*bottom)[0]->offset(n), CHANNELS_, HEIGHT_, - WIDTH_, KSIZE_, PAD_, STRIDE_, col_data); + im2col_cpu(bottom_data + (*bottom)[0]->offset(n), channels_, height_, + width_, kernel_size_, pad_, stride_, col_data); // gradient w.r.t. weight. Note that we will accumulate diffs. - for (int g = 0; g < GROUP_; ++g) { + for (int g = 0; g < group_; ++g) { caffe_cpu_gemm(CblasNoTrans, CblasTrans, M_, K_, N_, (Dtype)1., top_diff + top[0]->offset(n) + top_offset * g, col_data + col_offset * g, (Dtype)1., @@ -148,18 +150,17 @@ Dtype ConvolutionLayer::Backward_cpu(const vector*>& top, } // gradient w.r.t. bottom data, if necessary if (propagate_down) { - for (int g = 0; g < GROUP_; ++g) { + for (int g = 0; g < group_; ++g) { caffe_cpu_gemm(CblasTrans, CblasNoTrans, K_, N_, M_, (Dtype)1., weight + weight_offset * g, top_diff + top[0]->offset(n) + top_offset * g, (Dtype)0., col_diff + col_offset * g); } // col2im back to the data - col2im_cpu(col_diff, CHANNELS_, HEIGHT_, WIDTH_, KSIZE_, PAD_, STRIDE_, - bottom_diff + (*bottom)[0]->offset(n)); + col2im_cpu(col_diff, channels_, height_, width_, kernel_size_, pad_, + stride_, bottom_diff + (*bottom)[0]->offset(n)); } } - return Dtype(0.); } INSTANTIATE_CLASS(ConvolutionLayer); diff --git a/src/caffe/layers/conv_layer.cu b/src/caffe/layers/conv_layer.cu index a7f56faa97b..51f5d159879 100644 --- a/src/caffe/layers/conv_layer.cu +++ b/src/caffe/layers/conv_layer.cu @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include @@ -11,7 +11,7 @@ namespace caffe { template -void ConvolutionLayer::Forward_gpu(const vector*>& bottom, +Dtype ConvolutionLayer::Forward_gpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->gpu_data(); Dtype* top_data = (*top)[0]->mutable_gpu_data(); @@ -20,28 +20,29 @@ void ConvolutionLayer::Forward_gpu(const vector*>& bottom, int weight_offset = M_ * K_; int col_offset = K_ * N_; int top_offset = M_ * N_; - for (int n = 0; n < NUM_; ++n) { + for (int n = 0; n < num_; ++n) { // First, im2col - im2col_gpu(bottom_data + bottom[0]->offset(n), CHANNELS_, HEIGHT_, - WIDTH_, KSIZE_, PAD_, STRIDE_, col_data); + im2col_gpu(bottom_data + bottom[0]->offset(n), channels_, height_, + width_, kernel_size_, pad_, stride_, col_data); // Second, innerproduct with groups - for (int g = 0; g < GROUP_; ++g) { + for (int g = 0; g < group_; ++g) { caffe_gpu_gemm(CblasNoTrans, CblasNoTrans, M_, N_, K_, (Dtype)1., weight + weight_offset * g, col_data + col_offset * g, (Dtype)0., top_data + (*top)[0]->offset(n) + top_offset * g); } // third, add bias - if (biasterm_) { - caffe_gpu_gemm(CblasNoTrans, CblasNoTrans, NUM_OUTPUT_, + if (bias_term_) { + caffe_gpu_gemm(CblasNoTrans, CblasNoTrans, num_output_, N_, 1, (Dtype)1., this->blobs_[1]->gpu_data(), reinterpret_cast(bias_multiplier_->gpu_data()), (Dtype)1., top_data + (*top)[0]->offset(n)); } } + return Dtype(0.); } template -Dtype ConvolutionLayer::Backward_gpu(const vector*>& top, +void ConvolutionLayer::Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { const Dtype* top_diff = top[0]->gpu_diff(); const Dtype* weight = this->blobs_[0]->gpu_data(); @@ -53,12 +54,12 @@ Dtype ConvolutionLayer::Backward_gpu(const vector*>& top, // bias gradient if necessary Dtype* bias_diff = NULL; - if (biasterm_) { + if (bias_term_) { bias_diff = this->blobs_[1]->mutable_gpu_diff(); CUDA_CHECK(cudaMemset(bias_diff, 0, sizeof(Dtype) * this->blobs_[1]->count())); - for (int n = 0; n < NUM_; ++n) { - caffe_gpu_gemv(CblasNoTrans, NUM_OUTPUT_, N_, + for (int n = 0; n < num_; ++n) { + caffe_gpu_gemv(CblasNoTrans, num_output_, N_, 1., top_diff + top[0]->offset(n), reinterpret_cast(bias_multiplier_->gpu_data()), 1., bias_diff); @@ -70,13 +71,13 @@ Dtype ConvolutionLayer::Backward_gpu(const vector*>& top, int top_offset = M_ * N_; CUDA_CHECK(cudaMemset(weight_diff, 0, sizeof(Dtype) * this->blobs_[0]->count())); - for (int n = 0; n < NUM_; ++n) { + for (int n = 0; n < num_; ++n) { // since we saved memory in the forward pass by not storing all col data, // we will need to recompute them. - im2col_gpu(bottom_data + (*bottom)[0]->offset(n), CHANNELS_, HEIGHT_, - WIDTH_, KSIZE_, PAD_, STRIDE_, col_data); + im2col_gpu(bottom_data + (*bottom)[0]->offset(n), channels_, height_, + width_, kernel_size_, pad_, stride_, col_data); // gradient w.r.t. weight. Note that we will accumulate diffs. - for (int g = 0; g < GROUP_; ++g) { + for (int g = 0; g < group_; ++g) { caffe_gpu_gemm(CblasNoTrans, CblasTrans, M_, K_, N_, (Dtype)1., top_diff + top[0]->offset(n) + top_offset * g, col_data + col_offset * g, (Dtype)1., @@ -84,18 +85,17 @@ Dtype ConvolutionLayer::Backward_gpu(const vector*>& top, } // gradient w.r.t. bottom data, if necessary if (propagate_down) { - for (int g = 0; g < GROUP_; ++g) { + for (int g = 0; g < group_; ++g) { caffe_gpu_gemm(CblasTrans, CblasNoTrans, K_, N_, M_, (Dtype)1., weight + weight_offset * g, top_diff + top[0]->offset(n) + top_offset * g, (Dtype)0., col_diff + col_offset * g); } // col2im back to the data - col2im_gpu(col_diff, CHANNELS_, HEIGHT_, WIDTH_, KSIZE_, PAD_, STRIDE_, - bottom_diff + (*bottom)[0]->offset(n)); + col2im_gpu(col_diff, channels_, height_, width_, kernel_size_, pad_, + stride_, bottom_diff + (*bottom)[0]->offset(n)); } } - return Dtype(0.); } diff --git a/src/caffe/layers/data_layer.cpp b/src/caffe/layers/data_layer.cpp index cc03cdbf0b7..6d7392a6b2a 100644 --- a/src/caffe/layers/data_layer.cpp +++ b/src/caffe/layers/data_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -9,6 +9,8 @@ #include "caffe/layer.hpp" #include "caffe/util/io.hpp" +#include "caffe/util/math_functions.hpp" +#include "caffe/util/rng.hpp" #include "caffe/vision_layers.hpp" using std::string; @@ -18,19 +20,22 @@ namespace caffe { template void* DataLayerPrefetch(void* layer_pointer) { CHECK(layer_pointer); - DataLayer* layer = reinterpret_cast*>(layer_pointer); + DataLayer* layer = static_cast*>(layer_pointer); CHECK(layer); Datum datum; CHECK(layer->prefetch_data_); Dtype* top_data = layer->prefetch_data_->mutable_cpu_data(); - Dtype* top_label = layer->prefetch_label_->mutable_cpu_data(); - const Dtype scale = layer->layer_param_.scale(); - const int batchsize = layer->layer_param_.batchsize(); - const int cropsize = layer->layer_param_.cropsize(); - const bool mirror = layer->layer_param_.mirror(); - - if (mirror && cropsize == 0) { - LOG(FATAL) << "Current implementation requires mirror and cropsize to be " + Dtype* top_label; + if (layer->output_labels_) { + top_label = layer->prefetch_label_->mutable_cpu_data(); + } + const Dtype scale = layer->layer_param_.data_param().scale(); + const int batch_size = layer->layer_param_.data_param().batch_size(); + const int crop_size = layer->layer_param_.data_param().crop_size(); + const bool mirror = layer->layer_param_.data_param().mirror(); + + if (mirror && crop_size == 0) { + LOG(FATAL) << "Current implementation requires mirror and crop_size to be " << "set at the same time."; } // datum scales @@ -39,52 +44,48 @@ void* DataLayerPrefetch(void* layer_pointer) { const int width = layer->datum_width_; const int size = layer->datum_size_; const Dtype* mean = layer->data_mean_.cpu_data(); - for (int itemid = 0; itemid < batchsize; ++itemid) { + for (int item_id = 0; item_id < batch_size; ++item_id) { // get a blob CHECK(layer->iter_); CHECK(layer->iter_->Valid()); datum.ParseFromString(layer->iter_->value().ToString()); const string& data = datum.data(); - if (cropsize) { + if (crop_size) { CHECK(data.size()) << "Image cropping only support uint8 data"; int h_off, w_off; // We only do random crop when we do training. - if (Caffe::phase() == Caffe::TRAIN) { - // NOLINT_NEXT_LINE(runtime/threadsafe_fn) - h_off = rand() % (height - cropsize); - // NOLINT_NEXT_LINE(runtime/threadsafe_fn) - w_off = rand() % (width - cropsize); + if (layer->phase_ == Caffe::TRAIN) { + h_off = layer->PrefetchRand() % (height - crop_size); + w_off = layer->PrefetchRand() % (width - crop_size); } else { - h_off = (height - cropsize) / 2; - w_off = (width - cropsize) / 2; + h_off = (height - crop_size) / 2; + w_off = (width - crop_size) / 2; } - // NOLINT_NEXT_LINE(runtime/threadsafe_fn) - if (mirror && rand() % 2) { + if (mirror && layer->PrefetchRand() % 2) { // Copy mirrored version for (int c = 0; c < channels; ++c) { - for (int h = 0; h < cropsize; ++h) { - for (int w = 0; w < cropsize; ++w) { - top_data[((itemid * channels + c) * cropsize + h) * cropsize - + cropsize - 1 - w] = - (static_cast( - (uint8_t)data[(c * height + h + h_off) * width - + w + w_off]) - - mean[(c * height + h + h_off) * width + w + w_off]) - * scale; + for (int h = 0; h < crop_size; ++h) { + for (int w = 0; w < crop_size; ++w) { + int top_index = ((item_id * channels + c) * crop_size + h) + * crop_size + (crop_size - 1 - w); + int data_index = (c * height + h + h_off) * width + w + w_off; + Dtype datum_element = + static_cast(static_cast(data[data_index])); + top_data[top_index] = (datum_element - mean[data_index]) * scale; } } } } else { // Normal copy for (int c = 0; c < channels; ++c) { - for (int h = 0; h < cropsize; ++h) { - for (int w = 0; w < cropsize; ++w) { - top_data[((itemid * channels + c) * cropsize + h) * cropsize + w] - = (static_cast( - (uint8_t)data[(c * height + h + h_off) * width - + w + w_off]) - - mean[(c * height + h + h_off) * width + w + w_off]) - * scale; + for (int h = 0; h < crop_size; ++h) { + for (int w = 0; w < crop_size; ++w) { + int top_index = ((item_id * channels + c) * crop_size + h) + * crop_size + w; + int data_index = (c * height + h + h_off) * width + w + w_off; + Dtype datum_element = + static_cast(static_cast(data[data_index])); + top_data[top_index] = (datum_element - mean[data_index]) * scale; } } } @@ -93,18 +94,21 @@ void* DataLayerPrefetch(void* layer_pointer) { // we will prefer to use data() first, and then try float_data() if (data.size()) { for (int j = 0; j < size; ++j) { - top_data[itemid * size + j] = - (static_cast((uint8_t)data[j]) - mean[j]) * scale; + Dtype datum_element = + static_cast(static_cast(data[j])); + top_data[item_id * size + j] = (datum_element - mean[j]) * scale; } } else { for (int j = 0; j < size; ++j) { - top_data[itemid * size + j] = + top_data[item_id * size + j] = (datum.float_data(j) - mean[j]) * scale; } } } - top_label[itemid] = datum.label(); + if (layer->output_labels_) { + top_label[item_id] = datum.label(); + } // go to the next iter layer->iter_->Next(); if (!layer->iter_->Valid()) { @@ -114,37 +118,43 @@ void* DataLayerPrefetch(void* layer_pointer) { } } - return reinterpret_cast(NULL); + return static_cast(NULL); } template DataLayer::~DataLayer() { - // Finally, join the thread - CHECK(!pthread_join(thread_, NULL)) << "Pthread joining failed."; + JoinPrefetchThread(); } template void DataLayer::SetUp(const vector*>& bottom, vector*>* top) { CHECK_EQ(bottom.size(), 0) << "Data Layer takes no input blobs."; - CHECK_EQ(top->size(), 2) << "Data Layer takes two blobs as output."; + CHECK_GE(top->size(), 1) << "Data Layer takes at least one blob as output."; + CHECK_LE(top->size(), 2) << "Data Layer takes at most two blobs as output."; + if (top->size() == 1) { + output_labels_ = false; + } else { + output_labels_ = true; + } // Initialize the leveldb leveldb::DB* db_temp; leveldb::Options options; options.create_if_missing = false; options.max_open_files = 100; - LOG(INFO) << "Opening leveldb " << this->layer_param_.source(); + LOG(INFO) << "Opening leveldb " << this->layer_param_.data_param().source(); leveldb::Status status = leveldb::DB::Open( - options, this->layer_param_.source(), &db_temp); + options, this->layer_param_.data_param().source(), &db_temp); CHECK(status.ok()) << "Failed to open leveldb " - << this->layer_param_.source() << std::endl << status.ToString(); + << this->layer_param_.data_param().source() << std::endl + << status.ToString(); db_.reset(db_temp); iter_.reset(db_->NewIterator(leveldb::ReadOptions())); iter_->SeekToFirst(); // Check if we would need to randomly skip a few data points - if (this->layer_param_.rand_skip()) { - // NOLINT_NEXT_LINE(runtime/threadsafe_fn) - unsigned int skip = rand() % this->layer_param_.rand_skip(); + if (this->layer_param_.data_param().rand_skip()) { + unsigned int skip = caffe_rng_rand() % + this->layer_param_.data_param().rand_skip(); LOG(INFO) << "Skipping first " << skip << " data points."; while (skip-- > 0) { iter_->Next(); @@ -157,39 +167,43 @@ void DataLayer::SetUp(const vector*>& bottom, Datum datum; datum.ParseFromString(iter_->value().ToString()); // image - int cropsize = this->layer_param_.cropsize(); - if (cropsize > 0) { - (*top)[0]->Reshape( - this->layer_param_.batchsize(), datum.channels(), cropsize, cropsize); + int crop_size = this->layer_param_.data_param().crop_size(); + if (crop_size > 0) { + (*top)[0]->Reshape(this->layer_param_.data_param().batch_size(), + datum.channels(), crop_size, crop_size); prefetch_data_.reset(new Blob( - this->layer_param_.batchsize(), datum.channels(), cropsize, cropsize)); + this->layer_param_.data_param().batch_size(), datum.channels(), + crop_size, crop_size)); } else { (*top)[0]->Reshape( - this->layer_param_.batchsize(), datum.channels(), datum.height(), - datum.width()); + this->layer_param_.data_param().batch_size(), datum.channels(), + datum.height(), datum.width()); prefetch_data_.reset(new Blob( - this->layer_param_.batchsize(), datum.channels(), datum.height(), - datum.width())); + this->layer_param_.data_param().batch_size(), datum.channels(), + datum.height(), datum.width())); } LOG(INFO) << "output data size: " << (*top)[0]->num() << "," << (*top)[0]->channels() << "," << (*top)[0]->height() << "," << (*top)[0]->width(); // label - (*top)[1]->Reshape(this->layer_param_.batchsize(), 1, 1, 1); - prefetch_label_.reset( - new Blob(this->layer_param_.batchsize(), 1, 1, 1)); + if (output_labels_) { + (*top)[1]->Reshape(this->layer_param_.data_param().batch_size(), 1, 1, 1); + prefetch_label_.reset( + new Blob(this->layer_param_.data_param().batch_size(), 1, 1, 1)); + } // datum size datum_channels_ = datum.channels(); datum_height_ = datum.height(); datum_width_ = datum.width(); datum_size_ = datum.channels() * datum.height() * datum.width(); - CHECK_GT(datum_height_, cropsize); - CHECK_GT(datum_width_, cropsize); + CHECK_GT(datum_height_, crop_size); + CHECK_GT(datum_width_, crop_size); // check if we want to have mean - if (this->layer_param_.has_meanfile()) { + if (this->layer_param_.data_param().has_mean_file()) { + const string& mean_file = this->layer_param_.data_param().mean_file(); + LOG(INFO) << "Loading mean file from" << mean_file; BlobProto blob_proto; - LOG(INFO) << "Loading mean file from" << this->layer_param_.meanfile(); - ReadProtoFromBinaryFile(this->layer_param_.meanfile().c_str(), &blob_proto); + ReadProtoFromBinaryFileOrDie(mean_file.c_str(), &blob_proto); data_mean_.FromProto(blob_proto); CHECK_EQ(data_mean_.num(), 1); CHECK_EQ(data_mean_.channels(), datum_channels_); @@ -204,33 +218,59 @@ void DataLayer::SetUp(const vector*>& bottom, // simultaneous cudaMalloc calls when the main thread is running. In some // GPUs this seems to cause failures if we do not so. prefetch_data_->mutable_cpu_data(); - prefetch_label_->mutable_cpu_data(); + if (output_labels_) { + prefetch_label_->mutable_cpu_data(); + } data_mean_.cpu_data(); DLOG(INFO) << "Initializing prefetch"; - CHECK(!pthread_create(&thread_, NULL, DataLayerPrefetch, - reinterpret_cast(this))) << "Pthread execution failed."; + CreatePrefetchThread(); DLOG(INFO) << "Prefetch initialized."; } template -void DataLayer::Forward_cpu(const vector*>& bottom, - vector*>* top) { - // First, join the thread - CHECK(!pthread_join(thread_, NULL)) << "Pthread joining failed."; - // Copy the data - memcpy((*top)[0]->mutable_cpu_data(), prefetch_data_->cpu_data(), - sizeof(Dtype) * prefetch_data_->count()); - memcpy((*top)[1]->mutable_cpu_data(), prefetch_label_->cpu_data(), - sizeof(Dtype) * prefetch_label_->count()); - // Start a new prefetch thread +void DataLayer::CreatePrefetchThread() { + phase_ = Caffe::phase(); + const bool prefetch_needs_rand = (phase_ == Caffe::TRAIN) && + (this->layer_param_.data_param().mirror() || + this->layer_param_.data_param().crop_size()); + if (prefetch_needs_rand) { + const unsigned int prefetch_rng_seed = caffe_rng_rand(); + prefetch_rng_.reset(new Caffe::RNG(prefetch_rng_seed)); + } else { + prefetch_rng_.reset(); + } + // Create the thread. CHECK(!pthread_create(&thread_, NULL, DataLayerPrefetch, - reinterpret_cast(this))) << "Pthread execution failed."; + static_cast(this))) << "Pthread execution failed."; +} + +template +void DataLayer::JoinPrefetchThread() { + CHECK(!pthread_join(thread_, NULL)) << "Pthread joining failed."; +} + +template +unsigned int DataLayer::PrefetchRand() { + CHECK(prefetch_rng_); + caffe::rng_t* prefetch_rng = + static_cast(prefetch_rng_->generator()); + return (*prefetch_rng)(); } -// The backward operations are dummy - they do not carry any computation. template -Dtype DataLayer::Backward_cpu(const vector*>& top, - const bool propagate_down, vector*>* bottom) { +Dtype DataLayer::Forward_cpu(const vector*>& bottom, + vector*>* top) { + // First, join the thread + JoinPrefetchThread(); + // Copy the data + caffe_copy(prefetch_data_->count(), prefetch_data_->cpu_data(), + (*top)[0]->mutable_cpu_data()); + if (output_labels_) { + caffe_copy(prefetch_label_->count(), prefetch_label_->cpu_data(), + (*top)[1]->mutable_cpu_data()); + } + // Start a new prefetch thread + CreatePrefetchThread(); return Dtype(0.); } diff --git a/src/caffe/layers/data_layer.cu b/src/caffe/layers/data_layer.cu index 946f30f3b7f..2ff9a292b3e 100644 --- a/src/caffe/layers/data_layer.cu +++ b/src/caffe/layers/data_layer.cu @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -16,26 +16,21 @@ using std::string; namespace caffe { template -void DataLayer::Forward_gpu(const vector*>& bottom, +Dtype DataLayer::Forward_gpu(const vector*>& bottom, vector*>* top) { // First, join the thread - CHECK(!pthread_join(thread_, NULL)) << "Pthread joining failed."; + JoinPrefetchThread(); // Copy the data CUDA_CHECK(cudaMemcpy((*top)[0]->mutable_gpu_data(), prefetch_data_->cpu_data(), sizeof(Dtype) * prefetch_data_->count(), cudaMemcpyHostToDevice)); - CUDA_CHECK(cudaMemcpy((*top)[1]->mutable_gpu_data(), - prefetch_label_->cpu_data(), sizeof(Dtype) * prefetch_label_->count(), - cudaMemcpyHostToDevice)); + if (output_labels_) { + CUDA_CHECK(cudaMemcpy((*top)[1]->mutable_gpu_data(), + prefetch_label_->cpu_data(), sizeof(Dtype) * prefetch_label_->count(), + cudaMemcpyHostToDevice)); + } // Start a new prefetch thread - CHECK(!pthread_create(&thread_, NULL, DataLayerPrefetch, - reinterpret_cast(this))) << "Pthread execution failed."; -} - -// The backward operations are dummy - they do not carry any computation. -template -Dtype DataLayer::Backward_gpu(const vector*>& top, - const bool propagate_down, vector*>* bottom) { + CreatePrefetchThread(); return Dtype(0.); } diff --git a/src/caffe/layers/dropout_layer.cpp b/src/caffe/layers/dropout_layer.cpp index f480853cdf3..e1b69f363b4 100644 --- a/src/caffe/layers/dropout_layer.cpp +++ b/src/caffe/layers/dropout_layer.cpp @@ -1,8 +1,11 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. + +// TODO (sergeyk): effect should not be dependent on phase. wasted memcpy. #include #include "caffe/common.hpp" +#include "caffe/util/math_functions.hpp" #include "caffe/layer.hpp" #include "caffe/syncedmem.hpp" #include "caffe/vision_layers.hpp" @@ -15,15 +18,15 @@ void DropoutLayer::SetUp(const vector*>& bottom, NeuronLayer::SetUp(bottom, top); // Set up the cache for random number generation rand_vec_.reset(new SyncedMemory(bottom[0]->count() * sizeof(int))); - threshold_ = this->layer_param_.dropout_ratio(); + threshold_ = this->layer_param_.dropout_param().dropout_ratio(); DCHECK(threshold_ > 0.); DCHECK(threshold_ < 1.); scale_ = 1. / (1. - threshold_); - uint_thres_ = (unsigned int)(UINT_MAX * threshold_); + uint_thres_ = static_cast(UINT_MAX * threshold_); } template -void DropoutLayer::Forward_cpu(const vector*>& bottom, +Dtype DropoutLayer::Forward_cpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->cpu_data(); Dtype* top_data = (*top)[0]->mutable_cpu_data(); @@ -31,18 +34,18 @@ void DropoutLayer::Forward_cpu(const vector*>& bottom, const int count = bottom[0]->count(); if (Caffe::phase() == Caffe::TRAIN) { // Create random numbers - viRngBernoulli(VSL_RNG_METHOD_BERNOULLI_ICDF, Caffe::vsl_stream(), - count, mask, 1. - threshold_); + caffe_rng_bernoulli(count, 1. - threshold_, mask); for (int i = 0; i < count; ++i) { top_data[i] = bottom_data[i] * mask[i] * scale_; } } else { - memcpy(top_data, bottom_data, bottom[0]->count() * sizeof(Dtype)); + caffe_copy(bottom[0]->count(), bottom_data, top_data); } + return Dtype(0); } template -Dtype DropoutLayer::Backward_cpu(const vector*>& top, +void DropoutLayer::Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { CHECK(Caffe::phase() == Caffe::TRAIN); @@ -55,7 +58,6 @@ Dtype DropoutLayer::Backward_cpu(const vector*>& top, bottom_diff[i] = top_diff[i] * mask[i] * scale_; } } - return Dtype(0); } diff --git a/src/caffe/layers/dropout_layer.cu b/src/caffe/layers/dropout_layer.cu index 0b38ae2a576..3c25d6a1292 100644 --- a/src/caffe/layers/dropout_layer.cu +++ b/src/caffe/layers/dropout_layer.cu @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -8,6 +8,7 @@ #include "caffe/layer.hpp" #include "caffe/syncedmem.hpp" #include "caffe/vision_layers.hpp" +#include "caffe/util/math_functions.hpp" using std::max; @@ -24,24 +25,24 @@ __global__ void DropoutForward(const int n, const Dtype* in, } template -void DropoutLayer::Forward_gpu(const vector*>& bottom, +Dtype DropoutLayer::Forward_gpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->gpu_data(); Dtype* top_data = (*top)[0]->mutable_gpu_data(); const int count = bottom[0]->count(); if (Caffe::phase() == Caffe::TRAIN) { - CURAND_CHECK(curandGenerate(Caffe::curand_generator(), - (unsigned int*)(rand_vec_->mutable_gpu_data()), count)); + unsigned int* mask = + static_cast(rand_vec_->mutable_gpu_data()); + caffe_gpu_rng_uniform(count, mask); // set thresholds // NOLINT_NEXT_LINE(whitespace/operators) DropoutForward<<>>( - count, bottom_data, (unsigned int*)rand_vec_->gpu_data(), uint_thres_, - scale_, top_data); + count, bottom_data, mask, uint_thres_, scale_, top_data); CUDA_POST_KERNEL_CHECK; } else { - CUDA_CHECK(cudaMemcpy(top_data, bottom_data, - count * sizeof(Dtype), cudaMemcpyDeviceToDevice)); + caffe_gpu_copy(count, bottom_data, top_data); } + return Dtype(0); } template @@ -54,21 +55,21 @@ __global__ void DropoutBackward(const int n, const Dtype* in_diff, } template -Dtype DropoutLayer::Backward_gpu(const vector*>& top, +void DropoutLayer::Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { CHECK(Caffe::phase() == Caffe::TRAIN); if (propagate_down) { const Dtype* top_diff = top[0]->gpu_diff(); Dtype* bottom_diff = (*bottom)[0]->mutable_gpu_diff(); - const unsigned int* mask = (unsigned int*)rand_vec_->gpu_data(); + const unsigned int* mask = + static_cast(rand_vec_->gpu_data()); const int count = (*bottom)[0]->count(); // NOLINT_NEXT_LINE(whitespace/operators) DropoutBackward<<>>( count, top_diff, mask, uint_thres_, scale_, bottom_diff); CUDA_POST_KERNEL_CHECK; } - return Dtype(0); } INSTANTIATE_CLASS(DropoutLayer); diff --git a/src/caffe/layers/eltwise_product_layer.cpp b/src/caffe/layers/eltwise_product_layer.cpp new file mode 100644 index 00000000000..b394450d6ae --- /dev/null +++ b/src/caffe/layers/eltwise_product_layer.cpp @@ -0,0 +1,62 @@ +// Copyright 2014 BVLC and contributors. + +#include + +#include "caffe/layer.hpp" +#include "caffe/vision_layers.hpp" +#include "caffe/util/math_functions.hpp" + +namespace caffe { + +template +void EltwiseProductLayer::SetUp(const vector*>& bottom, + vector*>* top) { + CHECK_GE(bottom.size(), 2) << + "Eltwise Product Layer takes at least 2 blobs as input."; + CHECK_EQ(top->size(), 1) << + "Eltwise Product Layer takes a single blob as output."; + const int num = bottom[0]->num(); + const int channels = bottom[0]->channels(); + const int height = bottom[0]->height(); + const int width = bottom[0]->width(); + for (int i = 1; i < bottom.size(); ++i) { + CHECK_EQ(num, bottom[i]->num()); + CHECK_EQ(channels, bottom[i]->channels()); + CHECK_EQ(height, bottom[i]->height()); + CHECK_EQ(width, bottom[i]->width()); + } + (*top)[0]->Reshape(num, channels, height, width); +} + +template +Dtype EltwiseProductLayer::Forward_cpu( + const vector*>& bottom, vector*>* top) { + const int count = (*top)[0]->count(); + Dtype* top_data = (*top)[0]->mutable_cpu_data(); + caffe_mul(count, bottom[0]->cpu_data(), bottom[1]->cpu_data(), top_data); + for (int i = 2; i < bottom.size(); ++i) { + caffe_mul(count, top_data, bottom[i]->cpu_data(), top_data); + } + return Dtype(0.); +} + +template +void EltwiseProductLayer::Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom) { + if (propagate_down) { + const int count = top[0]->count(); + const Dtype* top_data = top[0]->cpu_data(); + const Dtype* top_diff = top[0]->cpu_diff(); + for (int i = 0; i < bottom->size(); ++i) { + const Dtype* bottom_data = (*bottom)[i]->cpu_data(); + Dtype* bottom_diff = (*bottom)[i]->mutable_cpu_diff(); + caffe_div(count, top_data, bottom_data, bottom_diff); + caffe_mul(count, bottom_diff, top_diff, bottom_diff); + } + } +} + +INSTANTIATE_CLASS(EltwiseProductLayer); + + +} // namespace caffe diff --git a/src/caffe/layers/eltwise_product_layer.cu b/src/caffe/layers/eltwise_product_layer.cu new file mode 100644 index 00000000000..9c66033c20f --- /dev/null +++ b/src/caffe/layers/eltwise_product_layer.cu @@ -0,0 +1,42 @@ +// Copyright 2014 BVLC and contributors. + +#include + +#include "caffe/layer.hpp" +#include "caffe/vision_layers.hpp" +#include "caffe/util/math_functions.hpp" + +namespace caffe { + +template +Dtype EltwiseProductLayer::Forward_gpu( + const vector*>& bottom, vector*>* top) { + const int count = (*top)[0]->count(); + Dtype* top_data = (*top)[0]->mutable_gpu_data(); + caffe_gpu_mul(count, bottom[0]->gpu_data(), bottom[1]->gpu_data(), top_data); + for (int i = 2; i < bottom.size(); ++i) { + caffe_gpu_mul(count, top_data, bottom[i]->gpu_data(), top_data); + } + return Dtype(0.); +} + +template +void EltwiseProductLayer::Backward_gpu(const vector*>& top, + const bool propagate_down, vector*>* bottom) { + if (propagate_down) { + const int count = top[0]->count(); + const Dtype* top_data = top[0]->gpu_data(); + const Dtype* top_diff = top[0]->gpu_diff(); + for (int i = 0; i < bottom->size(); ++i) { + const Dtype* bottom_data = (*bottom)[i]->gpu_data(); + Dtype* bottom_diff = (*bottom)[i]->mutable_gpu_diff(); + caffe_gpu_div(count, top_data, bottom_data, bottom_diff); + caffe_gpu_mul(count, bottom_diff, top_diff, bottom_diff); + } + } +} + +INSTANTIATE_CLASS(EltwiseProductLayer); + + +} // namespace caffe diff --git a/src/caffe/layers/euclidean_loss_layer.cpp b/src/caffe/layers/euclidean_loss_layer.cpp new file mode 100644 index 00000000000..a894d470c64 --- /dev/null +++ b/src/caffe/layers/euclidean_loss_layer.cpp @@ -0,0 +1,54 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include +#include +#include + +#include "caffe/layer.hpp" +#include "caffe/vision_layers.hpp" +#include "caffe/util/math_functions.hpp" +#include "caffe/util/io.hpp" + +using std::max; + +namespace caffe { + +template +void EuclideanLossLayer::FurtherSetUp( + const vector*>& bottom, vector*>* top) { + CHECK_EQ(bottom[0]->channels(), bottom[1]->channels()); + CHECK_EQ(bottom[0]->height(), bottom[1]->height()); + CHECK_EQ(bottom[0]->width(), bottom[1]->width()); + diff_.Reshape(bottom[0]->num(), bottom[0]->channels(), + bottom[0]->height(), bottom[0]->width()); +} + +template +Dtype EuclideanLossLayer::Forward_cpu(const vector*>& bottom, + vector*>* top) { + int count = bottom[0]->count(); + caffe_sub( + count, + bottom[0]->cpu_data(), + bottom[1]->cpu_data(), + diff_.mutable_cpu_data()); + Dtype dot = caffe_cpu_dot(count, diff_.cpu_data(), diff_.cpu_data()); + Dtype loss = dot / bottom[0]->num() / Dtype(2); + return loss; +} + +template +void EuclideanLossLayer::Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom) { + caffe_cpu_axpby( + (*bottom)[0]->count(), // count + Dtype(1) / (*bottom)[0]->num(), // alpha + diff_.cpu_data(), // a + Dtype(0), // beta + (*bottom)[0]->mutable_cpu_diff()); // b +} + +INSTANTIATE_CLASS(EuclideanLossLayer); + +} // namespace caffe diff --git a/src/caffe/layers/flatten_layer.cpp b/src/caffe/layers/flatten_layer.cpp index 9e17a8200c1..e954030d260 100644 --- a/src/caffe/layers/flatten_layer.cpp +++ b/src/caffe/layers/flatten_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include @@ -22,20 +22,16 @@ void FlattenLayer::SetUp(const vector*>& bottom, } template -void FlattenLayer::Forward_cpu(const vector*>& bottom, +Dtype FlattenLayer::Forward_cpu(const vector*>& bottom, vector*>* top) { - const Dtype* bottom_data = bottom[0]->cpu_data(); - Dtype* top_data = (*top)[0]->mutable_cpu_data(); - caffe_copy(count_, bottom_data, top_data); + (*top)[0]->ShareData(*bottom[0]); + return Dtype(0.); } template -Dtype FlattenLayer::Backward_cpu(const vector*>& top, +void FlattenLayer::Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { - const Dtype* top_diff = top[0]->cpu_diff(); - Dtype* bottom_diff = (*bottom)[0]->mutable_cpu_diff(); - caffe_copy(count_, top_diff, bottom_diff); - return Dtype(0.); + (*bottom)[0]->ShareDiff(*top[0]); } INSTANTIATE_CLASS(FlattenLayer); diff --git a/src/caffe/layers/flatten_layer.cu b/src/caffe/layers/flatten_layer.cu index 571e22e2417..157eeb1dcdc 100644 --- a/src/caffe/layers/flatten_layer.cu +++ b/src/caffe/layers/flatten_layer.cu @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include @@ -9,20 +9,16 @@ namespace caffe { template -void FlattenLayer::Forward_gpu(const vector*>& bottom, +Dtype FlattenLayer::Forward_gpu(const vector*>& bottom, vector*>* top) { - const Dtype* bottom_data = bottom[0]->gpu_data(); - Dtype* top_data = (*top)[0]->mutable_gpu_data(); - caffe_gpu_copy(count_, bottom_data, top_data); + (*top)[0]->ShareData(*bottom[0]); + return Dtype(0.); } template -Dtype FlattenLayer::Backward_gpu(const vector*>& top, +void FlattenLayer::Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { - const Dtype* top_diff = top[0]->gpu_diff(); - Dtype* bottom_diff = (*bottom)[0]->mutable_gpu_diff(); - caffe_gpu_copy(count_, top_diff, bottom_diff); - return Dtype(0.); + (*bottom)[0]->ShareDiff(*top[0]); } INSTANTIATE_CLASS(FlattenLayer); diff --git a/src/caffe/layers/hdf5_data_layer.cpp b/src/caffe/layers/hdf5_data_layer.cpp index e5b17fedb20..cff4f7c7318 100644 --- a/src/caffe/layers/hdf5_data_layer.cpp +++ b/src/caffe/layers/hdf5_data_layer.cpp @@ -1,9 +1,5 @@ -// Copyright 2014 BVLC. +// Copyright 2014 BVLC and contributors. /* -Contributors: -- Sergey Karayev, 2014. -- Tobias Domhan, 2014. - TODO: - load file in a separate thread ("prefetch") - can be smarter about the memcpy call instead of doing it row-by-row @@ -30,7 +26,7 @@ HDF5DataLayer::~HDF5DataLayer() { } // Load data and label from HDF5 filename into the class property blobs. template -void HDF5DataLayer::load_hdf5_file_data(const char* filename) { +void HDF5DataLayer::LoadHDF5FileData(const char* filename) { LOG(INFO) << "Loading HDF5 file" << filename; hid_t file_id = H5Fopen(filename, H5F_ACC_RDONLY, H5P_DEFAULT); if (file_id < 0) { @@ -60,28 +56,30 @@ void HDF5DataLayer::SetUp(const vector*>& bottom, CHECK_EQ(top->size(), 2) << "HDF5DataLayer takes two blobs as output."; // Read the source to parse the filenames. - LOG(INFO) << "Loading filename from " << this->layer_param_.source(); + const string& source = this->layer_param_.hdf5_data_param().source(); + LOG(INFO) << "Loading filename from " << source; hdf_filenames_.clear(); - std::ifstream myfile(this->layer_param_.source().c_str()); - if (myfile.is_open()) { + std::ifstream source_file(source.c_str()); + if (source_file.is_open()) { std::string line; - while (myfile >> line) { + while (source_file >> line) { hdf_filenames_.push_back(line); } } - myfile.close(); + source_file.close(); num_files_ = hdf_filenames_.size(); current_file_ = 0; LOG(INFO) << "Number of files: " << num_files_; // Load the first HDF5 file and initialize the line counter. - load_hdf5_file_data(hdf_filenames_[current_file_].c_str()); + LoadHDF5FileData(hdf_filenames_[current_file_].c_str()); current_row_ = 0; // Reshape blobs. - (*top)[0]->Reshape(this->layer_param_.batchsize(), data_blob_.channels(), + const int batch_size = this->layer_param_.hdf5_data_param().batch_size(); + (*top)[0]->Reshape(batch_size, data_blob_.channels(), data_blob_.width(), data_blob_.height()); - (*top)[1]->Reshape(this->layer_param_.batchsize(), label_blob_.channels(), + (*top)[1]->Reshape(batch_size, label_blob_.channels(), label_blob_.width(), label_blob_.height()); LOG(INFO) << "output data size: " << (*top)[0]->num() << "," << (*top)[0]->channels() << "," << (*top)[0]->height() << "," @@ -89,43 +87,38 @@ void HDF5DataLayer::SetUp(const vector*>& bottom, } template -void HDF5DataLayer::Forward_cpu(const vector*>& bottom, +Dtype HDF5DataLayer::Forward_cpu(const vector*>& bottom, vector*>* top) { - const int batchsize = this->layer_param_.batchsize(); + const int batch_size = this->layer_param_.hdf5_data_param().batch_size(); const int data_count = (*top)[0]->count() / (*top)[0]->num(); const int label_data_count = (*top)[1]->count() / (*top)[1]->num(); - for (int i = 0; i < batchsize; ++i, ++current_row_) { + for (int i = 0; i < batch_size; ++i, ++current_row_) { if (current_row_ == data_blob_.num()) { if (num_files_ > 1) { current_file_ += 1; - if (current_file_ == num_files_) { current_file_ = 0; LOG(INFO) << "looping around to first file"; } - - load_hdf5_file_data(hdf_filenames_[current_file_].c_str()); + LoadHDF5FileData(hdf_filenames_[current_file_].c_str()); } current_row_ = 0; } - memcpy(&(*top)[0]->mutable_cpu_data()[i * data_count], &data_blob_.cpu_data()[current_row_ * data_count], sizeof(Dtype) * data_count); - memcpy(&(*top)[1]->mutable_cpu_data()[i * label_data_count], &label_blob_.cpu_data()[current_row_ * label_data_count], sizeof(Dtype) * label_data_count); } + return Dtype(0.); } // The backward operations are dummy - they do not carry any computation. template -Dtype HDF5DataLayer::Backward_cpu(const vector*>& top, - const bool propagate_down, vector*>* bottom) { - return Dtype(0.); -} +void HDF5DataLayer::Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom) { } INSTANTIATE_CLASS(HDF5DataLayer); diff --git a/src/caffe/layers/hdf5_data_layer.cu b/src/caffe/layers/hdf5_data_layer.cu index bed7f35a156..9c5bb5a818f 100644 --- a/src/caffe/layers/hdf5_data_layer.cu +++ b/src/caffe/layers/hdf5_data_layer.cu @@ -1,4 +1,4 @@ -// Copyright Sergey Karayev 2014 +// Copyright 2014 BVLC and contributors. /* TODO: - only load parts of the file, in accordance with a prototxt param "max_mem" @@ -20,13 +20,13 @@ using std::string; namespace caffe { template -void HDF5DataLayer::Forward_gpu(const vector*>& bottom, +Dtype HDF5DataLayer::Forward_gpu(const vector*>& bottom, vector*>* top) { - const int batchsize = this->layer_param_.batchsize(); + const int batch_size = this->layer_param_.hdf5_data_param().batch_size(); const int data_count = (*top)[0]->count() / (*top)[0]->num(); const int label_data_count = (*top)[1]->count() / (*top)[1]->num(); - for (int i = 0; i < batchsize; ++i, ++current_row_) { + for (int i = 0; i < batch_size; ++i, ++current_row_) { if (current_row_ == data_blob_.num()) { if (num_files_ > 1) { current_file_ += 1; @@ -36,29 +36,27 @@ void HDF5DataLayer::Forward_gpu(const vector*>& bottom, LOG(INFO) << "looping around to first file"; } - load_hdf5_file_data(hdf_filenames_[current_file_].c_str()); + LoadHDF5FileData(hdf_filenames_[current_file_].c_str()); } current_row_ = 0; } - CUDA_CHECK(cudaMemcpy( &(*top)[0]->mutable_gpu_data()[i * data_count], &data_blob_.cpu_data()[current_row_ * data_count], sizeof(Dtype) * data_count, cudaMemcpyHostToDevice)); - CUDA_CHECK(cudaMemcpy( &(*top)[1]->mutable_gpu_data()[i * label_data_count], &label_blob_.cpu_data()[current_row_ * label_data_count], sizeof(Dtype) * label_data_count, cudaMemcpyHostToDevice)); } + return Dtype(0.); } template -Dtype HDF5DataLayer::Backward_gpu(const vector*>& top, +void HDF5DataLayer::Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { - return Dtype(0.); } INSTANTIATE_CLASS(HDF5DataLayer); diff --git a/src/caffe/layers/hdf5_output_layer.cpp b/src/caffe/layers/hdf5_output_layer.cpp new file mode 100644 index 00000000000..e491697e17c --- /dev/null +++ b/src/caffe/layers/hdf5_output_layer.cpp @@ -0,0 +1,84 @@ +// Copyright 2014 BVLC and contributors. + +#include + +#include "hdf5.h" +#include "hdf5_hl.h" + +#include "caffe/blob.hpp" +#include "caffe/common.hpp" +#include "caffe/layer.hpp" +#include "caffe/util/io.hpp" +#include "caffe/vision_layers.hpp" + +namespace caffe { +using std::vector; + +template +HDF5OutputLayer::HDF5OutputLayer(const LayerParameter& param) + : Layer(param), + file_name_(param.hdf5_output_param().file_name()) { + /* create a HDF5 file */ + file_id_ = H5Fcreate(file_name_.c_str(), H5F_ACC_TRUNC, H5P_DEFAULT, + H5P_DEFAULT); + CHECK_GE(file_id_, 0) << "Failed to open HDF5 file" << file_name_; +} + +template +HDF5OutputLayer::~HDF5OutputLayer() { + herr_t status = H5Fclose(file_id_); + CHECK_GE(status, 0) << "Failed to close HDF5 file " << file_name_; +} + +template +void HDF5OutputLayer::SaveBlobs() { + // TODO: no limit on the number of blobs + LOG(INFO) << "Saving HDF5 file" << file_name_; + CHECK_EQ(data_blob_.num(), label_blob_.num()) << + "data blob and label blob must have the same batch size"; + hdf5_save_nd_dataset(file_id_, HDF5_DATA_DATASET_NAME, data_blob_); + hdf5_save_nd_dataset(file_id_, HDF5_DATA_LABEL_NAME, label_blob_); + LOG(INFO) << "Successfully saved " << data_blob_.num() << " rows"; +} + +template +void HDF5OutputLayer::SetUp(const vector*>& bottom, + vector*>* top) { + // TODO: no limit on the number of blobs + CHECK_EQ(bottom.size(), 2) << "HDF5OutputLayer takes two blobs as input."; + CHECK_EQ(top->size(), 0) << "HDF5OutputLayer takes no output blobs."; +} + +template +Dtype HDF5OutputLayer::Forward_cpu(const vector*>& bottom, + vector*>* top) { + CHECK_GE(bottom.size(), 2); + CHECK_EQ(bottom[0]->num(), bottom[1]->num()); + data_blob_.Reshape(bottom[0]->num(), bottom[0]->channels(), + bottom[0]->height(), bottom[0]->width()); + label_blob_.Reshape(bottom[1]->num(), bottom[1]->channels(), + bottom[1]->height(), bottom[1]->width()); + const int data_datum_dim = bottom[0]->count() / bottom[0]->num(); + const int label_datum_dim = bottom[1]->count() / bottom[1]->num(); + + for (int i = 0; i < bottom[0]->num(); ++i) { + memcpy(&data_blob_.mutable_cpu_data()[i * data_datum_dim], + &bottom[0]->cpu_data()[i * data_datum_dim], + sizeof(Dtype) * data_datum_dim); + memcpy(&label_blob_.mutable_cpu_data()[i * label_datum_dim], + &bottom[1]->cpu_data()[i * label_datum_dim], + sizeof(Dtype) * label_datum_dim); + } + SaveBlobs(); + return Dtype(0.); +} + +template +void HDF5OutputLayer::Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom) { + return; +} + +INSTANTIATE_CLASS(HDF5OutputLayer); + +} // namespace caffe diff --git a/src/caffe/layers/hdf5_output_layer.cu b/src/caffe/layers/hdf5_output_layer.cu new file mode 100644 index 00000000000..b9948252285 --- /dev/null +++ b/src/caffe/layers/hdf5_output_layer.cu @@ -0,0 +1,49 @@ +// Copyright 2014 BVLC and contributors. + +#include + +#include "hdf5.h" +#include "hdf5_hl.h" + +#include "caffe/blob.hpp" +#include "caffe/common.hpp" +#include "caffe/layer.hpp" +#include "caffe/util/io.hpp" +#include "caffe/vision_layers.hpp" + +namespace caffe { +using std::vector; + +template +Dtype HDF5OutputLayer::Forward_gpu(const vector*>& bottom, + vector*>* top) { + CHECK_GE(bottom.size(), 2); + CHECK_EQ(bottom[0]->num(), bottom[1]->num()); + data_blob_.Reshape(bottom[0]->num(), bottom[0]->channels(), + bottom[0]->height(), bottom[0]->width()); + label_blob_.Reshape(bottom[1]->num(), bottom[1]->channels(), + bottom[1]->height(), bottom[1]->width()); + const int data_datum_dim = bottom[0]->count() / bottom[0]->num(); + const int label_datum_dim = bottom[1]->count() / bottom[1]->num(); + + for (int i = 0; i < bottom[0]->num(); ++i) { + CUDA_CHECK(cudaMemcpy(&data_blob_.mutable_cpu_data()[i * data_datum_dim], + &bottom[0]->gpu_data()[i * data_datum_dim], + sizeof(Dtype) * data_datum_dim, cudaMemcpyDeviceToHost)); + CUDA_CHECK(cudaMemcpy(&label_blob_.mutable_cpu_data()[i * label_datum_dim], + &bottom[1]->gpu_data()[i * label_datum_dim], + sizeof(Dtype) * label_datum_dim, cudaMemcpyDeviceToHost)); + } + SaveBlobs(); + return Dtype(0.); +} + +template +void HDF5OutputLayer::Backward_gpu(const vector*>& top, + const bool propagate_down, vector*>* bottom) { + return; +} + +INSTANTIATE_CLASS(HDF5OutputLayer); + +} // namespace caffe diff --git a/src/caffe/layers/hinge_loss_layer.cpp b/src/caffe/layers/hinge_loss_layer.cpp new file mode 100644 index 00000000000..24329fba028 --- /dev/null +++ b/src/caffe/layers/hinge_loss_layer.cpp @@ -0,0 +1,57 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include +#include +#include + +#include "caffe/layer.hpp" +#include "caffe/vision_layers.hpp" +#include "caffe/util/math_functions.hpp" +#include "caffe/util/io.hpp" + +using std::max; + +namespace caffe { + +template +Dtype HingeLossLayer::Forward_cpu(const vector*>& bottom, + vector*>* top) { + const Dtype* bottom_data = bottom[0]->cpu_data(); + Dtype* bottom_diff = bottom[0]->mutable_cpu_diff(); + const Dtype* label = bottom[1]->cpu_data(); + int num = bottom[0]->num(); + int count = bottom[0]->count(); + int dim = count / num; + + caffe_copy(count, bottom_data, bottom_diff); + for (int i = 0; i < num; ++i) { + bottom_diff[i * dim + static_cast(label[i])] *= -1; + } + for (int i = 0; i < num; ++i) { + for (int j = 0; j < dim; ++j) { + bottom_diff[i * dim + j] = max(Dtype(0), 1 + bottom_diff[i * dim + j]); + } + } + return caffe_cpu_asum(count, bottom_diff) / num; +} + +template +void HingeLossLayer::Backward_cpu(const vector*>& top, + const bool propagate_down, vector*>* bottom) { + Dtype* bottom_diff = (*bottom)[0]->mutable_cpu_diff(); + const Dtype* label = (*bottom)[1]->cpu_data(); + int num = (*bottom)[0]->num(); + int count = (*bottom)[0]->count(); + int dim = count / num; + + caffe_cpu_sign(count, bottom_diff, bottom_diff); + for (int i = 0; i < num; ++i) { + bottom_diff[i * dim + static_cast(label[i])] *= -1; + } + caffe_scal(count, Dtype(1. / num), bottom_diff); +} + +INSTANTIATE_CLASS(HingeLossLayer); + +} // namespace caffe diff --git a/src/caffe/layers/im2col_layer.cpp b/src/caffe/layers/im2col_layer.cpp index e711713b895..749ea3c2d6a 100644 --- a/src/caffe/layers/im2col_layer.cpp +++ b/src/caffe/layers/im2col_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include @@ -14,38 +14,38 @@ void Im2colLayer::SetUp(const vector*>& bottom, vector*>* top) { CHECK_EQ(bottom.size(), 1) << "Im2col Layer takes a single blob as input."; CHECK_EQ(top->size(), 1) << "Im2col Layer takes a single blob as output."; - KSIZE_ = this->layer_param_.kernelsize(); - STRIDE_ = this->layer_param_.stride(); - PAD_ = this->layer_param_.pad(); - CHANNELS_ = bottom[0]->channels(); - HEIGHT_ = bottom[0]->height(); - WIDTH_ = bottom[0]->width(); - (*top)[0]->Reshape(bottom[0]->num(), CHANNELS_ * KSIZE_ * KSIZE_, - (HEIGHT_ + 2 * PAD_ - KSIZE_) / STRIDE_ + 1, - (WIDTH_ + 2 * PAD_ - KSIZE_) / STRIDE_ + 1); + kernel_size_ = this->layer_param_.convolution_param().kernel_size(); + stride_ = this->layer_param_.convolution_param().stride(); + pad_ = this->layer_param_.convolution_param().pad(); + channels_ = bottom[0]->channels(); + height_ = bottom[0]->height(); + width_ = bottom[0]->width(); + (*top)[0]->Reshape(bottom[0]->num(), channels_ * kernel_size_ * kernel_size_, + (height_ + 2 * pad_ - kernel_size_) / stride_ + 1, + (width_ + 2 * pad_ - kernel_size_) / stride_ + 1); } template -void Im2colLayer::Forward_cpu(const vector*>& bottom, +Dtype Im2colLayer::Forward_cpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->cpu_data(); Dtype* top_data = (*top)[0]->mutable_cpu_data(); for (int n = 0; n < bottom[0]->num(); ++n) { - im2col_cpu(bottom_data + bottom[0]->offset(n), CHANNELS_, HEIGHT_, - WIDTH_, KSIZE_, PAD_, STRIDE_, top_data + (*top)[0]->offset(n)); + im2col_cpu(bottom_data + bottom[0]->offset(n), channels_, height_, + width_, kernel_size_, pad_, stride_, top_data + (*top)[0]->offset(n)); } + return Dtype(0.); } template -Dtype Im2colLayer::Backward_cpu(const vector*>& top, +void Im2colLayer::Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { const Dtype* top_diff = top[0]->cpu_diff(); Dtype* bottom_diff = (*bottom)[0]->mutable_cpu_diff(); for (int n = 0; n < top[0]->num(); ++n) { - col2im_cpu(top_diff + top[0]->offset(n), CHANNELS_, HEIGHT_, - WIDTH_, KSIZE_, PAD_, STRIDE_, bottom_diff + (*bottom)[0]->offset(n)); + col2im_cpu(top_diff + top[0]->offset(n), channels_, height_, width_, + kernel_size_, pad_, stride_, bottom_diff + (*bottom)[0]->offset(n)); } - return Dtype(0.); } INSTANTIATE_CLASS(Im2colLayer); diff --git a/src/caffe/layers/im2col_layer.cu b/src/caffe/layers/im2col_layer.cu index 2d949b12296..26bc1b97959 100644 --- a/src/caffe/layers/im2col_layer.cu +++ b/src/caffe/layers/im2col_layer.cu @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include @@ -10,26 +10,26 @@ namespace caffe { template -void Im2colLayer::Forward_gpu(const vector*>& bottom, +Dtype Im2colLayer::Forward_gpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->gpu_data(); Dtype* top_data = (*top)[0]->mutable_gpu_data(); for (int n = 0; n < bottom[0]->num(); ++n) { - im2col_gpu(bottom_data + bottom[0]->offset(n), CHANNELS_, HEIGHT_, - WIDTH_, KSIZE_, PAD_, STRIDE_, top_data + (*top)[0]->offset(n)); + im2col_gpu(bottom_data + bottom[0]->offset(n), channels_, height_, + width_, kernel_size_, pad_, stride_, top_data + (*top)[0]->offset(n)); } + return Dtype(0.); } template -Dtype Im2colLayer::Backward_gpu(const vector*>& top, +void Im2colLayer::Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { const Dtype* top_diff = top[0]->gpu_diff(); Dtype* bottom_diff = (*bottom)[0]->mutable_gpu_diff(); for (int n = 0; n < top[0]->num(); ++n) { - col2im_gpu(top_diff + top[0]->offset(n), CHANNELS_, HEIGHT_, - WIDTH_, KSIZE_, PAD_, STRIDE_, bottom_diff + (*bottom)[0]->offset(n)); + col2im_gpu(top_diff + top[0]->offset(n), channels_, height_, width_, + kernel_size_, pad_, stride_, bottom_diff + (*bottom)[0]->offset(n)); } - return Dtype(0.); } diff --git a/src/caffe/layers/image_data_layer.cpp b/src/caffe/layers/image_data_layer.cpp new file mode 100644 index 00000000000..ed064d0608d --- /dev/null +++ b/src/caffe/layers/image_data_layer.cpp @@ -0,0 +1,295 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include +#include + +#include +#include +#include // NOLINT(readability/streams) +#include // NOLINT(readability/streams) +#include + +#include "caffe/layer.hpp" +#include "caffe/util/io.hpp" +#include "caffe/util/math_functions.hpp" +#include "caffe/util/rng.hpp" +#include "caffe/vision_layers.hpp" + +using std::iterator; +using std::string; +using std::pair; + +namespace caffe { + +template +void* ImageDataLayerPrefetch(void* layer_pointer) { + CHECK(layer_pointer); + ImageDataLayer* layer = + reinterpret_cast*>(layer_pointer); + CHECK(layer); + Datum datum; + CHECK(layer->prefetch_data_); + Dtype* top_data = layer->prefetch_data_->mutable_cpu_data(); + Dtype* top_label = layer->prefetch_label_->mutable_cpu_data(); + ImageDataParameter image_data_param = layer->layer_param_.image_data_param(); + const Dtype scale = image_data_param.scale(); + const int batch_size = image_data_param.batch_size(); + const int crop_size = image_data_param.crop_size(); + const bool mirror = image_data_param.mirror(); + const int new_height = image_data_param.new_height(); + const int new_width = image_data_param.new_width(); + + if (mirror && crop_size == 0) { + LOG(FATAL) << "Current implementation requires mirror and crop_size to be " + << "set at the same time."; + } + // datum scales + const int channels = layer->datum_channels_; + const int height = layer->datum_height_; + const int width = layer->datum_width_; + const int size = layer->datum_size_; + const int lines_size = layer->lines_.size(); + const Dtype* mean = layer->data_mean_.cpu_data(); + for (int item_id = 0; item_id < batch_size; ++item_id) { + // get a blob + CHECK_GT(lines_size, layer->lines_id_); + if (!ReadImageToDatum(layer->lines_[layer->lines_id_].first, + layer->lines_[layer->lines_id_].second, + new_height, new_width, &datum)) { + continue; + } + const string& data = datum.data(); + if (crop_size) { + CHECK(data.size()) << "Image cropping only support uint8 data"; + int h_off, w_off; + // We only do random crop when we do training. + if (layer->phase_ == Caffe::TRAIN) { + h_off = layer->PrefetchRand() % (height - crop_size); + w_off = layer->PrefetchRand() % (width - crop_size); + } else { + h_off = (height - crop_size) / 2; + w_off = (width - crop_size) / 2; + } + if (mirror && layer->PrefetchRand() % 2) { + // Copy mirrored version + for (int c = 0; c < channels; ++c) { + for (int h = 0; h < crop_size; ++h) { + for (int w = 0; w < crop_size; ++w) { + int top_index = ((item_id * channels + c) * crop_size + h) + * crop_size + (crop_size - 1 - w); + int data_index = (c * height + h + h_off) * width + w + w_off; + Dtype datum_element = + static_cast(static_cast(data[data_index])); + top_data[top_index] = (datum_element - mean[data_index]) * scale; + } + } + } + } else { + // Normal copy + for (int c = 0; c < channels; ++c) { + for (int h = 0; h < crop_size; ++h) { + for (int w = 0; w < crop_size; ++w) { + int top_index = ((item_id * channels + c) * crop_size + h) + * crop_size + w; + int data_index = (c * height + h + h_off) * width + w + w_off; + Dtype datum_element = + static_cast(static_cast(data[data_index])); + top_data[top_index] = (datum_element - mean[data_index]) * scale; + } + } + } + } + } else { + // Just copy the whole data + if (data.size()) { + for (int j = 0; j < size; ++j) { + Dtype datum_element = + static_cast(static_cast(data[j])); + top_data[item_id * size + j] = (datum_element - mean[j]) * scale; + } + } else { + for (int j = 0; j < size; ++j) { + top_data[item_id * size + j] = + (datum.float_data(j) - mean[j]) * scale; + } + } + } + + top_label[item_id] = datum.label(); + // go to the next iter + layer->lines_id_++; + if (layer->lines_id_ >= lines_size) { + // We have reached the end. Restart from the first. + DLOG(INFO) << "Restarting data prefetching from start."; + layer->lines_id_ = 0; + if (layer->layer_param_.image_data_param().shuffle()) { + layer->ShuffleImages(); + } + } + } + + return reinterpret_cast(NULL); +} + +template +ImageDataLayer::~ImageDataLayer() { + JoinPrefetchThread(); +} + +template +void ImageDataLayer::SetUp(const vector*>& bottom, + vector*>* top) { + CHECK_EQ(bottom.size(), 0) << "Input Layer takes no input blobs."; + CHECK_EQ(top->size(), 2) << "Input Layer takes two blobs as output."; + const int new_height = this->layer_param_.image_data_param().new_height(); + const int new_width = this->layer_param_.image_data_param().new_height(); + CHECK((new_height == 0 && new_width == 0) || + (new_height > 0 && new_width > 0)) << "Current implementation requires " + "new_height and new_width to be set at the same time."; + // Read the file with filenames and labels + const string& source = this->layer_param_.image_data_param().source(); + LOG(INFO) << "Opening file " << source; + std::ifstream infile(source.c_str()); + string filename; + int label; + while (infile >> filename >> label) { + lines_.push_back(std::make_pair(filename, label)); + } + + if (this->layer_param_.image_data_param().shuffle()) { + // randomly shuffle data + LOG(INFO) << "Shuffling data"; + const unsigned int prefetch_rng_seed = caffe_rng_rand(); + prefetch_rng_.reset(new Caffe::RNG(prefetch_rng_seed)); + ShuffleImages(); + } + LOG(INFO) << "A total of " << lines_.size() << " images."; + + lines_id_ = 0; + // Check if we would need to randomly skip a few data points + if (this->layer_param_.image_data_param().rand_skip()) { + unsigned int skip = caffe_rng_rand() % + this->layer_param_.image_data_param().rand_skip(); + LOG(INFO) << "Skipping first " << skip << " data points."; + CHECK_GT(lines_.size(), skip) << "Not enough points to skip"; + lines_id_ = skip; + } + // Read a data point, and use it to initialize the top blob. + Datum datum; + CHECK(ReadImageToDatum(lines_[lines_id_].first, lines_[lines_id_].second, + new_height, new_width, &datum)); + // image + const int crop_size = this->layer_param_.image_data_param().crop_size(); + const int batch_size = this->layer_param_.image_data_param().batch_size(); + const string& mean_file = this->layer_param_.image_data_param().mean_file(); + if (crop_size > 0) { + (*top)[0]->Reshape(batch_size, datum.channels(), crop_size, crop_size); + prefetch_data_.reset(new Blob(batch_size, datum.channels(), + crop_size, crop_size)); + } else { + (*top)[0]->Reshape(batch_size, datum.channels(), datum.height(), + datum.width()); + prefetch_data_.reset(new Blob(batch_size, datum.channels(), + datum.height(), datum.width())); + } + LOG(INFO) << "output data size: " << (*top)[0]->num() << "," + << (*top)[0]->channels() << "," << (*top)[0]->height() << "," + << (*top)[0]->width(); + // label + (*top)[1]->Reshape(batch_size, 1, 1, 1); + prefetch_label_.reset(new Blob(batch_size, 1, 1, 1)); + // datum size + datum_channels_ = datum.channels(); + datum_height_ = datum.height(); + datum_width_ = datum.width(); + datum_size_ = datum.channels() * datum.height() * datum.width(); + CHECK_GT(datum_height_, crop_size); + CHECK_GT(datum_width_, crop_size); + // check if we want to have mean + if (this->layer_param_.image_data_param().has_mean_file()) { + BlobProto blob_proto; + LOG(INFO) << "Loading mean file from" << mean_file; + ReadProtoFromBinaryFile(mean_file.c_str(), &blob_proto); + data_mean_.FromProto(blob_proto); + CHECK_EQ(data_mean_.num(), 1); + CHECK_EQ(data_mean_.channels(), datum_channels_); + CHECK_EQ(data_mean_.height(), datum_height_); + CHECK_EQ(data_mean_.width(), datum_width_); + } else { + // Simply initialize an all-empty mean. + data_mean_.Reshape(1, datum_channels_, datum_height_, datum_width_); + } + // Now, start the prefetch thread. Before calling prefetch, we make two + // cpu_data calls so that the prefetch thread does not accidentally make + // simultaneous cudaMalloc calls when the main thread is running. In some + // GPUs this seems to cause failures if we do not so. + prefetch_data_->mutable_cpu_data(); + prefetch_label_->mutable_cpu_data(); + data_mean_.cpu_data(); + DLOG(INFO) << "Initializing prefetch"; + CreatePrefetchThread(); + DLOG(INFO) << "Prefetch initialized."; +} + +template +void ImageDataLayer::CreatePrefetchThread() { + phase_ = Caffe::phase(); + const bool prefetch_needs_rand = + this->layer_param_.image_data_param().shuffle() || + ((phase_ == Caffe::TRAIN) && + (this->layer_param_.image_data_param().mirror() || + this->layer_param_.image_data_param().crop_size())); + if (prefetch_needs_rand) { + const unsigned int prefetch_rng_seed = caffe_rng_rand(); + prefetch_rng_.reset(new Caffe::RNG(prefetch_rng_seed)); + } else { + prefetch_rng_.reset(); + } + // Create the thread. + CHECK(!pthread_create(&thread_, NULL, ImageDataLayerPrefetch, + static_cast(this))) << "Pthread execution failed."; +} + +template +void ImageDataLayer::ShuffleImages() { + const int num_images = lines_.size(); + for (int i = 0; i < num_images; ++i) { + const int max_rand_index = num_images - i; + const int rand_index = PrefetchRand() % max_rand_index; + pair item = lines_[rand_index]; + lines_.erase(lines_.begin() + rand_index); + lines_.push_back(item); + } +} + +template +void ImageDataLayer::JoinPrefetchThread() { + CHECK(!pthread_join(thread_, NULL)) << "Pthread joining failed."; +} + +template +unsigned int ImageDataLayer::PrefetchRand() { + caffe::rng_t* prefetch_rng = + static_cast(prefetch_rng_->generator()); + return (*prefetch_rng)(); +} + +template +Dtype ImageDataLayer::Forward_cpu(const vector*>& bottom, + vector*>* top) { + // First, join the thread + JoinPrefetchThread(); + // Copy the data + caffe_copy(prefetch_data_->count(), prefetch_data_->cpu_data(), + (*top)[0]->mutable_cpu_data()); + caffe_copy(prefetch_label_->count(), prefetch_label_->cpu_data(), + (*top)[1]->mutable_cpu_data()); + // Start a new prefetch thread + CreatePrefetchThread(); + return Dtype(0.); +} + +INSTANTIATE_CLASS(ImageDataLayer); + +} // namespace caffe diff --git a/src/caffe/layers/image_data_layer.cu b/src/caffe/layers/image_data_layer.cu new file mode 100644 index 00000000000..98047297d80 --- /dev/null +++ b/src/caffe/layers/image_data_layer.cu @@ -0,0 +1,43 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include +#include +#include + +#include +#include +#include // NOLINT(readability/streams) +#include // NOLINT(readability/streams) + +#include "caffe/blob.hpp" +#include "caffe/common.hpp" +#include "caffe/layer.hpp" +#include "caffe/util/io.hpp" +#include "caffe/vision_layers.hpp" + +using std::string; +using std::pair; + +namespace caffe { + +template +Dtype ImageDataLayer::Forward_gpu(const vector*>& bottom, + vector*>* top) { + // First, join the thread + JoinPrefetchThread(); + // Copy the data + CUDA_CHECK(cudaMemcpy((*top)[0]->mutable_gpu_data(), + prefetch_data_->cpu_data(), sizeof(Dtype) * prefetch_data_->count(), + cudaMemcpyHostToDevice)); + CUDA_CHECK(cudaMemcpy((*top)[1]->mutable_gpu_data(), + prefetch_label_->cpu_data(), sizeof(Dtype) * prefetch_label_->count(), + cudaMemcpyHostToDevice)); + // Start a new prefetch thread + CreatePrefetchThread(); + return Dtype(0.); +} + +INSTANTIATE_CLASS(ImageDataLayer); + +} // namespace caffe diff --git a/src/caffe/layers/images_layer.cpp b/src/caffe/layers/images_layer.cpp deleted file mode 100644 index e750e01b266..00000000000 --- a/src/caffe/layers/images_layer.cpp +++ /dev/null @@ -1,282 +0,0 @@ -// Copyright 2013 Yangqing Jia - -#include -#include -#include - -#include -#include -#include // NOLINT(readability/streams) -#include // NOLINT(readability/streams) - -#include "caffe/layer.hpp" -#include "caffe/util/io.hpp" -#include "caffe/vision_layers.hpp" - -using std::string; -using std::pair; - -namespace caffe { - -template -void* ImagesLayerPrefetch(void* layer_pointer) { - CHECK(layer_pointer); - ImagesLayer* layer = - reinterpret_cast*>(layer_pointer); - CHECK(layer); - Datum datum; - CHECK(layer->prefetch_data_); - Dtype* top_data = layer->prefetch_data_->mutable_cpu_data(); - Dtype* top_label = layer->prefetch_label_->mutable_cpu_data(); - const Dtype scale = layer->layer_param_.scale(); - const int batchsize = layer->layer_param_.batchsize(); - const int cropsize = layer->layer_param_.cropsize(); - const bool mirror = layer->layer_param_.mirror(); - const int new_height = layer->layer_param_.new_height(); - const int new_width = layer->layer_param_.new_height(); - - if (mirror && cropsize == 0) { - LOG(FATAL) << "Current implementation requires mirror and cropsize to be " - << "set at the same time."; - } - // datum scales - const int channels = layer->datum_channels_; - const int height = layer->datum_height_; - const int width = layer->datum_width_; - const int size = layer->datum_size_; - const int lines_size = layer->lines_.size(); - const Dtype* mean = layer->data_mean_.cpu_data(); - for (int itemid = 0; itemid < batchsize; ++itemid) { - // get a blob - CHECK_GT(lines_size, layer->lines_id_); - if (!ReadImageToDatum(layer->lines_[layer->lines_id_].first, - layer->lines_[layer->lines_id_].second, - new_height, new_width, &datum)) { - continue; - } - const string& data = datum.data(); - if (cropsize) { - CHECK(data.size()) << "Image cropping only support uint8 data"; - int h_off, w_off; - // We only do random crop when we do training. - if (Caffe::phase() == Caffe::TRAIN) { - // NOLINT_NEXT_LINE(runtime/threadsafe_fn) - h_off = rand() % (height - cropsize); - // NOLINT_NEXT_LINE(runtime/threadsafe_fn) - w_off = rand() % (width - cropsize); - } else { - h_off = (height - cropsize) / 2; - w_off = (width - cropsize) / 2; - } - // NOLINT_NEXT_LINE(runtime/threadsafe_fn) - if (mirror && rand() % 2) { - // Copy mirrored version - for (int c = 0; c < channels; ++c) { - for (int h = 0; h < cropsize; ++h) { - for (int w = 0; w < cropsize; ++w) { - top_data[((itemid * channels + c) * cropsize + h) * cropsize - + cropsize - 1 - w] = - (static_cast( - (uint8_t)data[(c * height + h + h_off) * width - + w + w_off]) - - mean[(c * height + h + h_off) * width + w + w_off]) - * scale; - } - } - } - } else { - // Normal copy - for (int c = 0; c < channels; ++c) { - for (int h = 0; h < cropsize; ++h) { - for (int w = 0; w < cropsize; ++w) { - top_data[((itemid * channels + c) * cropsize + h) * cropsize + w] - = (static_cast( - (uint8_t)data[(c * height + h + h_off) * width - + w + w_off]) - - mean[(c * height + h + h_off) * width + w + w_off]) - * scale; - } - } - } - } - } else { - // Just copy the whole data - if (data.size()) { - for (int j = 0; j < size; ++j) { - top_data[itemid * size + j] = - (static_cast((uint8_t)data[j]) - mean[j]) * scale; - } - } else { - for (int j = 0; j < size; ++j) { - top_data[itemid * size + j] = - (datum.float_data(j) - mean[j]) * scale; - } - } - } - - top_label[itemid] = datum.label(); - // go to the next iter - layer->lines_id_++; - if (layer->lines_id_ >= lines_size) { - // We have reached the end. Restart from the first. - DLOG(INFO) << "Restarting data prefetching from start."; - layer->lines_id_ = 0; - if (layer->layer_param_.shuffle_images()) { - std::random_shuffle(layer->lines_.begin(), layer->lines_.end()); - } - } - } - - return reinterpret_cast(NULL); -} - -template -ImagesLayer::~ImagesLayer() { - // Finally, join the thread - CHECK(!pthread_join(thread_, NULL)) << "Pthread joining failed."; -} - -template -void ImagesLayer::SetUp(const vector*>& bottom, - vector*>* top) { - CHECK_EQ(bottom.size(), 0) << "Input Layer takes no input blobs."; - CHECK_EQ(top->size(), 2) << "Input Layer takes two blobs as output."; - const int new_height = this->layer_param_.new_height(); - const int new_width = this->layer_param_.new_height(); - CHECK((new_height == 0 && new_width == 0) || - (new_height > 0 && new_width > 0)) << - "Current implementation requires new_height and new_width to be set" - "at the same time."; - // Read the file with filenames and labels - LOG(INFO) << "Opening file " << this->layer_param_.source(); - std::ifstream infile(this->layer_param_.source().c_str()); - string filename; - int label; - while (infile >> filename >> label) { - lines_.push_back(std::make_pair(filename, label)); - } - - if (this->layer_param_.shuffle_images()) { - // randomly shuffle data - LOG(INFO) << "Shuffling data"; - std::random_shuffle(lines_.begin(), lines_.end()); - } - LOG(INFO) << "A total of " << lines_.size() << " images."; - - lines_id_ = 0; - // Check if we would need to randomly skip a few data points - if (this->layer_param_.rand_skip()) { - // NOLINT_NEXT_LINE(runtime/threadsafe_fn) - unsigned int skip = rand() % this->layer_param_.rand_skip(); - LOG(INFO) << "Skipping first " << skip << " data points."; - CHECK_GT(lines_.size(), skip) << "Not enought points to skip"; - lines_id_ = skip; - } - // Read a data point, and use it to initialize the top blob. - Datum datum; - CHECK(ReadImageToDatum(lines_[lines_id_].first, lines_[lines_id_].second, - new_height, new_width, &datum)); - // image - int cropsize = this->layer_param_.cropsize(); - if (cropsize > 0) { - (*top)[0]->Reshape( - this->layer_param_.batchsize(), datum.channels(), cropsize, cropsize); - prefetch_data_.reset(new Blob( - this->layer_param_.batchsize(), datum.channels(), cropsize, cropsize)); - } else { - (*top)[0]->Reshape( - this->layer_param_.batchsize(), datum.channels(), datum.height(), - datum.width()); - prefetch_data_.reset(new Blob( - this->layer_param_.batchsize(), datum.channels(), datum.height(), - datum.width())); - } - LOG(INFO) << "output data size: " << (*top)[0]->num() << "," - << (*top)[0]->channels() << "," << (*top)[0]->height() << "," - << (*top)[0]->width(); - // label - (*top)[1]->Reshape(this->layer_param_.batchsize(), 1, 1, 1); - prefetch_label_.reset( - new Blob(this->layer_param_.batchsize(), 1, 1, 1)); - // datum size - datum_channels_ = datum.channels(); - datum_height_ = datum.height(); - datum_width_ = datum.width(); - datum_size_ = datum.channels() * datum.height() * datum.width(); - CHECK_GT(datum_height_, cropsize); - CHECK_GT(datum_width_, cropsize); - // check if we want to have mean - if (this->layer_param_.has_meanfile()) { - BlobProto blob_proto; - LOG(INFO) << "Loading mean file from" << this->layer_param_.meanfile(); - ReadProtoFromBinaryFile(this->layer_param_.meanfile().c_str(), &blob_proto); - data_mean_.FromProto(blob_proto); - CHECK_EQ(data_mean_.num(), 1); - CHECK_EQ(data_mean_.channels(), datum_channels_); - CHECK_EQ(data_mean_.height(), datum_height_); - CHECK_EQ(data_mean_.width(), datum_width_); - } else { - // Simply initialize an all-empty mean. - data_mean_.Reshape(1, datum_channels_, datum_height_, datum_width_); - } - // Now, start the prefetch thread. Before calling prefetch, we make two - // cpu_data calls so that the prefetch thread does not accidentally make - // simultaneous cudaMalloc calls when the main thread is running. In some - // GPUs this seems to cause failures if we do not so. - prefetch_data_->mutable_cpu_data(); - prefetch_label_->mutable_cpu_data(); - data_mean_.cpu_data(); - DLOG(INFO) << "Initializing prefetch"; - CHECK(!pthread_create(&thread_, NULL, ImagesLayerPrefetch, - reinterpret_cast(this))) << "Pthread execution failed."; - DLOG(INFO) << "Prefetch initialized."; -} - -template -void ImagesLayer::Forward_cpu(const vector*>& bottom, - vector*>* top) { - // First, join the thread - CHECK(!pthread_join(thread_, NULL)) << "Pthread joining failed."; - // Copy the data - memcpy((*top)[0]->mutable_cpu_data(), prefetch_data_->cpu_data(), - sizeof(Dtype) * prefetch_data_->count()); - memcpy((*top)[1]->mutable_cpu_data(), prefetch_label_->cpu_data(), - sizeof(Dtype) * prefetch_label_->count()); - // Start a new prefetch thread - CHECK(!pthread_create(&thread_, NULL, ImagesLayerPrefetch, - reinterpret_cast(this))) << "Pthread execution failed."; -} - -template -void ImagesLayer::Forward_gpu(const vector*>& bottom, - vector*>* top) { - // First, join the thread - CHECK(!pthread_join(thread_, NULL)) << "Pthread joining failed."; - // Copy the data - CUDA_CHECK(cudaMemcpy((*top)[0]->mutable_gpu_data(), - prefetch_data_->cpu_data(), sizeof(Dtype) * prefetch_data_->count(), - cudaMemcpyHostToDevice)); - CUDA_CHECK(cudaMemcpy((*top)[1]->mutable_gpu_data(), - prefetch_label_->cpu_data(), sizeof(Dtype) * prefetch_label_->count(), - cudaMemcpyHostToDevice)); - // Start a new prefetch thread - CHECK(!pthread_create(&thread_, NULL, ImagesLayerPrefetch, - reinterpret_cast(this))) << "Pthread execution failed."; -} - -// The backward operations are dummy - they do not carry any computation. -template -Dtype ImagesLayer::Backward_cpu(const vector*>& top, - const bool propagate_down, vector*>* bottom) { - return Dtype(0.); -} - -template -Dtype ImagesLayer::Backward_gpu(const vector*>& top, - const bool propagate_down, vector*>* bottom) { - return Dtype(0.); -} - -INSTANTIATE_CLASS(ImagesLayer); - -} // namespace caffe diff --git a/src/caffe/layers/infogain_loss_layer.cpp b/src/caffe/layers/infogain_loss_layer.cpp new file mode 100644 index 00000000000..ab6e67d73b1 --- /dev/null +++ b/src/caffe/layers/infogain_loss_layer.cpp @@ -0,0 +1,76 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include +#include +#include + +#include "caffe/layer.hpp" +#include "caffe/vision_layers.hpp" +#include "caffe/util/math_functions.hpp" +#include "caffe/util/io.hpp" + +using std::max; + +namespace caffe { + +template +void InfogainLossLayer::FurtherSetUp( + const vector*>& bottom, vector*>* top) { + CHECK_EQ(bottom[1]->channels(), 1); + CHECK_EQ(bottom[1]->height(), 1); + CHECK_EQ(bottom[1]->width(), 1); + + BlobProto blob_proto; + ReadProtoFromBinaryFile( + this->layer_param_.infogain_loss_param().source(), &blob_proto); + infogain_.FromProto(blob_proto); + CHECK_EQ(infogain_.num(), 1); + CHECK_EQ(infogain_.channels(), 1); + CHECK_EQ(infogain_.height(), infogain_.width()); +} + + +template +Dtype InfogainLossLayer::Forward_cpu(const vector*>& bottom, + vector*>* top) { + const Dtype* bottom_data = bottom[0]->cpu_data(); + const Dtype* bottom_label = bottom[1]->cpu_data(); + const Dtype* infogain_mat = infogain_.cpu_data(); + int num = bottom[0]->num(); + int dim = bottom[0]->count() / bottom[0]->num(); + CHECK_EQ(infogain_.height(), dim); + Dtype loss = 0; + for (int i = 0; i < num; ++i) { + int label = static_cast(bottom_label[i]); + for (int j = 0; j < dim; ++j) { + Dtype prob = max(bottom_data[i * dim + j], Dtype(kLOG_THRESHOLD)); + loss -= infogain_mat[label * dim + j] * log(prob); + } + } + return loss / num; +} + +template +void InfogainLossLayer::Backward_cpu(const vector*>& top, + const bool propagate_down, + vector*>* bottom) { + const Dtype* bottom_data = (*bottom)[0]->cpu_data(); + const Dtype* bottom_label = (*bottom)[1]->cpu_data(); + const Dtype* infogain_mat = infogain_.cpu_data(); + Dtype* bottom_diff = (*bottom)[0]->mutable_cpu_diff(); + int num = (*bottom)[0]->num(); + int dim = (*bottom)[0]->count() / (*bottom)[0]->num(); + CHECK_EQ(infogain_.height(), dim); + for (int i = 0; i < num; ++i) { + int label = static_cast(bottom_label[i]); + for (int j = 0; j < dim; ++j) { + Dtype prob = max(bottom_data[i * dim + j], Dtype(kLOG_THRESHOLD)); + bottom_diff[i * dim + j] = - infogain_mat[label * dim + j] / prob / num; + } + } +} + +INSTANTIATE_CLASS(InfogainLossLayer); + +} // namespace caffe diff --git a/src/caffe/layers/inner_product_layer.cpp b/src/caffe/layers/inner_product_layer.cpp index 6987a787ed3..c60261e9486 100644 --- a/src/caffe/layers/inner_product_layer.cpp +++ b/src/caffe/layers/inner_product_layer.cpp @@ -1,7 +1,4 @@ -// Copyright 2013 Yangqing Jia - - -#include +// Copyright 2014 BVLC and contributors. #include @@ -19,8 +16,8 @@ void InnerProductLayer::SetUp(const vector*>& bottom, vector*>* top) { CHECK_EQ(bottom.size(), 1) << "IP Layer takes a single blob as input."; CHECK_EQ(top->size(), 1) << "IP Layer takes a single blob as output."; - const int num_output = this->layer_param_.num_output(); - biasterm_ = this->layer_param_.biasterm(); + const int num_output = this->layer_param_.inner_product_param().num_output(); + bias_term_ = this->layer_param_.inner_product_param().bias_term(); // Figure out the dimensions M_ = bottom[0]->num(); K_ = bottom[0]->count() / bottom[0]->num(); @@ -30,7 +27,7 @@ void InnerProductLayer::SetUp(const vector*>& bottom, if (this->blobs_.size() > 0) { LOG(INFO) << "Skipping parameter initialization"; } else { - if (biasterm_) { + if (bias_term_) { this->blobs_.resize(2); } else { this->blobs_.resize(1); @@ -38,19 +35,19 @@ void InnerProductLayer::SetUp(const vector*>& bottom, // Intialize the weight this->blobs_[0].reset(new Blob(1, 1, N_, K_)); // fill the weights - shared_ptr > weight_filler( - GetFiller(this->layer_param_.weight_filler())); + shared_ptr > weight_filler(GetFiller( + this->layer_param_.inner_product_param().weight_filler())); weight_filler->Fill(this->blobs_[0].get()); // If necessary, intiialize and fill the bias term - if (biasterm_) { + if (bias_term_) { this->blobs_[1].reset(new Blob(1, 1, 1, N_)); - shared_ptr > bias_filler( - GetFiller(this->layer_param_.bias_filler())); + shared_ptr > bias_filler(GetFiller( + this->layer_param_.inner_product_param().bias_filler())); bias_filler->Fill(this->blobs_[1].get()); } } // parameter initialization // Setting up the bias multiplier - if (biasterm_) { + if (bias_term_) { bias_multiplier_.reset(new SyncedMemory(M_ * sizeof(Dtype))); Dtype* bias_multiplier_data = reinterpret_cast(bias_multiplier_->mutable_cpu_data()); @@ -61,22 +58,23 @@ void InnerProductLayer::SetUp(const vector*>& bottom, } template -void InnerProductLayer::Forward_cpu(const vector*>& bottom, +Dtype InnerProductLayer::Forward_cpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->cpu_data(); Dtype* top_data = (*top)[0]->mutable_cpu_data(); const Dtype* weight = this->blobs_[0]->cpu_data(); caffe_cpu_gemm(CblasNoTrans, CblasTrans, M_, N_, K_, (Dtype)1., bottom_data, weight, (Dtype)0., top_data); - if (biasterm_) { + if (bias_term_) { caffe_cpu_gemm(CblasNoTrans, CblasNoTrans, M_, N_, 1, (Dtype)1., reinterpret_cast(bias_multiplier_->cpu_data()), this->blobs_[1]->cpu_data(), (Dtype)1., top_data); } + return Dtype(0); } template -Dtype InnerProductLayer::Backward_cpu(const vector*>& top, +void InnerProductLayer::Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { const Dtype* top_diff = top[0]->cpu_diff(); @@ -84,7 +82,7 @@ Dtype InnerProductLayer::Backward_cpu(const vector*>& top, // Gradient with respect to weight caffe_cpu_gemm(CblasTrans, CblasNoTrans, N_, K_, M_, (Dtype)1., top_diff, bottom_data, (Dtype)0., this->blobs_[0]->mutable_cpu_diff()); - if (biasterm_) { + if (bias_term_) { // Gradient with respect to bias caffe_cpu_gemv(CblasTrans, M_, N_, (Dtype)1., top_diff, reinterpret_cast(bias_multiplier_->cpu_data()), (Dtype)0., @@ -96,7 +94,6 @@ Dtype InnerProductLayer::Backward_cpu(const vector*>& top, top_diff, this->blobs_[0]->cpu_data(), (Dtype)0., (*bottom)[0]->mutable_cpu_diff()); } - return Dtype(0); } INSTANTIATE_CLASS(InnerProductLayer); diff --git a/src/caffe/layers/inner_product_layer.cu b/src/caffe/layers/inner_product_layer.cu index c7c3e2a99fd..f139c23c310 100644 --- a/src/caffe/layers/inner_product_layer.cu +++ b/src/caffe/layers/inner_product_layer.cu @@ -1,7 +1,5 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. - -#include #include #include @@ -16,22 +14,23 @@ namespace caffe { template -void InnerProductLayer::Forward_gpu(const vector*>& bottom, +Dtype InnerProductLayer::Forward_gpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->gpu_data(); Dtype* top_data = (*top)[0]->mutable_gpu_data(); const Dtype* weight = this->blobs_[0]->gpu_data(); caffe_gpu_gemm(CblasNoTrans, CblasTrans, M_, N_, K_, (Dtype)1., bottom_data, weight, (Dtype)0., top_data); - if (biasterm_) { + if (bias_term_) { caffe_gpu_gemm(CblasNoTrans, CblasNoTrans, M_, N_, 1, (Dtype)1., reinterpret_cast(bias_multiplier_->gpu_data()), this->blobs_[1]->gpu_data(), (Dtype)1., top_data); } + return Dtype(0); } template -Dtype InnerProductLayer::Backward_gpu(const vector*>& top, +void InnerProductLayer::Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { const Dtype* top_diff = top[0]->gpu_diff(); @@ -39,7 +38,7 @@ Dtype InnerProductLayer::Backward_gpu(const vector*>& top, // Gradient with respect to weight caffe_gpu_gemm(CblasTrans, CblasNoTrans, N_, K_, M_, (Dtype)1., top_diff, bottom_data, (Dtype)0., this->blobs_[0]->mutable_gpu_diff()); - if (biasterm_) { + if (bias_term_) { // Gradient with respect to bias caffe_gpu_gemv(CblasTrans, M_, N_, (Dtype)1., top_diff, reinterpret_cast(bias_multiplier_->gpu_data()), @@ -51,7 +50,6 @@ Dtype InnerProductLayer::Backward_gpu(const vector*>& top, top_diff, this->blobs_[0]->gpu_data(), (Dtype)0., (*bottom)[0]->mutable_gpu_diff()); } - return Dtype(0); } INSTANTIATE_CLASS(InnerProductLayer); diff --git a/src/caffe/layers/loss_layer.cpp b/src/caffe/layers/loss_layer.cpp index 1c4303d9bd4..1efb6235f98 100644 --- a/src/caffe/layers/loss_layer.cpp +++ b/src/caffe/layers/loss_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -14,163 +14,16 @@ using std::max; namespace caffe { -const float kLOG_THRESHOLD = 1e-20; - template -void MultinomialLogisticLossLayer::SetUp( +void LossLayer::SetUp( const vector*>& bottom, vector*>* top) { CHECK_EQ(bottom.size(), 2) << "Loss Layer takes two blobs as input."; CHECK_EQ(top->size(), 0) << "Loss Layer takes no output."; CHECK_EQ(bottom[0]->num(), bottom[1]->num()) << "The data and label should have the same number."; - CHECK_EQ(bottom[1]->channels(), 1); - CHECK_EQ(bottom[1]->height(), 1); - CHECK_EQ(bottom[1]->width(), 1); -} - - -template -Dtype MultinomialLogisticLossLayer::Backward_cpu( - const vector*>& top, const bool propagate_down, - vector*>* bottom) { - const Dtype* bottom_data = (*bottom)[0]->cpu_data(); - const Dtype* bottom_label = (*bottom)[1]->cpu_data(); - Dtype* bottom_diff = (*bottom)[0]->mutable_cpu_diff(); - int num = (*bottom)[0]->num(); - int dim = (*bottom)[0]->count() / (*bottom)[0]->num(); - memset(bottom_diff, 0, sizeof(Dtype) * (*bottom)[0]->count()); - Dtype loss = 0; - for (int i = 0; i < num; ++i) { - int label = static_cast(bottom_label[i]); - Dtype prob = max(bottom_data[i * dim + label], Dtype(kLOG_THRESHOLD)); - loss -= log(prob); - bottom_diff[i * dim + label] = - 1. / prob / num; - } - return loss / num; -} - -// TODO: implement the GPU version for multinomial loss - - -template -void InfogainLossLayer::SetUp( - const vector*>& bottom, vector*>* top) { - CHECK_EQ(bottom.size(), 2) << "Loss Layer takes two blobs as input."; - CHECK_EQ(top->size(), 0) << "Loss Layer takes no output."; - CHECK_EQ(bottom[0]->num(), bottom[1]->num()) - << "The data and label should have the same number."; - CHECK_EQ(bottom[1]->channels(), 1); - CHECK_EQ(bottom[1]->height(), 1); - CHECK_EQ(bottom[1]->width(), 1); - BlobProto blob_proto; - ReadProtoFromBinaryFile(this->layer_param_.source(), &blob_proto); - infogain_.FromProto(blob_proto); - CHECK_EQ(infogain_.num(), 1); - CHECK_EQ(infogain_.channels(), 1); - CHECK_EQ(infogain_.height(), infogain_.width()); -} - - -template -Dtype InfogainLossLayer::Backward_cpu(const vector*>& top, - const bool propagate_down, - vector*>* bottom) { - const Dtype* bottom_data = (*bottom)[0]->cpu_data(); - const Dtype* bottom_label = (*bottom)[1]->cpu_data(); - const Dtype* infogain_mat = infogain_.cpu_data(); - Dtype* bottom_diff = (*bottom)[0]->mutable_cpu_diff(); - int num = (*bottom)[0]->num(); - int dim = (*bottom)[0]->count() / (*bottom)[0]->num(); - CHECK_EQ(infogain_.height(), dim); - Dtype loss = 0; - for (int i = 0; i < num; ++i) { - int label = static_cast(bottom_label[i]); - for (int j = 0; j < dim; ++j) { - Dtype prob = max(bottom_data[i * dim + j], Dtype(kLOG_THRESHOLD)); - loss -= infogain_mat[label * dim + j] * log(prob); - bottom_diff[i * dim + j] = - infogain_mat[label * dim + j] / prob / num; - } - } - return loss / num; -} - - -template -void EuclideanLossLayer::SetUp( - const vector*>& bottom, vector*>* top) { - CHECK_EQ(bottom.size(), 2) << "Loss Layer takes two blobs as input."; - CHECK_EQ(top->size(), 0) << "Loss Layer takes no as output."; - CHECK_EQ(bottom[0]->num(), bottom[1]->num()) - << "The data and label should have the same number."; - CHECK_EQ(bottom[0]->channels(), bottom[1]->channels()); - CHECK_EQ(bottom[0]->height(), bottom[1]->height()); - CHECK_EQ(bottom[0]->width(), bottom[1]->width()); - difference_.Reshape(bottom[0]->num(), bottom[0]->channels(), - bottom[0]->height(), bottom[0]->width()); -} - -template -Dtype EuclideanLossLayer::Backward_cpu(const vector*>& top, - const bool propagate_down, vector*>* bottom) { - int count = (*bottom)[0]->count(); - int num = (*bottom)[0]->num(); - caffe_sub(count, (*bottom)[0]->cpu_data(), (*bottom)[1]->cpu_data(), - difference_.mutable_cpu_data()); - Dtype loss = caffe_cpu_dot( - count, difference_.cpu_data(), difference_.cpu_data()) / num / Dtype(2); - // Compute the gradient - caffe_axpby(count, Dtype(1) / num, difference_.cpu_data(), Dtype(0), - (*bottom)[0]->mutable_cpu_diff()); - return loss; -} - -template -void AccuracyLayer::SetUp( - const vector*>& bottom, vector*>* top) { - CHECK_EQ(bottom.size(), 2) << "Accuracy Layer takes two blobs as input."; - CHECK_EQ(top->size(), 1) << "Accuracy Layer takes 1 output."; - CHECK_EQ(bottom[0]->num(), bottom[1]->num()) - << "The data and label should have the same number."; - CHECK_EQ(bottom[1]->channels(), 1); - CHECK_EQ(bottom[1]->height(), 1); - CHECK_EQ(bottom[1]->width(), 1); - (*top)[0]->Reshape(1, 2, 1, 1); -} - -template -void AccuracyLayer::Forward_cpu(const vector*>& bottom, - vector*>* top) { - Dtype accuracy = 0; - Dtype logprob = 0; - const Dtype* bottom_data = bottom[0]->cpu_data(); - const Dtype* bottom_label = bottom[1]->cpu_data(); - int num = bottom[0]->num(); - int dim = bottom[0]->count() / bottom[0]->num(); - for (int i = 0; i < num; ++i) { - // Accuracy - Dtype maxval = -FLT_MAX; - int max_id = 0; - for (int j = 0; j < dim; ++j) { - if (bottom_data[i * dim + j] > maxval) { - maxval = bottom_data[i * dim + j]; - max_id = j; - } - } - if (max_id == static_cast(bottom_label[i])) { - ++accuracy; - } - Dtype prob = max(bottom_data[i * dim + static_cast(bottom_label[i])], - Dtype(kLOG_THRESHOLD)); - logprob -= log(prob); - } - // LOG(INFO) << "Accuracy: " << accuracy; - (*top)[0]->mutable_cpu_data()[0] = accuracy / num; - (*top)[0]->mutable_cpu_data()[1] = logprob / num; + FurtherSetUp(bottom, top); } -INSTANTIATE_CLASS(MultinomialLogisticLossLayer); -INSTANTIATE_CLASS(InfogainLossLayer); -INSTANTIATE_CLASS(EuclideanLossLayer); -INSTANTIATE_CLASS(AccuracyLayer); +INSTANTIATE_CLASS(LossLayer); } // namespace caffe diff --git a/src/caffe/layers/lrn_layer.cpp b/src/caffe/layers/lrn_layer.cpp index 36dbe41ea8c..cfcc59c9feb 100644 --- a/src/caffe/layers/lrn_layer.cpp +++ b/src/caffe/layers/lrn_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include @@ -19,17 +19,102 @@ void LRNLayer::SetUp(const vector*>& bottom, channels_ = bottom[0]->channels(); height_ = bottom[0]->height(); width_ = bottom[0]->width(); - (*top)[0]->Reshape(num_, channels_, height_, width_); - scale_.Reshape(num_, channels_, height_, width_); - size_ = this->layer_param_.local_size(); + size_ = this->layer_param_.lrn_param().local_size(); pre_pad_ = (size_ - 1) / 2; - alpha_ = this->layer_param_.alpha(); - beta_ = this->layer_param_.beta(); + alpha_ = this->layer_param_.lrn_param().alpha(); + beta_ = this->layer_param_.lrn_param().beta(); + switch (this->layer_param_.lrn_param().norm_region()) { + case LRNParameter_NormRegion_ACROSS_CHANNELS: + (*top)[0]->Reshape(num_, channels_, height_, width_); + scale_.Reshape(num_, channels_, height_, width_); + break; + case LRNParameter_NormRegion_WITHIN_CHANNEL: + { + // Set up split_layer_ to use inputs in the numerator and denominator. + split_top_vec_.clear(); + split_top_vec_.push_back(bottom[0]); + split_top_vec_.push_back(&square_input_); + LayerParameter split_param; + split_layer_.reset(new SplitLayer(split_param)); + split_layer_->SetUp(bottom, &split_top_vec_); + // Set up square_layer_ to square the inputs. + square_input_.Reshape(num_, channels_, height_, width_); + square_bottom_vec_.clear(); + square_top_vec_.clear(); + square_bottom_vec_.push_back(&square_input_); + square_top_vec_.push_back(&square_output_); + LayerParameter square_param; + square_param.mutable_power_param()->set_power(Dtype(2)); + square_layer_.reset(new PowerLayer(square_param)); + square_layer_->SetUp(square_bottom_vec_, &square_top_vec_); + CHECK_EQ(square_output_.num(), num_); + CHECK_EQ(square_output_.channels(), channels_); + CHECK_EQ(square_output_.height(), height_); + CHECK_EQ(square_output_.width(), width_); + // Set up pool_layer_ to sum over square neighborhoods of the input. + pool_top_vec_.clear(); + pool_top_vec_.push_back(&pool_output_); + LayerParameter pool_param; + pool_param.mutable_pooling_param()->set_pool( + PoolingParameter_PoolMethod_AVE); + pool_param.mutable_pooling_param()->set_pad(pre_pad_); + pool_param.mutable_pooling_param()->set_kernel_size(size_); + pool_layer_.reset(new PoolingLayer(pool_param)); + pool_layer_->SetUp(square_top_vec_, &pool_top_vec_); + CHECK_EQ(pool_output_.num(), num_); + CHECK_EQ(pool_output_.channels(), channels_); + CHECK_EQ(pool_output_.height(), height_); + CHECK_EQ(pool_output_.width(), width_); + // Set up power_layer_ to compute (1 + alpha_/N^2 s)^-beta_, where s is + // the sum of a squared neighborhood (the output of pool_layer_). + power_top_vec_.clear(); + power_top_vec_.push_back(&power_output_); + LayerParameter power_param; + power_param.mutable_power_param()->set_power(-beta_); + power_param.mutable_power_param()->set_scale(alpha_); + power_param.mutable_power_param()->set_shift(Dtype(1)); + power_layer_.reset(new PowerLayer(power_param)); + power_layer_->SetUp(pool_top_vec_, &power_top_vec_); + CHECK_EQ(power_output_.num(), num_); + CHECK_EQ(power_output_.channels(), channels_); + CHECK_EQ(power_output_.height(), height_); + CHECK_EQ(power_output_.width(), width_); + // Set up a product_layer_ to compute outputs by multiplying inputs by the + // inverse demoninator computed by the power layer. + product_bottom_vec_.clear(); + product_bottom_vec_.push_back(bottom[0]); + product_bottom_vec_.push_back(&power_output_); + LayerParameter product_param; + product_layer_.reset(new EltwiseProductLayer(product_param)); + product_layer_->SetUp(product_bottom_vec_, top); + CHECK_EQ((*top)[0]->num(), num_); + CHECK_EQ((*top)[0]->channels(), channels_); + CHECK_EQ((*top)[0]->height(), height_); + CHECK_EQ((*top)[0]->width(), width_); + } + break; + default: + LOG(FATAL) << "Unknown normalization region."; + } } template -void LRNLayer::Forward_cpu(const vector*>& bottom, +Dtype LRNLayer::Forward_cpu(const vector*>& bottom, vector*>* top) { + switch (this->layer_param_.lrn_param().norm_region()) { + case LRNParameter_NormRegion_ACROSS_CHANNELS: + return CrossChannelForward_cpu(bottom, top); + case LRNParameter_NormRegion_WITHIN_CHANNEL: + return WithinChannelForward(bottom, top); + default: + LOG(FATAL) << "Unknown normalization region."; + return Dtype(0); + } +} + +template +Dtype LRNLayer::CrossChannelForward_cpu( + const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->cpu_data(); Dtype* top_data = (*top)[0]->mutable_cpu_data(); Dtype* scale_data = scale_.mutable_cpu_data(); @@ -72,11 +157,40 @@ void LRNLayer::Forward_cpu(const vector*>& bottom, // In the end, compute output caffe_powx(scale_.count(), scale_data, -beta_, top_data); caffe_mul(scale_.count(), top_data, bottom_data, top_data); + + return Dtype(0.); } template -Dtype LRNLayer::Backward_cpu(const vector*>& top, +Dtype LRNLayer::WithinChannelForward( + const vector*>& bottom, vector*>* top) { + split_layer_->Forward(bottom, &split_top_vec_); + square_layer_->Forward(square_bottom_vec_, &square_top_vec_); + pool_layer_->Forward(square_top_vec_, &pool_top_vec_); + power_layer_->Forward(pool_top_vec_, &power_top_vec_); + product_layer_->Forward(product_bottom_vec_, top); + return Dtype(0.); +} + +template +void LRNLayer::Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { + switch (this->layer_param_.lrn_param().norm_region()) { + case LRNParameter_NormRegion_ACROSS_CHANNELS: + CrossChannelBackward_cpu(top, propagate_down, bottom); + break; + case LRNParameter_NormRegion_WITHIN_CHANNEL: + WithinChannelBackward(top, propagate_down, bottom); + break; + default: + LOG(FATAL) << "Unknown normalization region."; + } +} + +template +void LRNLayer::CrossChannelBackward_cpu( + const vector*>& top, const bool propagate_down, + vector*>* bottom) { const Dtype* top_diff = top[0]->cpu_diff(); const Dtype* top_data = top[0]->cpu_data(); const Dtype* bottom_data = (*bottom)[0]->cpu_data(); @@ -126,7 +240,19 @@ Dtype LRNLayer::Backward_cpu(const vector*>& top, padded_ratio_data + padded_ratio.offset(0, c), accum_ratio_data); } } - return Dtype(0.); +} + +template +void LRNLayer::WithinChannelBackward( + const vector*>& top, const bool propagate_down, + vector*>* bottom) { + if (propagate_down) { + product_layer_->Backward(top, true, &product_bottom_vec_); + power_layer_->Backward(power_top_vec_, true, &pool_top_vec_); + pool_layer_->Backward(pool_top_vec_, true, &square_top_vec_); + square_layer_->Backward(square_top_vec_, true, &square_bottom_vec_); + split_layer_->Backward(split_top_vec_, true, bottom); + } } INSTANTIATE_CLASS(LRNLayer); diff --git a/src/caffe/layers/lrn_layer.cu b/src/caffe/layers/lrn_layer.cu index 028aa8fa47e..b2097eb99cf 100644 --- a/src/caffe/layers/lrn_layer.cu +++ b/src/caffe/layers/lrn_layer.cu @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include @@ -55,6 +55,20 @@ __global__ void LRNFillScale(const int nthreads, const Dtype* in, } +template +Dtype LRNLayer::Forward_gpu(const vector*>& bottom, + vector*>* top) { + switch (this->layer_param_.lrn_param().norm_region()) { + case LRNParameter_NormRegion_ACROSS_CHANNELS: + return CrossChannelForward_gpu(bottom, top); + case LRNParameter_NormRegion_WITHIN_CHANNEL: + return WithinChannelForward(bottom, top); + default: + LOG(FATAL) << "Unknown normalization region."; + return Dtype(0); + } +} + // TODO: check if it would be faster to just put it into the previous kernel. template __global__ void LRNComputeOutput(const int nthreads, const Dtype* in, @@ -65,8 +79,8 @@ __global__ void LRNComputeOutput(const int nthreads, const Dtype* in, } template -void LRNLayer::Forward_gpu(const vector*>& bottom, - vector*>* top) { +Dtype LRNLayer::CrossChannelForward_gpu( + const vector*>& bottom, vector*>* top) { // First, compute scale const Dtype* bottom_data = bottom[0]->gpu_data(); Dtype* top_data = (*top)[0]->mutable_gpu_data(); @@ -84,9 +98,25 @@ void LRNLayer::Forward_gpu(const vector*>& bottom, LRNComputeOutput<<>>( n_threads, bottom_data, scale_data, -beta_, top_data); CUDA_POST_KERNEL_CHECK; + return Dtype(0.); } +template +void LRNLayer::Backward_gpu(const vector*>& top, + const bool propagate_down, vector*>* bottom) { + switch (this->layer_param_.lrn_param().norm_region()) { + case LRNParameter_NormRegion_ACROSS_CHANNELS: + CrossChannelBackward_gpu(top, propagate_down, bottom); + break; + case LRNParameter_NormRegion_WITHIN_CHANNEL: + WithinChannelBackward(top, propagate_down, bottom); + break; + default: + LOG(FATAL) << "Unknown normalization region."; + } +} + template __global__ void LRNComputeDiff(const int nthreads, const Dtype* bottom_data, const Dtype* top_data, const Dtype* scale, const Dtype* top_diff, @@ -149,8 +179,9 @@ __global__ void LRNComputeDiff(const int nthreads, const Dtype* bottom_data, } template -Dtype LRNLayer::Backward_gpu(const vector*>& top, - const bool propagate_down, vector*>* bottom) { +void LRNLayer::CrossChannelBackward_gpu( + const vector*>& top, const bool propagate_down, + vector*>* bottom) { int n_threads = num_ * height_ * width_; // NOLINT_NEXT_LINE(whitespace/operators) LRNComputeDiff<<>>( @@ -158,7 +189,6 @@ Dtype LRNLayer::Backward_gpu(const vector*>& top, scale_.gpu_data(), top[0]->gpu_diff(), num_, channels_, height_, width_, size_, -beta_, Dtype(2. * alpha_ * beta_ / size_), (*bottom)[0]->mutable_gpu_diff()); - return Dtype(0.); } diff --git a/src/caffe/layers/memory_data_layer.cpp b/src/caffe/layers/memory_data_layer.cpp new file mode 100644 index 00000000000..60bce27b8c9 --- /dev/null +++ b/src/caffe/layers/memory_data_layer.cpp @@ -0,0 +1,51 @@ +// Copyright 2014 BVLC and contributors. + +#include + +#include "caffe/layer.hpp" +#include "caffe/vision_layers.hpp" + +namespace caffe { + +template +void MemoryDataLayer::SetUp(const vector*>& bottom, + vector*>* top) { + CHECK_EQ(bottom.size(), 0) << "Memory Data Layer takes no blobs as input."; + CHECK_EQ(top->size(), 2) << "Memory Data Layer takes two blobs as output."; + batch_size_ = this->layer_param_.memory_data_param().batch_size(); + datum_channels_ = this->layer_param_.memory_data_param().channels(); + datum_height_ = this->layer_param_.memory_data_param().height(); + datum_width_ = this->layer_param_.memory_data_param().width(); + datum_size_ = datum_channels_ * datum_height_ * datum_width_; + CHECK_GT(batch_size_ * datum_size_, 0) << "batch_size, channels, height," + " and width must be specified and positive in memory_data_param"; + (*top)[0]->Reshape(batch_size_, datum_channels_, datum_height_, datum_width_); + (*top)[1]->Reshape(batch_size_, 1, 1, 1); + data_ = NULL; + labels_ = NULL; +} + +template +void MemoryDataLayer::Reset(Dtype* data, Dtype* labels, int n) { + CHECK(data); + CHECK(labels); + CHECK_EQ(n % batch_size_, 0) << "n must be a multiple of batch size"; + data_ = data; + labels_ = labels; + n_ = n; + pos_ = 0; +} + +template +Dtype MemoryDataLayer::Forward_cpu(const vector*>& bottom, + vector*>* top) { + CHECK(data_) << "MemoryDataLayer needs to be initalized by calling Reset"; + (*top)[0]->set_cpu_data(data_ + pos_ * datum_size_); + (*top)[1]->set_cpu_data(labels_ + pos_); + pos_ = (pos_ + batch_size_) % n_; + return Dtype(0.); +} + +INSTANTIATE_CLASS(MemoryDataLayer); + +} // namespace caffe diff --git a/src/caffe/layers/multinomial_logistic_loss_layer.cpp b/src/caffe/layers/multinomial_logistic_loss_layer.cpp new file mode 100644 index 00000000000..6486621d8aa --- /dev/null +++ b/src/caffe/layers/multinomial_logistic_loss_layer.cpp @@ -0,0 +1,60 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include +#include +#include + +#include "caffe/layer.hpp" +#include "caffe/vision_layers.hpp" +#include "caffe/util/math_functions.hpp" +#include "caffe/util/io.hpp" + +using std::max; + +namespace caffe { + +template +void MultinomialLogisticLossLayer::FurtherSetUp( + const vector*>& bottom, vector*>* top) { + CHECK_EQ(bottom[1]->channels(), 1); + CHECK_EQ(bottom[1]->height(), 1); + CHECK_EQ(bottom[1]->width(), 1); +} + +template +Dtype MultinomialLogisticLossLayer::Forward_cpu( + const vector*>& bottom, vector*>* top) { + const Dtype* bottom_data = bottom[0]->cpu_data(); + const Dtype* bottom_label = bottom[1]->cpu_data(); + int num = bottom[0]->num(); + int dim = bottom[0]->count() / bottom[0]->num(); + Dtype loss = 0; + for (int i = 0; i < num; ++i) { + int label = static_cast(bottom_label[i]); + Dtype prob = max(bottom_data[i * dim + label], Dtype(kLOG_THRESHOLD)); + loss -= log(prob); + } + return loss / num; +} + +template +void MultinomialLogisticLossLayer::Backward_cpu( + const vector*>& top, const bool propagate_down, + vector*>* bottom) { + const Dtype* bottom_data = (*bottom)[0]->cpu_data(); + const Dtype* bottom_label = (*bottom)[1]->cpu_data(); + Dtype* bottom_diff = (*bottom)[0]->mutable_cpu_diff(); + int num = (*bottom)[0]->num(); + int dim = (*bottom)[0]->count() / (*bottom)[0]->num(); + memset(bottom_diff, 0, sizeof(Dtype) * (*bottom)[0]->count()); + for (int i = 0; i < num; ++i) { + int label = static_cast(bottom_label[i]); + Dtype prob = max(bottom_data[i * dim + label], Dtype(kLOG_THRESHOLD)); + bottom_diff[i * dim + label] = -1. / prob / num; + } +} + +INSTANTIATE_CLASS(MultinomialLogisticLossLayer); + +} // namespace caffe diff --git a/src/caffe/layers/neuron_layer.cpp b/src/caffe/layers/neuron_layer.cpp index 5def7559e16..e9dbd0eb75c 100644 --- a/src/caffe/layers/neuron_layer.cpp +++ b/src/caffe/layers/neuron_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include diff --git a/src/caffe/layers/padding_layer.cpp b/src/caffe/layers/padding_layer.cpp deleted file mode 100644 index 4cb67df0dcf..00000000000 --- a/src/caffe/layers/padding_layer.cpp +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2013 Yangqing Jia - -#include // NOLINT(readability/streams) -#include - -#include "caffe/layer.hpp" -#include "caffe/vision_layers.hpp" - -namespace caffe { - -template -void PaddingLayer::SetUp(const vector*>& bottom, - vector*>* top) { - // DEPRECATION - LOG(WARNING) << "Padding layers are deprecated in favor of padding-aware " - "convolutions and WILL BE REMOVED. Please update your model " - "prototxt to replace padding layers with pad fields. " - "See https://github.com/BVLC/caffe/pull/128."; - PAD_ = this->layer_param_.pad(); - CHECK_EQ(bottom.size(), 1) << "Padding Layer takes a single blob as input."; - CHECK_EQ(top->size(), 1) << "Padding Layer takes a single blob as output."; - NUM_ = bottom[0]->num(); - CHANNEL_ = bottom[0]->channels(); - HEIGHT_IN_ = bottom[0]->height(); - WIDTH_IN_ = bottom[0]->width(); - HEIGHT_OUT_ = HEIGHT_IN_ + PAD_ * 2; - WIDTH_OUT_ = WIDTH_IN_ + PAD_ * 2; - (*top)[0]->Reshape(NUM_, CHANNEL_, HEIGHT_OUT_, WIDTH_OUT_); -} - -template -void PaddingLayer::Forward_cpu(const vector*>& bottom, - vector*>* top) { - Dtype* top_data = (*top)[0]->mutable_cpu_data(); - const Dtype* bottom_data = bottom[0]->cpu_data(); - memset(top_data, 0, sizeof(Dtype) * (*top)[0]->count()); - // In short, top[n, c, h, w] = bottom[n, c, h-pad, w-pad] if in range - for (int n = 0; n < NUM_; ++n) { - for (int c = 0; c < CHANNEL_; ++c) { - for (int h = 0; h < HEIGHT_IN_; ++h) { - // copy the width part - memcpy( - top_data + ((n * CHANNEL_ + c) * HEIGHT_OUT_ + h + PAD_) - * WIDTH_OUT_ + PAD_, - bottom_data + ((n * CHANNEL_ + c) * HEIGHT_IN_ + h) * WIDTH_IN_, - sizeof(Dtype) * WIDTH_IN_); - } - } - } -} - -template -Dtype PaddingLayer::Backward_cpu(const vector*>& top, - const bool propagate_down, vector*>* bottom) { - const Dtype* top_diff = top[0]->cpu_diff(); - Dtype* bottom_diff = (*bottom)[0]->mutable_cpu_diff(); - for (int n = 0; n < NUM_; ++n) { - for (int c = 0; c < CHANNEL_; ++c) { - for (int h = 0; h < HEIGHT_IN_; ++h) { - // copy the width part - memcpy( - bottom_diff + ((n * CHANNEL_ + c) * HEIGHT_IN_ + h) * WIDTH_IN_, - top_diff + ((n * CHANNEL_ + c) * HEIGHT_OUT_ + h + PAD_) - * WIDTH_OUT_ + PAD_, - sizeof(Dtype) * WIDTH_IN_); - } - } - } - return Dtype(0.); -} - -INSTANTIATE_CLASS(PaddingLayer); - -} // namespace caffe diff --git a/src/caffe/layers/padding_layer.cu b/src/caffe/layers/padding_layer.cu deleted file mode 100644 index 7ec28a9e30f..00000000000 --- a/src/caffe/layers/padding_layer.cu +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2013 Yangqing Jia - -#include // NOLINT(readability/streams) -#include - -#include "caffe/layer.hpp" -#include "caffe/vision_layers.hpp" - -namespace caffe { - -template -__global__ void PaddingForward(const int count, const Dtype* in, Dtype* out, - const int num, const int channel, const int height_in, const int width_in, - const int pad) { - CUDA_KERNEL_LOOP(index, count) { - int height_out = height_in + pad + pad; - int width_out = width_in + pad + pad; - int w = index % width_in; - index /= width_in; - int h = index % height_in; - index /= height_in; - int c = index % channel; - index /= channel; - out[((index * channel + c) * height_out + h + pad) * width_out + pad + w] = - in[((index * channel + c) * height_in + h) * width_in + w]; - } -} - -template -void PaddingLayer::Forward_gpu(const vector*>& bottom, - vector*>* top) { - const Dtype* bottom_data = bottom[0]->gpu_data(); - Dtype* top_data = (*top)[0]->mutable_gpu_data(); - const int count = bottom[0]->count(); - // First, set all data to be zero for the boundary pixels - CUDA_CHECK(cudaMemset(top_data, 0, sizeof(Dtype) * (*top)[0]->count())); - // NOLINT_NEXT_LINE(whitespace/operators) - PaddingForward<<>>( - count, bottom_data, top_data, NUM_, CHANNEL_, HEIGHT_IN_, WIDTH_IN_, - PAD_); - CUDA_POST_KERNEL_CHECK; -} - -template -__global__ void PaddingBackward(const int count, const Dtype* in, Dtype* out, - const int num, const int channel, const int height_in, const int width_in, - const int pad) { - CUDA_KERNEL_LOOP(index, count) { - int height_out = height_in + pad + pad; - int width_out = width_in + pad + pad; - int w = index % width_in; - index /= width_in; - int h = index % height_in; - index /= height_in; - int c = index % channel; - index /= channel; - out[((index * channel + c) * height_in + h) * width_in + w] = - in[((index * channel + c) * height_out + h + pad) * - width_out + pad + w]; - } -} - -template -Dtype PaddingLayer::Backward_gpu(const vector*>& top, - const bool propagate_down, - vector*>* bottom) { - if (propagate_down) { - const Dtype* top_diff = top[0]->gpu_diff(); - Dtype* bottom_diff = (*bottom)[0]->mutable_gpu_diff(); - const int count = (*bottom)[0]->count(); - // NOLINT_NEXT_LINE(whitespace/operators) - PaddingBackward<<>>( - count, top_diff, bottom_diff, NUM_, CHANNEL_, HEIGHT_IN_, WIDTH_IN_, - PAD_); - CUDA_POST_KERNEL_CHECK; - } - return Dtype(0); -} - -INSTANTIATE_CLASS(PaddingLayer); - -} // namespace caffe diff --git a/src/caffe/layers/pooling_layer.cpp b/src/caffe/layers/pooling_layer.cpp index ce30e842c58..7e880a27b69 100644 --- a/src/caffe/layers/pooling_layer.cpp +++ b/src/caffe/layers/pooling_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -18,54 +18,61 @@ void PoolingLayer::SetUp(const vector*>& bottom, vector*>* top) { CHECK_EQ(bottom.size(), 1) << "PoolingLayer takes a single blob as input."; CHECK_EQ(top->size(), 1) << "PoolingLayer takes a single blob as output."; - KSIZE_ = this->layer_param_.kernelsize(); - STRIDE_ = this->layer_param_.stride(); - CHANNELS_ = bottom[0]->channels(); - HEIGHT_ = bottom[0]->height(); - WIDTH_ = bottom[0]->width(); - POOLED_HEIGHT_ = static_cast( - ceil(static_cast(HEIGHT_ - KSIZE_) / STRIDE_)) + 1; - POOLED_WIDTH_ = static_cast( - ceil(static_cast(WIDTH_ - KSIZE_) / STRIDE_)) + 1; - (*top)[0]->Reshape(bottom[0]->num(), CHANNELS_, POOLED_HEIGHT_, - POOLED_WIDTH_); + kernel_size_ = this->layer_param_.pooling_param().kernel_size(); + stride_ = this->layer_param_.pooling_param().stride(); + pad_ = this->layer_param_.pooling_param().pad(); + if (pad_ != 0) { + CHECK_EQ(this->layer_param_.pooling_param().pool(), + PoolingParameter_PoolMethod_AVE) + << "Padding implemented only for average pooling."; + } + channels_ = bottom[0]->channels(); + height_ = bottom[0]->height(); + width_ = bottom[0]->width(); + pooled_height_ = static_cast(ceil(static_cast( + height_ + 2 * pad_ - kernel_size_) / stride_)) + 1; + pooled_width_ = static_cast(ceil(static_cast( + width_ + 2 * pad_ - kernel_size_) / stride_)) + 1; + (*top)[0]->Reshape(bottom[0]->num(), channels_, pooled_height_, + pooled_width_); // If stochastic pooling, we will initialize the random index part. - if (this->layer_param_.pool() == LayerParameter_PoolMethod_STOCHASTIC) { - rand_idx_.Reshape(bottom[0]->num(), CHANNELS_, POOLED_HEIGHT_, - POOLED_WIDTH_); + if (this->layer_param_.pooling_param().pool() == + PoolingParameter_PoolMethod_STOCHASTIC) { + rand_idx_.Reshape(bottom[0]->num(), channels_, pooled_height_, + pooled_width_); } } // TODO(Yangqing): Is there a faster way to do pooling in the channel-first // case? template -void PoolingLayer::Forward_cpu(const vector*>& bottom, +Dtype PoolingLayer::Forward_cpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->cpu_data(); Dtype* top_data = (*top)[0]->mutable_cpu_data(); // Different pooling methods. We explicitly do the switch outside the for // loop to save time, although this results in more codes. int top_count = (*top)[0]->count(); - switch (this->layer_param_.pool()) { - case LayerParameter_PoolMethod_MAX: + switch (this->layer_param_.pooling_param().pool()) { + case PoolingParameter_PoolMethod_MAX: // Initialize for (int i = 0; i < top_count; ++i) { top_data[i] = -FLT_MAX; } // The main loop for (int n = 0; n < bottom[0]->num(); ++n) { - for (int c = 0; c < CHANNELS_; ++c) { - for (int ph = 0; ph < POOLED_HEIGHT_; ++ph) { - for (int pw = 0; pw < POOLED_WIDTH_; ++pw) { - int hstart = ph * STRIDE_; - int wstart = pw * STRIDE_; - int hend = min(hstart + KSIZE_, HEIGHT_); - int wend = min(wstart + KSIZE_, WIDTH_); + for (int c = 0; c < channels_; ++c) { + for (int ph = 0; ph < pooled_height_; ++ph) { + for (int pw = 0; pw < pooled_width_; ++pw) { + int hstart = ph * stride_; + int wstart = pw * stride_; + int hend = min(hstart + kernel_size_, height_); + int wend = min(wstart + kernel_size_, width_); for (int h = hstart; h < hend; ++h) { for (int w = wstart; w < wend; ++w) { - top_data[ph * POOLED_WIDTH_ + pw] = - max(top_data[ph * POOLED_WIDTH_ + pw], - bottom_data[h * WIDTH_ + w]); + top_data[ph * pooled_width_ + pw] = + max(top_data[ph * pooled_width_ + pw], + bottom_data[h * width_ + w]); } } } @@ -76,27 +83,31 @@ void PoolingLayer::Forward_cpu(const vector*>& bottom, } } break; - case LayerParameter_PoolMethod_AVE: + case PoolingParameter_PoolMethod_AVE: for (int i = 0; i < top_count; ++i) { top_data[i] = 0; } // The main loop for (int n = 0; n < bottom[0]->num(); ++n) { - for (int c = 0; c < CHANNELS_; ++c) { - for (int ph = 0; ph < POOLED_HEIGHT_; ++ph) { - for (int pw = 0; pw < POOLED_WIDTH_; ++pw) { - int hstart = ph * STRIDE_; - int wstart = pw * STRIDE_; - int hend = min(hstart + KSIZE_, HEIGHT_); - int wend = min(wstart + KSIZE_, WIDTH_); + for (int c = 0; c < channels_; ++c) { + for (int ph = 0; ph < pooled_height_; ++ph) { + for (int pw = 0; pw < pooled_width_; ++pw) { + int hstart = ph * stride_ - pad_; + int wstart = pw * stride_ - pad_; + int hend = min(hstart + kernel_size_, height_ + pad_); + int wend = min(wstart + kernel_size_, width_ + pad_); + int pool_size = (hend - hstart) * (wend - wstart); + hstart = max(hstart, 0); + wstart = max(wstart, 0); + hend = min(hend, height_); + wend = min(wend, width_); for (int h = hstart; h < hend; ++h) { for (int w = wstart; w < wend; ++w) { - top_data[ph * POOLED_WIDTH_ + pw] += - bottom_data[h * WIDTH_ + w]; + top_data[ph * pooled_width_ + pw] += + bottom_data[h * width_ + w]; } } - top_data[ph * POOLED_WIDTH_ + pw] /= - (hend - hstart) * (wend - wstart); + top_data[ph * pooled_width_ + pw] /= pool_size; } } // compute offset @@ -105,19 +116,20 @@ void PoolingLayer::Forward_cpu(const vector*>& bottom, } } break; - case LayerParameter_PoolMethod_STOCHASTIC: + case PoolingParameter_PoolMethod_STOCHASTIC: NOT_IMPLEMENTED; break; default: LOG(FATAL) << "Unknown pooling method."; } + return Dtype(0.); } template -Dtype PoolingLayer::Backward_cpu(const vector*>& top, +void PoolingLayer::Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { if (!propagate_down) { - return Dtype(0.); + return; } const Dtype* top_diff = top[0]->cpu_diff(); const Dtype* top_data = top[0]->cpu_data(); @@ -126,23 +138,23 @@ Dtype PoolingLayer::Backward_cpu(const vector*>& top, // Different pooling methods. We explicitly do the switch outside the for // loop to save time, although this results in more codes. memset(bottom_diff, 0, (*bottom)[0]->count() * sizeof(Dtype)); - switch (this->layer_param_.pool()) { - case LayerParameter_PoolMethod_MAX: + switch (this->layer_param_.pooling_param().pool()) { + case PoolingParameter_PoolMethod_MAX: // The main loop for (int n = 0; n < top[0]->num(); ++n) { - for (int c = 0; c < CHANNELS_; ++c) { - for (int ph = 0; ph < POOLED_HEIGHT_; ++ph) { - for (int pw = 0; pw < POOLED_WIDTH_; ++pw) { - int hstart = ph * STRIDE_; - int wstart = pw * STRIDE_; - int hend = min(hstart + KSIZE_, HEIGHT_); - int wend = min(wstart + KSIZE_, WIDTH_); + for (int c = 0; c < channels_; ++c) { + for (int ph = 0; ph < pooled_height_; ++ph) { + for (int pw = 0; pw < pooled_width_; ++pw) { + int hstart = ph * stride_; + int wstart = pw * stride_; + int hend = min(hstart + kernel_size_, height_); + int wend = min(wstart + kernel_size_, width_); for (int h = hstart; h < hend; ++h) { for (int w = wstart; w < wend; ++w) { - bottom_diff[h * WIDTH_ + w] += - top_diff[ph * POOLED_WIDTH_ + pw] * - (bottom_data[h * WIDTH_ + w] == - top_data[ph * POOLED_WIDTH_ + pw]); + bottom_diff[h * width_ + w] += + top_diff[ph * pooled_width_ + pw] * + (bottom_data[h * width_ + w] == + top_data[ph * pooled_width_ + pw]); } } } @@ -155,21 +167,25 @@ Dtype PoolingLayer::Backward_cpu(const vector*>& top, } } break; - case LayerParameter_PoolMethod_AVE: + case PoolingParameter_PoolMethod_AVE: // The main loop for (int n = 0; n < top[0]->num(); ++n) { - for (int c = 0; c < CHANNELS_; ++c) { - for (int ph = 0; ph < POOLED_HEIGHT_; ++ph) { - for (int pw = 0; pw < POOLED_WIDTH_; ++pw) { - int hstart = ph * STRIDE_; - int wstart = pw * STRIDE_; - int hend = min(hstart + KSIZE_, HEIGHT_); - int wend = min(wstart + KSIZE_, WIDTH_); - int poolsize = (hend - hstart) * (wend - wstart); + for (int c = 0; c < channels_; ++c) { + for (int ph = 0; ph < pooled_height_; ++ph) { + for (int pw = 0; pw < pooled_width_; ++pw) { + int hstart = ph * stride_ - pad_; + int wstart = pw * stride_ - pad_; + int hend = min(hstart + kernel_size_, height_ + pad_); + int wend = min(wstart + kernel_size_, width_ + pad_); + int pool_size = (hend - hstart) * (wend - wstart); + hstart = max(hstart, 0); + wstart = max(wstart, 0); + hend = min(hend, height_); + wend = min(wend, width_); for (int h = hstart; h < hend; ++h) { for (int w = wstart; w < wend; ++w) { - bottom_diff[h * WIDTH_ + w] += - top_diff[ph * POOLED_WIDTH_ + pw] / poolsize; + bottom_diff[h * width_ + w] += + top_diff[ph * pooled_width_ + pw] / pool_size; } } } @@ -182,13 +198,12 @@ Dtype PoolingLayer::Backward_cpu(const vector*>& top, } } break; - case LayerParameter_PoolMethod_STOCHASTIC: + case PoolingParameter_PoolMethod_STOCHASTIC: NOT_IMPLEMENTED; break; default: LOG(FATAL) << "Unknown pooling method."; } - return Dtype(0.); } diff --git a/src/caffe/layers/pooling_layer.cu b/src/caffe/layers/pooling_layer.cu index 357a392976d..95bfaefc951 100644 --- a/src/caffe/layers/pooling_layer.cu +++ b/src/caffe/layers/pooling_layer.cu @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -17,16 +17,16 @@ template __global__ void MaxPoolForward(const int nthreads, const Dtype* bottom_data, const int num, const int channels, const int height, const int width, const int pooled_height, const int pooled_width, - const int ksize, const int stride, Dtype* top_data) { + const int kernel_size, const int stride, Dtype* top_data) { CUDA_KERNEL_LOOP(index, nthreads) { int pw = index % pooled_width; int ph = (index / pooled_width) % pooled_height; int c = (index / pooled_width / pooled_height) % channels; int n = index / pooled_width / pooled_height / channels; int hstart = ph * stride; - int hend = min(hstart + ksize, height); + int hend = min(hstart + kernel_size, height); int wstart = pw * stride; - int wend = min(wstart + ksize, width); + int wend = min(wstart + kernel_size, width); Dtype maxval = -FLT_MAX; bottom_data += (n * channels + c) * height * width; for (int h = hstart; h < hend; ++h) { @@ -42,16 +42,21 @@ template __global__ void AvePoolForward(const int nthreads, const Dtype* bottom_data, const int num, const int channels, const int height, const int width, const int pooled_height, const int pooled_width, - const int ksize, const int stride, Dtype* top_data) { + const int kernel_size, const int stride, const int pad, Dtype* top_data) { CUDA_KERNEL_LOOP(index, nthreads) { int pw = index % pooled_width; int ph = (index / pooled_width) % pooled_height; int c = (index / pooled_width / pooled_height) % channels; int n = index / pooled_width / pooled_height / channels; - int hstart = ph * stride; - int hend = min(hstart + ksize, height); - int wstart = pw * stride; - int wend = min(wstart + ksize, width); + int hstart = ph * stride - pad; + int wstart = pw * stride - pad; + int hend = min(hstart + kernel_size, height + pad); + int wend = min(wstart + kernel_size, width + pad); + int pool_size = (hend - hstart) * (wend - wstart); + hstart = max(hstart, 0); + wstart = max(wstart, 0); + hend = min(hend, height); + wend = min(wend, width); Dtype aveval = 0; bottom_data += (n * channels + c) * height * width; for (int h = hstart; h < hend; ++h) { @@ -59,7 +64,7 @@ __global__ void AvePoolForward(const int nthreads, const Dtype* bottom_data, aveval += bottom_data[h * width + w]; } } - top_data[index] = aveval / (hend - hstart) / (wend - wstart); + top_data[index] = aveval / pool_size; } } @@ -68,16 +73,16 @@ __global__ void StoPoolForwardTrain(const int nthreads, const Dtype* bottom_data, const int num, const int channels, const int height, const int width, const int pooled_height, const int pooled_width, - const int ksize, const int stride, float* rand_idx, Dtype* top_data) { + const int kernel_size, const int stride, Dtype* rand_idx, Dtype* top_data) { CUDA_KERNEL_LOOP(index, nthreads) { int pw = index % pooled_width; int ph = (index / pooled_width) % pooled_height; int c = (index / pooled_width / pooled_height) % channels; int n = index / pooled_width / pooled_height / channels; int hstart = ph * stride; - int hend = min(hstart + ksize, height); + int hend = min(hstart + kernel_size, height); int wstart = pw * stride; - int wend = min(wstart + ksize, width); + int wend = min(wstart + kernel_size, width); Dtype cumsum = 0.; bottom_data += (n * channels + c) * height * width; // First pass: get sum @@ -108,16 +113,16 @@ __global__ void StoPoolForwardTest(const int nthreads, const Dtype* bottom_data, const int num, const int channels, const int height, const int width, const int pooled_height, const int pooled_width, - const int ksize, const int stride, Dtype* top_data) { + const int kernel_size, const int stride, Dtype* top_data) { CUDA_KERNEL_LOOP(index, nthreads) { int pw = index % pooled_width; int ph = (index / pooled_width) % pooled_height; int c = (index / pooled_width / pooled_height) % channels; int n = index / pooled_width / pooled_height / channels; int hstart = ph * stride; - int hend = min(hstart + ksize, height); + int hend = min(hstart + kernel_size, height); int wstart = pw * stride; - int wend = min(wstart + ksize, width); + int wend = min(wstart + kernel_size, width); // We set cumsum to be 0 to avoid divide-by-zero problems Dtype cumsum = FLT_MIN; Dtype cumvalues = 0.; @@ -135,43 +140,43 @@ __global__ void StoPoolForwardTest(const int nthreads, template -void PoolingLayer::Forward_gpu(const vector*>& bottom, +Dtype PoolingLayer::Forward_gpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->gpu_data(); Dtype* top_data = (*top)[0]->mutable_gpu_data(); int count = (*top)[0]->count(); - switch (this->layer_param_.pool()) { - case LayerParameter_PoolMethod_MAX: + switch (this->layer_param_.pooling_param().pool()) { + case PoolingParameter_PoolMethod_MAX: // NOLINT_NEXT_LINE(whitespace/operators) MaxPoolForward<<>>( - count, bottom_data, bottom[0]->num(), CHANNELS_, - HEIGHT_, WIDTH_, POOLED_HEIGHT_, POOLED_WIDTH_, KSIZE_, STRIDE_, + count, bottom_data, bottom[0]->num(), channels_, + height_, width_, pooled_height_, pooled_width_, kernel_size_, stride_, top_data); break; - case LayerParameter_PoolMethod_AVE: + case PoolingParameter_PoolMethod_AVE: // NOLINT_NEXT_LINE(whitespace/operators) AvePoolForward<<>>( - count, bottom_data, bottom[0]->num(), CHANNELS_, - HEIGHT_, WIDTH_, POOLED_HEIGHT_, POOLED_WIDTH_, KSIZE_, STRIDE_, - top_data); + count, bottom_data, bottom[0]->num(), channels_, + height_, width_, pooled_height_, pooled_width_, kernel_size_, stride_, + pad_, top_data); break; - case LayerParameter_PoolMethod_STOCHASTIC: + case PoolingParameter_PoolMethod_STOCHASTIC: if (Caffe::phase() == Caffe::TRAIN) { // We need to create the random index as well. - CURAND_CHECK(curandGenerateUniform(Caffe::curand_generator(), - rand_idx_.mutable_gpu_data(), count)); + caffe_gpu_rng_uniform(count, Dtype(0), Dtype(1), + rand_idx_.mutable_gpu_data()); // NOLINT_NEXT_LINE(whitespace/operators) StoPoolForwardTrain<<>>( - count, bottom_data, bottom[0]->num(), CHANNELS_, - HEIGHT_, WIDTH_, POOLED_HEIGHT_, POOLED_WIDTH_, KSIZE_, STRIDE_, + count, bottom_data, bottom[0]->num(), channels_, + height_, width_, pooled_height_, pooled_width_, kernel_size_, stride_, rand_idx_.mutable_gpu_data(), top_data); } else { // NOLINT_NEXT_LINE(whitespace/operators) StoPoolForwardTest<<>>( - count, bottom_data, bottom[0]->num(), CHANNELS_, - HEIGHT_, WIDTH_, POOLED_HEIGHT_, POOLED_WIDTH_, KSIZE_, STRIDE_, + count, bottom_data, bottom[0]->num(), channels_, + height_, width_, pooled_height_, pooled_width_, kernel_size_, stride_, top_data); } break; @@ -179,6 +184,7 @@ void PoolingLayer::Forward_gpu(const vector*>& bottom, LOG(FATAL) << "Unknown pooling method."; } CUDA_POST_KERNEL_CHECK; + return Dtype(0.); } template @@ -186,7 +192,7 @@ __global__ void MaxPoolBackward(const int nthreads, const Dtype* bottom_data, const Dtype* top_data, const Dtype* top_diff, const int num, const int channels, const int height, const int width, const int pooled_height, const int pooled_width, - const int ksize, const int stride, Dtype* bottom_diff) { + const int kernel_size, const int stride, Dtype* bottom_diff) { CUDA_KERNEL_LOOP(index, nthreads) { // find out the local index // find out the local offset @@ -194,9 +200,9 @@ __global__ void MaxPoolBackward(const int nthreads, const Dtype* bottom_data, int h = (index / width) % height; int c = (index / width / height) % channels; int n = index / width / height / channels; - int phstart = (h < ksize) ? 0 : (h - ksize) / stride + 1; + int phstart = (h < kernel_size) ? 0 : (h - kernel_size) / stride + 1; int phend = min(h / stride + 1, pooled_height); - int pwstart = (w < ksize) ? 0 : (w - ksize) / stride + 1; + int pwstart = (w < kernel_size) ? 0 : (w - kernel_size) / stride + 1; int pwend = min(w / stride + 1, pooled_width); Dtype gradient = 0; Dtype bottom_datum = @@ -218,26 +224,30 @@ template __global__ void AvePoolBackward(const int nthreads, const Dtype* top_diff, const int num, const int channels, const int height, const int width, const int pooled_height, const int pooled_width, - const int ksize, const int stride, Dtype* bottom_diff) { + const int kernel_size, const int stride, const int pad, + Dtype* bottom_diff) { CUDA_KERNEL_LOOP(index, nthreads) { // find out the local index // find out the local offset - int w = index % width; - int h = (index / width) % height; + int w = index % width + pad; + int h = (index / width) % height + pad; int c = (index / width / height) % channels; int n = index / width / height / channels; - int phstart = (h < ksize) ? 0 : (h - ksize) / stride + 1; + int phstart = (h < kernel_size) ? 0 : (h - kernel_size) / stride + 1; int phend = min(h / stride + 1, pooled_height); - int pwstart = (w < ksize) ? 0 : (w - ksize) / stride + 1; + int pwstart = (w < kernel_size) ? 0 : (w - kernel_size) / stride + 1; int pwend = min(w / stride + 1, pooled_width); Dtype gradient = 0; top_diff += (n * channels + c) * pooled_height * pooled_width; for (int ph = phstart; ph < phend; ++ph) { for (int pw = pwstart; pw < pwend; ++pw) { // figure out the pooling size - int poolsize = (min(ph * stride + ksize, height) - ph * stride) * - (min(pw * stride + ksize, width) - pw * stride); - gradient += top_diff[ph * pooled_width + pw] / poolsize; + int hstart = ph * stride - pad; + int wstart = pw * stride - pad; + int hend = min(hstart + kernel_size, height + pad); + int wend = min(wstart + kernel_size, width + pad); + int pool_size = (hend - hstart) * (wend - wstart); + gradient += top_diff[ph * pooled_width + pw] / pool_size; } } bottom_diff[index] = gradient; @@ -247,10 +257,10 @@ __global__ void AvePoolBackward(const int nthreads, const Dtype* top_diff, template __global__ void StoPoolBackward(const int nthreads, - const float* rand_idx, const Dtype* top_diff, + const Dtype* rand_idx, const Dtype* top_diff, const int num, const int channels, const int height, const int width, const int pooled_height, const int pooled_width, - const int ksize, const int stride, Dtype* bottom_diff) { + const int kernel_size, const int stride, Dtype* bottom_diff) { CUDA_KERNEL_LOOP(index, nthreads) { // find out the local index // find out the local offset @@ -258,9 +268,9 @@ __global__ void StoPoolBackward(const int nthreads, int h = (index / width) % height; int c = (index / width / height) % channels; int n = index / width / height / channels; - int phstart = (h < ksize) ? 0 : (h - ksize) / stride + 1; + int phstart = (h < kernel_size) ? 0 : (h - kernel_size) / stride + 1; int phend = min(h / stride + 1, pooled_height); - int pwstart = (w < ksize) ? 0 : (w - ksize) / stride + 1; + int pwstart = (w < kernel_size) ? 0 : (w - kernel_size) / stride + 1; int pwend = min(w / stride + 1, pooled_width); Dtype gradient = 0; rand_idx += (n * channels + c) * pooled_height * pooled_width; @@ -277,41 +287,40 @@ __global__ void StoPoolBackward(const int nthreads, template -Dtype PoolingLayer::Backward_gpu(const vector*>& top, +void PoolingLayer::Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { if (!propagate_down) { - return Dtype(0.); + return; } const Dtype* top_diff = top[0]->gpu_diff(); Dtype* bottom_diff = (*bottom)[0]->mutable_gpu_diff(); int count = (*bottom)[0]->count(); - switch (this->layer_param_.pool()) { - case LayerParameter_PoolMethod_MAX: + switch (this->layer_param_.pooling_param().pool()) { + case PoolingParameter_PoolMethod_MAX: // NOLINT_NEXT_LINE(whitespace/operators) MaxPoolBackward<<>>( count, (*bottom)[0]->gpu_data(), top[0]->gpu_data(), top_diff, - top[0]->num(), CHANNELS_, HEIGHT_, WIDTH_, POOLED_HEIGHT_, - POOLED_WIDTH_, KSIZE_, STRIDE_, bottom_diff); + top[0]->num(), channels_, height_, width_, pooled_height_, + pooled_width_, kernel_size_, stride_, bottom_diff); break; - case LayerParameter_PoolMethod_AVE: + case PoolingParameter_PoolMethod_AVE: // NOLINT_NEXT_LINE(whitespace/operators) AvePoolBackward<<>>( - count, top_diff, top[0]->num(), CHANNELS_, - HEIGHT_, WIDTH_, POOLED_HEIGHT_, POOLED_WIDTH_, KSIZE_, STRIDE_, - bottom_diff); + count, top_diff, top[0]->num(), channels_, + height_, width_, pooled_height_, pooled_width_, kernel_size_, stride_, + pad_, bottom_diff); break; - case LayerParameter_PoolMethod_STOCHASTIC: + case PoolingParameter_PoolMethod_STOCHASTIC: // NOLINT_NEXT_LINE(whitespace/operators) StoPoolBackward<<>>( count, rand_idx_.gpu_data(), top_diff, - top[0]->num(), CHANNELS_, HEIGHT_, WIDTH_, POOLED_HEIGHT_, - POOLED_WIDTH_, KSIZE_, STRIDE_, bottom_diff); + top[0]->num(), channels_, height_, width_, pooled_height_, + pooled_width_, kernel_size_, stride_, bottom_diff); break; default: LOG(FATAL) << "Unknown pooling method."; } CUDA_POST_KERNEL_CHECK; - return Dtype(0.); } diff --git a/src/caffe/layers/power_layer.cpp b/src/caffe/layers/power_layer.cpp new file mode 100644 index 00000000000..85c84423aa2 --- /dev/null +++ b/src/caffe/layers/power_layer.cpp @@ -0,0 +1,105 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include + +#include "caffe/layer.hpp" +#include "caffe/vision_layers.hpp" +#include "caffe/util/math_functions.hpp" + +using std::max; + +namespace caffe { + +template +void PowerLayer::SetUp(const vector*>& bottom, + vector*>* top) { + NeuronLayer::SetUp(bottom, top); + power_ = this->layer_param_.power_param().power(); + scale_ = this->layer_param_.power_param().scale(); + shift_ = this->layer_param_.power_param().shift(); + diff_scale_ = power_ * scale_; +} + +// Compute y = (shift + scale * x)^power +template +Dtype PowerLayer::Forward_cpu(const vector*>& bottom, + vector*>* top) { + Dtype* top_data = (*top)[0]->mutable_cpu_data(); + const int count = bottom[0]->count(); + // Special case where we can ignore the input: scale or power is 0. + if (diff_scale_ == Dtype(0)) { + Dtype value = (power_ == 0) ? Dtype(1) : pow(shift_, power_); + caffe_set(count, value, top_data); + return Dtype(0); + } + const Dtype* bottom_data = bottom[0]->cpu_data(); + caffe_copy(count, bottom_data, top_data); + if (scale_ != Dtype(1)) { + caffe_scal(count, scale_, top_data); + } + if (shift_ != Dtype(0)) { + caffe_add_scalar(count, shift_, top_data); + } + if (power_ != Dtype(1)) { + caffe_powx(count, top_data, power_, top_data); + } + return Dtype(0); +} + +template +void PowerLayer::Backward_cpu(const vector*>& top, + const bool propagate_down, + vector*>* bottom) { + if (propagate_down) { + Dtype* bottom_diff = (*bottom)[0]->mutable_cpu_diff(); + const int count = (*bottom)[0]->count(); + const Dtype* top_diff = top[0]->cpu_diff(); + if (diff_scale_ == Dtype(0) || power_ == Dtype(1)) { + caffe_set(count, diff_scale_, bottom_diff); + } else { + const Dtype* bottom_data = (*bottom)[0]->cpu_data(); + // Compute dy/dx = scale * power * (shift + scale * x)^(power - 1) + // = diff_scale * y / (shift + scale * x) + if (power_ == Dtype(2)) { + // Special case for y = (shift + scale * x)^2 + // -> dy/dx = 2 * scale * (shift + scale * x) + // = diff_scale * shift + diff_scale * scale * x + caffe_cpu_axpby(count, diff_scale_ * scale_, bottom_data, + Dtype(0), bottom_diff); + if (shift_ != Dtype(0)) { + caffe_add_scalar(count, diff_scale_ * shift_, bottom_diff); + } + } else if (shift_ == Dtype(0)) { + // Special case for y = (scale * x)^power + // -> dy/dx = scale * power * (scale * x)^(power - 1) + // = scale * power * (scale * x)^power * (scale * x)^(-1) + // = power * y / x + const Dtype* top_data = top[0]->cpu_data(); + caffe_div(count, top_data, bottom_data, bottom_diff); + caffe_scal(count, power_, bottom_diff); + } else { + caffe_copy(count, bottom_data, bottom_diff); + if (scale_ != Dtype(1)) { + caffe_scal(count, scale_, bottom_diff); + } + if (shift_ != Dtype(0)) { + caffe_add_scalar(count, shift_, bottom_diff); + } + const Dtype* top_data = top[0]->cpu_data(); + caffe_div(count, top_data, bottom_diff, bottom_diff); + if (diff_scale_ != Dtype(1)) { + caffe_scal(count, diff_scale_, bottom_diff); + } + } + } + if (diff_scale_ != Dtype(0)) { + caffe_mul(count, top_diff, bottom_diff, bottom_diff); + } + } +} + +INSTANTIATE_CLASS(PowerLayer); + + +} // namespace caffe diff --git a/src/caffe/layers/power_layer.cu b/src/caffe/layers/power_layer.cu new file mode 100644 index 00000000000..9a25de72d36 --- /dev/null +++ b/src/caffe/layers/power_layer.cu @@ -0,0 +1,92 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include + +#include "caffe/layer.hpp" +#include "caffe/vision_layers.hpp" +#include "caffe/util/math_functions.hpp" + +using std::max; + +namespace caffe { + +template +Dtype PowerLayer::Forward_gpu(const vector*>& bottom, + vector*>* top) { + Dtype* top_data = (*top)[0]->mutable_gpu_data(); + const int count = bottom[0]->count(); + // Special case where we can ignore the input: scale or power is 0. + if (diff_scale_ == Dtype(0)) { + Dtype value = (power_ == 0) ? Dtype(1) : pow(shift_, power_); + caffe_gpu_set(count, value, top_data); + return Dtype(0); + } + const Dtype* bottom_data = bottom[0]->gpu_data(); + caffe_gpu_copy(count, bottom_data, top_data); + if (scale_ != Dtype(1)) { + caffe_gpu_scal(count, scale_, top_data); + } + if (shift_ != Dtype(0)) { + caffe_gpu_add_scalar(count, shift_, top_data); + } + if (power_ != Dtype(1)) { + caffe_gpu_powx(count, top_data, power_, top_data); + } + return Dtype(0); +} + +template +void PowerLayer::Backward_gpu(const vector*>& top, + const bool propagate_down, + vector*>* bottom) { + if (propagate_down) { + Dtype* bottom_diff = (*bottom)[0]->mutable_gpu_diff(); + const int count = (*bottom)[0]->count(); + const Dtype* top_diff = top[0]->gpu_diff(); + if (diff_scale_ == Dtype(0) || power_ == Dtype(1)) { + caffe_gpu_set(count, diff_scale_, bottom_diff); + } else { + const Dtype* bottom_data = (*bottom)[0]->gpu_data(); + // Compute dy/dx = scale * power * (shift + scale * x)^(power - 1) + // = diff_scale * y / (shift + scale * x) + if (power_ == Dtype(2)) { + // Special case for y = (shift + scale * x)^2 + // -> dy/dx = 2 * scale * (shift + scale * x) + // = diff_scale * shift + diff_scale * scale * x + caffe_gpu_axpby(count, diff_scale_ * scale_, bottom_data, + Dtype(0), bottom_diff); + if (shift_ != Dtype(0)) { + caffe_gpu_add_scalar(count, diff_scale_ * shift_, bottom_diff); + } + } else if (shift_ == Dtype(0)) { + // Special case for y = (scale * x)^power + // -> dy/dx = scale * power * (scale * x)^(power - 1) + // = scale * power * (scale * x)^power * (scale * x)^(-1) + // = power * y / x + const Dtype* top_data = top[0]->gpu_data(); + caffe_gpu_div(count, top_data, bottom_data, bottom_diff); + caffe_gpu_scal(count, power_, bottom_diff); + } else { + caffe_gpu_copy(count, bottom_data, bottom_diff); + if (scale_ != Dtype(1)) { + caffe_gpu_scal(count, scale_, bottom_diff); + } + if (shift_ != Dtype(0)) { + caffe_gpu_add_scalar(count, shift_, bottom_diff); + } + const Dtype* top_data = top[0]->gpu_data(); + caffe_gpu_div(count, top_data, bottom_diff, bottom_diff); + if (diff_scale_ != Dtype(1)) { + caffe_gpu_scal(count, diff_scale_, bottom_diff); + } + } + } + caffe_gpu_mul(count, top_diff, bottom_diff, bottom_diff); + } +} + +INSTANTIATE_CLASS(PowerLayer); + + +} // namespace caffe diff --git a/src/caffe/layers/relu_layer.cpp b/src/caffe/layers/relu_layer.cpp index 27ae94b7cb0..7a33e556268 100644 --- a/src/caffe/layers/relu_layer.cpp +++ b/src/caffe/layers/relu_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -11,7 +11,7 @@ using std::max; namespace caffe { template -void ReLULayer::Forward_cpu(const vector*>& bottom, +Dtype ReLULayer::Forward_cpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->cpu_data(); Dtype* top_data = (*top)[0]->mutable_cpu_data(); @@ -19,10 +19,11 @@ void ReLULayer::Forward_cpu(const vector*>& bottom, for (int i = 0; i < count; ++i) { top_data[i] = max(bottom_data[i], Dtype(0)); } + return Dtype(0); } template -Dtype ReLULayer::Backward_cpu(const vector*>& top, +void ReLULayer::Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { if (propagate_down) { @@ -34,7 +35,6 @@ Dtype ReLULayer::Backward_cpu(const vector*>& top, bottom_diff[i] = top_diff[i] * (bottom_data[i] > 0); } } - return Dtype(0); } diff --git a/src/caffe/layers/relu_layer.cu b/src/caffe/layers/relu_layer.cu index 20a5a45e2f4..51e5ef26c81 100644 --- a/src/caffe/layers/relu_layer.cu +++ b/src/caffe/layers/relu_layer.cu @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -18,7 +18,7 @@ __global__ void ReLUForward(const int n, const Dtype* in, Dtype* out) { } template -void ReLULayer::Forward_gpu(const vector*>& bottom, +Dtype ReLULayer::Forward_gpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->gpu_data(); Dtype* top_data = (*top)[0]->mutable_gpu_data(); @@ -32,6 +32,7 @@ void ReLULayer::Forward_gpu(const vector*>& bottom, // << " top_data: " << (unsigned long)top_data // << " blocks: " << CAFFE_GET_BLOCKS(count) // << " threads: " << CAFFE_CUDA_NUM_THREADS; + return Dtype(0); } template @@ -43,7 +44,7 @@ __global__ void ReLUBackward(const int n, const Dtype* in_diff, } template -Dtype ReLULayer::Backward_gpu(const vector*>& top, +void ReLULayer::Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { if (propagate_down) { @@ -56,7 +57,6 @@ Dtype ReLULayer::Backward_gpu(const vector*>& top, count, top_diff, bottom_data, bottom_diff); CUDA_POST_KERNEL_CHECK; } - return Dtype(0); } INSTANTIATE_CLASS(ReLULayer); diff --git a/src/caffe/layers/sigmoid_cross_entropy_loss_layer.cpp b/src/caffe/layers/sigmoid_cross_entropy_loss_layer.cpp new file mode 100644 index 00000000000..a638684f3b6 --- /dev/null +++ b/src/caffe/layers/sigmoid_cross_entropy_loss_layer.cpp @@ -0,0 +1,65 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include +#include + +#include "caffe/layer.hpp" +#include "caffe/vision_layers.hpp" +#include "caffe/util/math_functions.hpp" + +using std::max; + +namespace caffe { + +template +void SigmoidCrossEntropyLossLayer::FurtherSetUp( + const vector*>& bottom, vector*>* top) { + CHECK_EQ(bottom[0]->count(), bottom[1]->count()) << + "SigmoidCrossEntropyLoss Layer inputs must have same count."; + sigmoid_bottom_vec_.clear(); + sigmoid_bottom_vec_.push_back(bottom[0]); + sigmoid_top_vec_.clear(); + sigmoid_top_vec_.push_back(sigmoid_output_.get()); + sigmoid_layer_->SetUp(sigmoid_bottom_vec_, &sigmoid_top_vec_); +} + +template +Dtype SigmoidCrossEntropyLossLayer::Forward_cpu( + const vector*>& bottom, vector*>* top) { + // The forward pass computes the sigmoid outputs. + sigmoid_bottom_vec_[0] = bottom[0]; + sigmoid_layer_->Forward(sigmoid_bottom_vec_, &sigmoid_top_vec_); + // Compute the loss (negative log likelihood) + const int count = bottom[0]->count(); + const int num = bottom[0]->num(); + // Stable version of loss computation from input data + const Dtype* input_data = bottom[0]->cpu_data(); + const Dtype* target = bottom[1]->cpu_data(); + Dtype loss = 0; + for (int i = 0; i < count; ++i) { + loss -= input_data[i] * (target[i] - (input_data[i] >= 0)) - + log(1 + exp(input_data[i] - 2 * input_data[i] * (input_data[i] >= 0))); + } + return loss / num; +} + +template +void SigmoidCrossEntropyLossLayer::Backward_cpu( + const vector*>& top, const bool propagate_down, + vector*>* bottom) { + // First, compute the diff + const int count = (*bottom)[0]->count(); + const int num = (*bottom)[0]->num(); + const Dtype* sigmoid_output_data = sigmoid_output_->cpu_data(); + const Dtype* target = (*bottom)[1]->cpu_data(); + Dtype* bottom_diff = (*bottom)[0]->mutable_cpu_diff(); + caffe_sub(count, sigmoid_output_data, target, bottom_diff); + // Scale down gradient + caffe_scal(count, Dtype(1) / num, bottom_diff); +} + +INSTANTIATE_CLASS(SigmoidCrossEntropyLossLayer); + + +} // namespace caffe diff --git a/src/caffe/layers/sigmoid_cross_entropy_loss_layer.cu b/src/caffe/layers/sigmoid_cross_entropy_loss_layer.cu new file mode 100644 index 00000000000..61004541fce --- /dev/null +++ b/src/caffe/layers/sigmoid_cross_entropy_loss_layer.cu @@ -0,0 +1,54 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include +#include + +#include "caffe/layer.hpp" +#include "caffe/vision_layers.hpp" +#include "caffe/util/math_functions.hpp" + +using std::max; + +namespace caffe { + +template +Dtype SigmoidCrossEntropyLossLayer::Forward_gpu( + const vector*>& bottom, vector*>* top) { + // The forward pass computes the sigmoid outputs. + sigmoid_bottom_vec_[0] = bottom[0]; + sigmoid_layer_->Forward(sigmoid_bottom_vec_, &sigmoid_top_vec_); + // Compute the loss (negative log likelihood) + const int count = bottom[0]->count(); + const int num = bottom[0]->num(); + // Stable version of loss computation from input data + const Dtype* input_data = bottom[0]->cpu_data(); + const Dtype* target = bottom[1]->cpu_data(); + Dtype loss = 0; + for (int i = 0; i < count; ++i) { + loss -= input_data[i] * (target[i] - (input_data[i] >= 0)) - + log(1 + exp(input_data[i] - 2 * input_data[i] * (input_data[i] >= 0))); + } + return loss / num; +} + +template +void SigmoidCrossEntropyLossLayer::Backward_gpu( + const vector*>& top, const bool propagate_down, + vector*>* bottom) { + // First, compute the diff + const int count = (*bottom)[0]->count(); + const int num = (*bottom)[0]->num(); + const Dtype* sigmoid_output_data = sigmoid_output_->gpu_data(); + const Dtype* target = (*bottom)[1]->gpu_data(); + Dtype* bottom_diff = (*bottom)[0]->mutable_gpu_diff(); + caffe_gpu_copy(count, sigmoid_output_data, bottom_diff); + caffe_gpu_axpy(count, Dtype(-1), target, bottom_diff); + // Scale down gradient + caffe_gpu_scal(count, Dtype(1) / num, bottom_diff); +} + +INSTANTIATE_CLASS(SigmoidCrossEntropyLossLayer); + + +} // namespace caffe diff --git a/src/caffe/layers/sigmoid_layer.cpp b/src/caffe/layers/sigmoid_layer.cpp index ba6ec84e717..88a7920fc18 100644 --- a/src/caffe/layers/sigmoid_layer.cpp +++ b/src/caffe/layers/sigmoid_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2014 Tobias Domhan +// Copyright 2014 BVLC and contributors. #include #include @@ -15,7 +15,7 @@ inline Dtype sigmoid(Dtype x) { } template -void SigmoidLayer::Forward_cpu(const vector*>& bottom, +Dtype SigmoidLayer::Forward_cpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->cpu_data(); Dtype* top_data = (*top)[0]->mutable_cpu_data(); @@ -23,23 +23,23 @@ void SigmoidLayer::Forward_cpu(const vector*>& bottom, for (int i = 0; i < count; ++i) { top_data[i] = sigmoid(bottom_data[i]); } + return Dtype(0); } template -Dtype SigmoidLayer::Backward_cpu(const vector*>& top, +void SigmoidLayer::Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { if (propagate_down) { - const Dtype* bottom_data = (*bottom)[0]->cpu_data(); + const Dtype* top_data = top[0]->cpu_data(); const Dtype* top_diff = top[0]->cpu_diff(); Dtype* bottom_diff = (*bottom)[0]->mutable_cpu_diff(); const int count = (*bottom)[0]->count(); for (int i = 0; i < count; ++i) { - Dtype sigmoid_x = sigmoid(bottom_data[i]); + const Dtype sigmoid_x = top_data[i]; bottom_diff[i] = top_diff[i] * sigmoid_x * (1. - sigmoid_x); } } - return Dtype(0); } INSTANTIATE_CLASS(SigmoidLayer); diff --git a/src/caffe/layers/sigmoid_layer.cu b/src/caffe/layers/sigmoid_layer.cu index ba311f814a3..aa8568abb3f 100644 --- a/src/caffe/layers/sigmoid_layer.cu +++ b/src/caffe/layers/sigmoid_layer.cu @@ -1,4 +1,4 @@ -// Copyright 2014 Tobias Domhan +// Copyright 2014 BVLC and contributors. #include #include @@ -11,20 +11,15 @@ using std::max; namespace caffe { -template -__device__ inline Dtype sigmoid_gpu(Dtype x) { - return 1. / (1. + exp(-x)); -} - template __global__ void SigmoidForward(const int n, const Dtype* in, Dtype* out) { CUDA_KERNEL_LOOP(index, n) { - out[index] = sigmoid_gpu(in[index]); + out[index] = 1. / (1. + exp(-in[index])); } } template -void SigmoidLayer::Forward_gpu(const vector*>& bottom, +Dtype SigmoidLayer::Forward_gpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->gpu_data(); Dtype* top_data = (*top)[0]->mutable_gpu_data(); @@ -38,32 +33,32 @@ void SigmoidLayer::Forward_gpu(const vector*>& bottom, // << " top_data: " << (unsigned long)top_data // << " blocks: " << CAFFE_GET_BLOCKS(count) // << " threads: " << CAFFE_CUDA_NUM_THREADS; + return Dtype(0); } template __global__ void SigmoidBackward(const int n, const Dtype* in_diff, - const Dtype* in_data, Dtype* out_diff) { + const Dtype* out_data, Dtype* out_diff) { CUDA_KERNEL_LOOP(index, n) { - Dtype sigmoid_x = sigmoid_gpu(in_data[index]); + const Dtype sigmoid_x = out_data[index]; out_diff[index] = in_diff[index] * sigmoid_x * (1 - sigmoid_x); } } template -Dtype SigmoidLayer::Backward_gpu(const vector*>& top, +void SigmoidLayer::Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { if (propagate_down) { - const Dtype* bottom_data = (*bottom)[0]->gpu_data(); + const Dtype* top_data = top[0]->gpu_data(); const Dtype* top_diff = top[0]->gpu_diff(); Dtype* bottom_diff = (*bottom)[0]->mutable_gpu_diff(); const int count = (*bottom)[0]->count(); // NOLINT_NEXT_LINE(whitespace/operators) SigmoidBackward<<>>( - count, top_diff, bottom_data, bottom_diff); + count, top_diff, top_data, bottom_diff); CUDA_POST_KERNEL_CHECK; } - return Dtype(0); } INSTANTIATE_CLASS(SigmoidLayer); diff --git a/src/caffe/layers/softmax_layer.cpp b/src/caffe/layers/softmax_layer.cpp index 69e95ff6385..e9983608e94 100644 --- a/src/caffe/layers/softmax_layer.cpp +++ b/src/caffe/layers/softmax_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. // #include #include @@ -28,7 +28,7 @@ void SoftmaxLayer::SetUp(const vector*>& bottom, } template -void SoftmaxLayer::Forward_cpu(const vector*>& bottom, +Dtype SoftmaxLayer::Forward_cpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->cpu_data(); Dtype* top_data = (*top)[0]->mutable_cpu_data(); @@ -56,10 +56,11 @@ void SoftmaxLayer::Forward_cpu(const vector*>& bottom, for (int i = 0; i < num; ++i) { caffe_scal(dim, Dtype(1.) / scale_data[i], top_data + i * dim); } + return Dtype(0); } template -Dtype SoftmaxLayer::Backward_cpu(const vector*>& top, +void SoftmaxLayer::Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { const Dtype* top_diff = top[0]->cpu_diff(); @@ -79,7 +80,6 @@ Dtype SoftmaxLayer::Backward_cpu(const vector*>& top, scale_data, sum_multiplier_.cpu_data(), 1., bottom_diff); // elementwise multiplication caffe_mul(top[0]->count(), bottom_diff, top_data, bottom_diff); - return Dtype(0); } diff --git a/src/caffe/layers/softmax_layer.cu b/src/caffe/layers/softmax_layer.cu index 2e41a1794df..a264a819b78 100644 --- a/src/caffe/layers/softmax_layer.cu +++ b/src/caffe/layers/softmax_layer.cu @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -43,7 +43,7 @@ __global__ void kernel_exp(const int num, const Dtype* data, Dtype* out) { } template -void SoftmaxLayer::Forward_gpu(const vector*>& bottom, +Dtype SoftmaxLayer::Forward_gpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->gpu_data(); Dtype* top_data = (*top)[0]->mutable_gpu_data(); @@ -73,11 +73,12 @@ void SoftmaxLayer::Forward_gpu(const vector*>& bottom, kernel_softmax_div<<>>( num, dim, scale_data, top_data); + return Dtype(0); } // TODO(Yangqing): implement the GPU version of softmax. template -Dtype SoftmaxLayer::Backward_gpu(const vector*>& top, +void SoftmaxLayer::Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { const Dtype* top_diff = top[0]->gpu_diff(); const Dtype* top_data = top[0]->gpu_data(); @@ -103,7 +104,6 @@ Dtype SoftmaxLayer::Backward_gpu(const vector*>& top, scale_.gpu_data(), sum_multiplier_.gpu_data(), 1., bottom_diff); // elementwise multiplication caffe_gpu_mul(top[0]->count(), bottom_diff, top_data, bottom_diff); - return Dtype(0); } INSTANTIATE_CLASS(SoftmaxLayer); diff --git a/src/caffe/layers/softmax_loss_layer.cpp b/src/caffe/layers/softmax_loss_layer.cpp index 6fdaea5a1dd..fecd7a520df 100644 --- a/src/caffe/layers/softmax_loss_layer.cpp +++ b/src/caffe/layers/softmax_loss_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -24,33 +24,39 @@ void SoftmaxWithLossLayer::SetUp(const vector*>& bottom, } template -void SoftmaxWithLossLayer::Forward_cpu( +Dtype SoftmaxWithLossLayer::Forward_cpu( const vector*>& bottom, vector*>* top) { // The forward pass computes the softmax prob values. softmax_bottom_vec_[0] = bottom[0]; softmax_layer_->Forward(softmax_bottom_vec_, &softmax_top_vec_); + const Dtype* prob_data = prob_.cpu_data(); + const Dtype* label = bottom[1]->cpu_data(); + int num = prob_.num(); + int dim = prob_.count() / num; + Dtype loss = 0; + for (int i = 0; i < num; ++i) { + loss += -log(max(prob_data[i * dim + static_cast(label[i])], + Dtype(FLT_MIN))); + } + return loss / num; } template -Dtype SoftmaxWithLossLayer::Backward_cpu(const vector*>& top, +void SoftmaxWithLossLayer::Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { - // First, compute the diff + // Compute the diff Dtype* bottom_diff = (*bottom)[0]->mutable_cpu_diff(); const Dtype* prob_data = prob_.cpu_data(); memcpy(bottom_diff, prob_data, sizeof(Dtype) * prob_.count()); const Dtype* label = (*bottom)[1]->cpu_data(); int num = prob_.num(); int dim = prob_.count() / num; - Dtype loss = 0; for (int i = 0; i < num; ++i) { bottom_diff[i * dim + static_cast(label[i])] -= 1; - loss += -log(max(prob_data[i * dim + static_cast(label[i])], - Dtype(FLT_MIN))); } // Scale down gradient caffe_scal(prob_.count(), Dtype(1) / num, bottom_diff); - return loss / num; } diff --git a/src/caffe/layers/softmax_loss_layer.cu b/src/caffe/layers/softmax_loss_layer.cu index 100393caa3d..24a3c384c96 100644 --- a/src/caffe/layers/softmax_loss_layer.cu +++ b/src/caffe/layers/softmax_loss_layer.cu @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -13,18 +13,17 @@ using std::max; namespace caffe { template -void SoftmaxWithLossLayer::Forward_gpu( +Dtype SoftmaxWithLossLayer::Forward_gpu( const vector*>& bottom, vector*>* top) { // The forward pass computes the softmax prob values. - softmax_bottom_vec_[0] = bottom[0]; - softmax_layer_->Forward(softmax_bottom_vec_, &softmax_top_vec_); + return Forward_cpu(bottom, top); } template -Dtype SoftmaxWithLossLayer::Backward_gpu(const vector*>& top, +void SoftmaxWithLossLayer::Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { // TODO(Yangqing): implement the GPU version of softmax. - return Backward_cpu(top, propagate_down, bottom); + Backward_cpu(top, propagate_down, bottom); } INSTANTIATE_CLASS(SoftmaxWithLossLayer); diff --git a/src/caffe/layers/split_layer.cpp b/src/caffe/layers/split_layer.cpp index f9fc461a11f..aa2b6f6a308 100644 --- a/src/caffe/layers/split_layer.cpp +++ b/src/caffe/layers/split_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2014 Jeff Donahue +// Copyright 2014 BVLC and contributors. #include @@ -28,37 +28,26 @@ void SplitLayer::SetUp(const vector*>& bottom, } template -void SplitLayer::Forward_cpu(const vector*>& bottom, +Dtype SplitLayer::Forward_cpu(const vector*>& bottom, vector*>* top) { - const Dtype* bottom_data = bottom[0]->cpu_data(); for (int i = 0; i < top->size(); ++i) { - if (i == 0 && (*top)[i] == bottom[0]) { - continue; - } - Dtype* top_data = (*top)[i]->mutable_cpu_data(); - caffe_copy(count_, bottom_data, top_data); + (*top)[i]->ShareData(*bottom[0]); } + return Dtype(0.); } template -Dtype SplitLayer::Backward_cpu(const vector*>& top, +void SplitLayer::Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { if (propagate_down) { - const Dtype* top_diff = top[0]->cpu_diff(); - Dtype* bottom_diff = (*bottom)[0]->mutable_cpu_diff(); - // Initialize by copying first top blob diff to our diff, unless we're - // doing in-place computation for the first blob, in which case the diff is - // already initialized. - if (top[0] != (*bottom)[0]) { - caffe_copy(count_, top_diff, bottom_diff); - } + (*bottom)[0]->ShareDiff(*top[0]); // Add remaining top blob diffs. + Dtype* bottom_diff = (*bottom)[0]->mutable_cpu_diff(); for (int i = 1; i < top.size(); ++i) { - top_diff = top[i]->cpu_diff(); + const Dtype* top_diff = top[i]->cpu_diff(); caffe_axpy(count_, Dtype(1.), top_diff, bottom_diff); } } - return Dtype(0.); } diff --git a/src/caffe/layers/split_layer.cu b/src/caffe/layers/split_layer.cu index 5f25a460a6a..e2269b8beab 100644 --- a/src/caffe/layers/split_layer.cu +++ b/src/caffe/layers/split_layer.cu @@ -1,4 +1,4 @@ -// Copyright 2014 Jeff Donahue +// Copyright 2014 BVLC and contributors. #include @@ -9,37 +9,26 @@ namespace caffe { template -void SplitLayer::Forward_gpu(const vector*>& bottom, +Dtype SplitLayer::Forward_gpu(const vector*>& bottom, vector*>* top) { - const Dtype* bottom_data = bottom[0]->gpu_data(); for (int i = 0; i < top->size(); ++i) { - if (i == 0 && (*top)[i] == bottom[0]) { - continue; - } - Dtype* top_data = (*top)[i]->mutable_gpu_data(); - caffe_gpu_copy(count_, bottom_data, top_data); + (*top)[i]->ShareData(*bottom[0]); } + return Dtype(0.); } template -Dtype SplitLayer::Backward_gpu(const vector*>& top, +void SplitLayer::Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { if (propagate_down) { - const Dtype* top_diff = top[0]->gpu_diff(); - Dtype* bottom_diff = (*bottom)[0]->mutable_gpu_diff(); - // Initialize by copying first top blob diff to our diff, unless we're - // doing in-place computation for the first blob, in which case the diff is - // already initialized. - if (top[0] != (*bottom)[0]) { - caffe_gpu_copy(count_, top_diff, bottom_diff); - } + (*bottom)[0]->ShareDiff(*top[0]); // Add remaining top blob diffs. + Dtype* bottom_diff = (*bottom)[0]->mutable_gpu_diff(); for (int i = 1; i < top.size(); ++i) { - top_diff = top[i]->gpu_diff(); + const Dtype* top_diff = top[i]->gpu_diff(); caffe_gpu_axpy(count_, Dtype(1.), top_diff, bottom_diff); } } - return Dtype(0.); } diff --git a/src/caffe/layers/tanh_layer.cpp b/src/caffe/layers/tanh_layer.cpp index d6f99560082..46d11d0a17a 100644 --- a/src/caffe/layers/tanh_layer.cpp +++ b/src/caffe/layers/tanh_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2014 Aravindh Mahendran +// Copyright 2014 BVLC and contributors. // TanH neuron activation function layer. // Adapted from ReLU layer code written by Yangqing Jia @@ -11,7 +11,7 @@ namespace caffe { template -void TanHLayer::Forward_cpu(const vector*>& bottom, +Dtype TanHLayer::Forward_cpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->cpu_data(); Dtype* top_data = (*top)[0]->mutable_cpu_data(); @@ -21,10 +21,11 @@ void TanHLayer::Forward_cpu(const vector*>& bottom, exp2x = exp(2*bottom_data[i]); top_data[i] = (exp2x - Dtype(1))/(exp2x + Dtype(1)); } + return Dtype(0); } template -Dtype TanHLayer::Backward_cpu(const vector*>& top, +void TanHLayer::Backward_cpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { if (propagate_down) { @@ -40,7 +41,6 @@ Dtype TanHLayer::Backward_cpu(const vector*>& top, bottom_diff[i] = top_diff[i] * (1 - tanhx*tanhx); } } - return Dtype(0); } INSTANTIATE_CLASS(TanHLayer); diff --git a/src/caffe/layers/tanh_layer.cu b/src/caffe/layers/tanh_layer.cu index c1f8a29cc5c..13bb001ffc0 100644 --- a/src/caffe/layers/tanh_layer.cu +++ b/src/caffe/layers/tanh_layer.cu @@ -1,4 +1,4 @@ -// Copyright 2014 Aravindh Mahendran +// Copyright 2014 BVLC and contributors. // TanH neuron activation function layer. // Adapted from ReLU layer code written by Yangqing Jia @@ -19,7 +19,7 @@ __global__ void TanHForward(const int n, const Dtype* in, Dtype* out) { } template -void TanHLayer::Forward_gpu(const vector*>& bottom, +Dtype TanHLayer::Forward_gpu(const vector*>& bottom, vector*>* top) { const Dtype* bottom_data = bottom[0]->gpu_data(); Dtype* top_data = (*top)[0]->mutable_gpu_data(); @@ -33,6 +33,7 @@ void TanHLayer::Forward_gpu(const vector*>& bottom, // << " top_data: " << (unsigned long)top_data // << " blocks: " << CAFFE_GET_BLOCKS(count) // << " threads: " << CAFFE_CUDA_NUM_THREADS; + return Dtype(0); } template @@ -46,7 +47,7 @@ __global__ void TanHBackward(const int n, const Dtype* in_diff, } template -Dtype TanHLayer::Backward_gpu(const vector*>& top, +void TanHLayer::Backward_gpu(const vector*>& top, const bool propagate_down, vector*>* bottom) { if (propagate_down) { @@ -59,7 +60,6 @@ Dtype TanHLayer::Backward_gpu(const vector*>& top, count, top_diff, bottom_data, bottom_diff); CUDA_POST_KERNEL_CHECK; } - return Dtype(0); } INSTANTIATE_CLASS(TanHLayer); diff --git a/src/caffe/layers/window_data_layer.cpp b/src/caffe/layers/window_data_layer.cpp index 87fb54112f1..862c0347082 100644 --- a/src/caffe/layers/window_data_layer.cpp +++ b/src/caffe/layers/window_data_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Ross Girshick +// Copyright 2014 BVLC and contributors. // // Based on data_layer.cpp by Yangqing Jia. @@ -18,15 +18,17 @@ #include "caffe/layer.hpp" #include "caffe/util/io.hpp" +#include "caffe/util/math_functions.hpp" +#include "caffe/util/rng.hpp" #include "caffe/vision_layers.hpp" using std::string; using std::map; using std::pair; -// caffe.proto > LayerParameter +// caffe.proto > LayerParameter > WindowDataParameter // 'source' field specifies the window_file -// 'cropsize' indicates the desired warped size +// 'crop_size' indicates the desired warped size namespace caffe { @@ -40,42 +42,41 @@ void* WindowDataLayerPrefetch(void* layer_pointer) { Dtype* top_data = layer->prefetch_data_->mutable_cpu_data(); Dtype* top_label = layer->prefetch_label_->mutable_cpu_data(); - const Dtype scale = layer->layer_param_.scale(); - const int batchsize = layer->layer_param_.batchsize(); - const int cropsize = layer->layer_param_.cropsize(); - const int context_pad = layer->layer_param_.det_context_pad(); - const bool mirror = layer->layer_param_.mirror(); - const float fg_fraction = layer->layer_param_.det_fg_fraction(); + const Dtype scale = layer->layer_param_.window_data_param().scale(); + const int batch_size = layer->layer_param_.window_data_param().batch_size(); + const int crop_size = layer->layer_param_.window_data_param().crop_size(); + const int context_pad = layer->layer_param_.window_data_param().context_pad(); + const bool mirror = layer->layer_param_.window_data_param().mirror(); + const float fg_fraction = + layer->layer_param_.window_data_param().fg_fraction(); const Dtype* mean = layer->data_mean_.cpu_data(); - const int mean_off = (layer->data_mean_.width() - cropsize) / 2; + const int mean_off = (layer->data_mean_.width() - crop_size) / 2; const int mean_width = layer->data_mean_.width(); const int mean_height = layer->data_mean_.height(); - cv::Size cv_crop_size(cropsize, cropsize); - const string& crop_mode = layer->layer_param_.det_crop_mode(); + cv::Size cv_crop_size(crop_size, crop_size); + const string& crop_mode = layer->layer_param_.window_data_param().crop_mode(); bool use_square = (crop_mode == "square") ? true : false; // zero out batch memset(top_data, 0, sizeof(Dtype)*layer->prefetch_data_->count()); - const int num_fg = static_cast(static_cast(batchsize) + const int num_fg = static_cast(static_cast(batch_size) * fg_fraction); - const int num_samples[2] = { batchsize - num_fg, num_fg }; + const int num_samples[2] = { batch_size - num_fg, num_fg }; - int itemid = 0; + int item_id = 0; // sample from bg set then fg set for (int is_fg = 0; is_fg < 2; ++is_fg) { for (int dummy = 0; dummy < num_samples[is_fg]; ++dummy) { // sample a window - vector window = (is_fg) - // NOLINT_NEXT_LINE(runtime/threadsafe_fn) - ? layer->fg_windows_[rand() % layer->fg_windows_.size()] - // NOLINT_NEXT_LINE(runtime/threadsafe_fn) - : layer->bg_windows_[rand() % layer->bg_windows_.size()]; + const unsigned int rand_index = layer->PrefetchRand(); + vector window = (is_fg) ? + layer->fg_windows_[rand_index % layer->fg_windows_.size()] : + layer->bg_windows_[rand_index % layer->bg_windows_.size()]; bool do_mirror = false; - // NOLINT_NEXT_LINE(runtime/threadsafe_fn) - if (mirror && rand() % 2) { + if (mirror && layer->PrefetchRand() % 2) { do_mirror = true; } @@ -100,10 +101,10 @@ void* WindowDataLayerPrefetch(void* layer_pointer) { int pad_h = 0; if (context_pad > 0 || use_square) { // scale factor by which to expand the original region - // such that after warping the expanded region to cropsize x cropsize + // such that after warping the expanded region to crop_size x crop_size // there's exactly context_pad amount of padding on each side - Dtype context_scale = static_cast(cropsize) / - static_cast(cropsize - 2*context_pad); + Dtype context_scale = static_cast(crop_size) / + static_cast(crop_size - 2*context_pad); // compute the expanded region Dtype half_height = static_cast(y2-y1+1)/2.0; @@ -147,9 +148,9 @@ void* WindowDataLayerPrefetch(void* layer_pointer) { // scale factors that would be used to warp the unclipped // expanded region Dtype scale_x = - static_cast(cropsize)/static_cast(unclipped_width); + static_cast(crop_size)/static_cast(unclipped_width); Dtype scale_y = - static_cast(cropsize)/static_cast(unclipped_height); + static_cast(crop_size)/static_cast(unclipped_height); // size to warp the clipped expanded region to cv_crop_size.width = @@ -169,13 +170,13 @@ void* WindowDataLayerPrefetch(void* layer_pointer) { pad_w = pad_x1; } - // ensure that the warped, clipped region plus the padding - // fits in the cropsize x cropsize image (it might not due to rounding) - if (pad_h + cv_crop_size.height > cropsize) { - cv_crop_size.height = cropsize - pad_h; + // ensure that the warped, clipped region plus the padding fits in the + // crop_size x crop_size image (it might not due to rounding) + if (pad_h + cv_crop_size.height > crop_size) { + cv_crop_size.height = crop_size - pad_h; } - if (pad_w + cv_crop_size.width > cropsize) { - cv_crop_size.width = cropsize - pad_w; + if (pad_w + cv_crop_size.width > crop_size) { + cv_crop_size.width = crop_size - pad_w; } } @@ -196,8 +197,8 @@ void* WindowDataLayerPrefetch(void* layer_pointer) { Dtype pixel = static_cast(cv_cropped_img.at(h, w)[c]); - top_data[((itemid * channels + c) * cropsize + h + pad_h) - * cropsize + w + pad_w] + top_data[((item_id * channels + c) * crop_size + h + pad_h) + * crop_size + w + pad_w] = (pixel - mean[(c * mean_height + h + mean_off + pad_h) * mean_width + w + mean_off + pad_w]) @@ -207,14 +208,13 @@ void* WindowDataLayerPrefetch(void* layer_pointer) { } // get window label - top_label[itemid] = window[WindowDataLayer::LABEL]; + top_label[item_id] = window[WindowDataLayer::LABEL]; #if 0 // useful debugging code for dumping transformed windows to disk string file_id; std::stringstream ss; - // NOLINT_NEXT_LINE(runtime/threadsafe_fn) - ss << rand(); + ss << layer->PrefetchRand(); ss >> file_id; std::ofstream inf((string("dump/") + file_id + string("_info.txt")).c_str(), std::ofstream::out); @@ -224,18 +224,18 @@ void* WindowDataLayerPrefetch(void* layer_pointer) { << window[WindowDataLayer::X2]+1 << std::endl << window[WindowDataLayer::Y2]+1 << std::endl << do_mirror << std::endl - << top_label[itemid] << std::endl + << top_label[item_id] << std::endl << is_fg << std::endl; inf.close(); std::ofstream top_data_file((string("dump/") + file_id + string("_data.txt")).c_str(), std::ofstream::out | std::ofstream::binary); for (int c = 0; c < channels; ++c) { - for (int h = 0; h < cropsize; ++h) { - for (int w = 0; w < cropsize; ++w) { + for (int h = 0; h < crop_size; ++h) { + for (int w = 0; w < crop_size; ++w) { top_data_file.write(reinterpret_cast( - &top_data[((itemid * channels + c) * cropsize + h) - * cropsize + w]), + &top_data[((item_id * channels + c) * crop_size + h) + * crop_size + w]), sizeof(Dtype)); } } @@ -243,7 +243,7 @@ void* WindowDataLayerPrefetch(void* layer_pointer) { top_data_file.close(); #endif - itemid++; + item_id++; } } @@ -252,7 +252,7 @@ void* WindowDataLayerPrefetch(void* layer_pointer) { template WindowDataLayer::~WindowDataLayer() { - CHECK(!pthread_join(thread_, NULL)) << "Pthread joining failed."; + JoinPrefetchThread(); } template @@ -278,15 +278,15 @@ void WindowDataLayer::SetUp(const vector*>& bottom, LOG(INFO) << "Window data layer:" << std::endl << " foreground (object) overlap threshold: " - << this->layer_param_.det_fg_threshold() << std::endl + << this->layer_param_.window_data_param().fg_threshold() << std::endl << " background (non-object) overlap threshold: " - << this->layer_param_.det_bg_threshold() << std::endl + << this->layer_param_.window_data_param().bg_threshold() << std::endl << " foreground sampling fraction: " - << this->layer_param_.det_fg_fraction(); + << this->layer_param_.window_data_param().fg_fraction(); - std::ifstream infile(this->layer_param_.source().c_str()); + std::ifstream infile(this->layer_param_.window_data_param().source().c_str()); CHECK(infile.good()) << "Failed to open window file " - << this->layer_param_.source() << std::endl; + << this->layer_param_.window_data_param().source() << std::endl; map label_hist; label_hist.insert(std::make_pair(0, 0)); @@ -307,6 +307,10 @@ void WindowDataLayer::SetUp(const vector*>& bottom, // read each box int num_windows; infile >> num_windows; + const float fg_threshold = + this->layer_param_.window_data_param().fg_threshold(); + const float bg_threshold = + this->layer_param_.window_data_param().bg_threshold(); for (int i = 0; i < num_windows; ++i) { int label, x1, y1, x2, y2; float overlap; @@ -322,13 +326,13 @@ void WindowDataLayer::SetUp(const vector*>& bottom, window[WindowDataLayer::Y2] = y2; // add window to foreground list or background list - if (overlap >= this->layer_param_.det_fg_threshold()) { + if (overlap >= fg_threshold) { int label = window[WindowDataLayer::LABEL]; CHECK_GT(label, 0); fg_windows_.push_back(window); label_hist.insert(std::make_pair(label, 0)); label_hist[label]++; - } else if (overlap < this->layer_param_.det_bg_threshold()) { + } else if (overlap < bg_threshold) { // background window, force label and overlap to 0 window[WindowDataLayer::LABEL] = 0; window[WindowDataLayer::OVERLAP] = 0; @@ -356,38 +360,41 @@ void WindowDataLayer::SetUp(const vector*>& bottom, } LOG(INFO) << "Amount of context padding: " - << this->layer_param_.det_context_pad(); + << this->layer_param_.window_data_param().context_pad(); - LOG(INFO) << "Crop mode: " << this->layer_param_.det_crop_mode(); + LOG(INFO) << "Crop mode: " + << this->layer_param_.window_data_param().crop_mode(); // image - int cropsize = this->layer_param_.cropsize(); - CHECK_GT(cropsize, 0); - (*top)[0]->Reshape( - this->layer_param_.batchsize(), channels, cropsize, cropsize); - prefetch_data_.reset(new Blob( - this->layer_param_.batchsize(), channels, cropsize, cropsize)); + int crop_size = this->layer_param_.window_data_param().crop_size(); + CHECK_GT(crop_size, 0); + const int batch_size = this->layer_param_.window_data_param().batch_size(); + (*top)[0]->Reshape(batch_size, channels, crop_size, crop_size); + prefetch_data_.reset( + new Blob(batch_size, channels, crop_size, crop_size)); LOG(INFO) << "output data size: " << (*top)[0]->num() << "," << (*top)[0]->channels() << "," << (*top)[0]->height() << "," << (*top)[0]->width(); // label - (*top)[1]->Reshape(this->layer_param_.batchsize(), 1, 1, 1); + (*top)[1]->Reshape(batch_size, 1, 1, 1); prefetch_label_.reset( - new Blob(this->layer_param_.batchsize(), 1, 1, 1)); + new Blob(batch_size, 1, 1, 1)); // check if we want to have mean - if (this->layer_param_.has_meanfile()) { + if (this->layer_param_.window_data_param().has_mean_file()) { + const string& mean_file = + this->layer_param_.window_data_param().mean_file(); + LOG(INFO) << "Loading mean file from" << mean_file; BlobProto blob_proto; - LOG(INFO) << "Loading mean file from" << this->layer_param_.meanfile(); - ReadProtoFromBinaryFile(this->layer_param_.meanfile().c_str(), &blob_proto); + ReadProtoFromBinaryFileOrDie(mean_file, &blob_proto); data_mean_.FromProto(blob_proto); CHECK_EQ(data_mean_.num(), 1); CHECK_EQ(data_mean_.width(), data_mean_.height()); CHECK_EQ(data_mean_.channels(), channels); } else { // Simply initialize an all-empty mean. - data_mean_.Reshape(1, channels, cropsize, cropsize); + data_mean_.Reshape(1, channels, crop_size, crop_size); } // Now, start the prefetch thread. Before calling prefetch, we make two // cpu_data calls so that the prefetch thread does not accidentally make @@ -397,53 +404,51 @@ void WindowDataLayer::SetUp(const vector*>& bottom, prefetch_label_->mutable_cpu_data(); data_mean_.cpu_data(); DLOG(INFO) << "Initializing prefetch"; - CHECK(!pthread_create(&thread_, NULL, WindowDataLayerPrefetch, - reinterpret_cast(this))) << "Pthread execution failed."; + CreatePrefetchThread(); DLOG(INFO) << "Prefetch initialized."; } template -void WindowDataLayer::Forward_cpu(const vector*>& bottom, - vector*>* top) { - // First, join the thread - CHECK(!pthread_join(thread_, NULL)) << "Pthread joining failed."; - // Copy the data - memcpy((*top)[0]->mutable_cpu_data(), prefetch_data_->cpu_data(), - sizeof(Dtype) * prefetch_data_->count()); - memcpy((*top)[1]->mutable_cpu_data(), prefetch_label_->cpu_data(), - sizeof(Dtype) * prefetch_label_->count()); - // Start a new prefetch thread +void WindowDataLayer::CreatePrefetchThread() { + const bool prefetch_needs_rand = + this->layer_param_.window_data_param().mirror() || + this->layer_param_.window_data_param().crop_size(); + if (prefetch_needs_rand) { + const unsigned int prefetch_rng_seed = caffe_rng_rand(); + prefetch_rng_.reset(new Caffe::RNG(prefetch_rng_seed)); + } else { + prefetch_rng_.reset(); + } + // Create the thread. CHECK(!pthread_create(&thread_, NULL, WindowDataLayerPrefetch, - reinterpret_cast(this))) << "Pthread execution failed."; + static_cast(this))) << "Pthread execution failed."; } template -void WindowDataLayer::Forward_gpu(const vector*>& bottom, - vector*>* top) { - // First, join the thread +void WindowDataLayer::JoinPrefetchThread() { CHECK(!pthread_join(thread_, NULL)) << "Pthread joining failed."; - // Copy the data - CUDA_CHECK(cudaMemcpy((*top)[0]->mutable_gpu_data(), - prefetch_data_->cpu_data(), sizeof(Dtype) * prefetch_data_->count(), - cudaMemcpyHostToDevice)); - CUDA_CHECK(cudaMemcpy((*top)[1]->mutable_gpu_data(), - prefetch_label_->cpu_data(), sizeof(Dtype) * prefetch_label_->count(), - cudaMemcpyHostToDevice)); - // Start a new prefetch thread - CHECK(!pthread_create(&thread_, NULL, WindowDataLayerPrefetch, - reinterpret_cast(this))) << "Pthread execution failed."; } -// The backward operations are dummy - they do not carry any computation. template -Dtype WindowDataLayer::Backward_cpu(const vector*>& top, - const bool propagate_down, vector*>* bottom) { - return Dtype(0.); +unsigned int WindowDataLayer::PrefetchRand() { + CHECK(prefetch_rng_); + caffe::rng_t* prefetch_rng = + static_cast(prefetch_rng_->generator()); + return (*prefetch_rng)(); } template -Dtype WindowDataLayer::Backward_gpu(const vector*>& top, - const bool propagate_down, vector*>* bottom) { +Dtype WindowDataLayer::Forward_cpu(const vector*>& bottom, + vector*>* top) { + // First, join the thread + JoinPrefetchThread(); + // Copy the data + caffe_copy(prefetch_data_->count(), prefetch_data_->cpu_data(), + (*top)[0]->mutable_cpu_data()); + caffe_copy(prefetch_label_->count(), prefetch_label_->cpu_data(), + (*top)[1]->mutable_cpu_data()); + // Start a new prefetch thread + CreatePrefetchThread(); return Dtype(0.); } diff --git a/src/caffe/layers/window_data_layer.cu b/src/caffe/layers/window_data_layer.cu new file mode 100644 index 00000000000..bc49fef6545 --- /dev/null +++ b/src/caffe/layers/window_data_layer.cu @@ -0,0 +1,44 @@ +// Copyright 2014 BVLC and contributors. +// +// Based on data_layer.cpp by Yangqing Jia. + +#include +#include + +#include +#include + +#include "caffe/layer.hpp" +#include "caffe/util/io.hpp" +#include "caffe/vision_layers.hpp" + +using std::string; +using std::map; +using std::pair; + +// caffe.proto > LayerParameter > WindowDataParameter +// 'source' field specifies the window_file +// 'crop_size' indicates the desired warped size + +namespace caffe { + +template +Dtype WindowDataLayer::Forward_gpu(const vector*>& bottom, + vector*>* top) { + // First, join the thread + JoinPrefetchThread(); + // Copy the data + CUDA_CHECK(cudaMemcpy((*top)[0]->mutable_gpu_data(), + prefetch_data_->cpu_data(), sizeof(Dtype) * prefetch_data_->count(), + cudaMemcpyHostToDevice)); + CUDA_CHECK(cudaMemcpy((*top)[1]->mutable_gpu_data(), + prefetch_label_->cpu_data(), sizeof(Dtype) * prefetch_label_->count(), + cudaMemcpyHostToDevice)); + // Start a new prefetch thread + CreatePrefetchThread(); + return Dtype(0.); +} + +INSTANTIATE_CLASS(WindowDataLayer); + +} // namespace caffe diff --git a/src/caffe/net.cpp b/src/caffe/net.cpp index 1837b0768ae..c39510def3e 100644 --- a/src/caffe/net.cpp +++ b/src/caffe/net.cpp @@ -1,15 +1,17 @@ -// Copyright Yangqing Jia 2013 +// Copyright 2014 BVLC and contributors. #include #include #include #include +#include "caffe/common.hpp" #include "caffe/proto/caffe.pb.h" #include "caffe/layer.hpp" #include "caffe/net.hpp" #include "caffe/util/io.hpp" #include "caffe/util/insert_splits.hpp" +#include "caffe/util/upgrade_proto.hpp" using std::pair; using std::map; @@ -25,7 +27,7 @@ Net::Net(const NetParameter& param) { template Net::Net(const string& param_file) { NetParameter param; - ReadProtoFromTextFile(param_file, ¶m); + ReadNetParamsFromTextFileOrDie(param_file, ¶m); Init(param); } @@ -33,7 +35,7 @@ template void Net::Init(const NetParameter& in_param) { // Create a copy of in_param with splits added where necessary. NetParameter param; - insert_splits(in_param, ¶m); + InsertSplits(in_param, ¶m); // Basically, build all the layers and set up its connections. name_ = param.name(); map blob_name_to_idx; @@ -67,15 +69,14 @@ void Net::Init(const NetParameter& in_param) { top_id_vecs_.resize(param.layers_size()); for (int i = 0; i < param.layers_size(); ++i) { bool in_place = false; - const LayerConnection& layer_connection = param.layers(i); - const LayerParameter& layer_param = layer_connection.layer(); + const LayerParameter& layer_param = param.layers(i); layers_.push_back(shared_ptr >(GetLayer(layer_param))); layer_names_.push_back(layer_param.name()); LOG(INFO) << "Creating Layer " << layer_param.name(); bool need_backward = param.force_backward(); // Figure out this layer's input and output - for (int j = 0; j < layer_connection.bottom_size(); ++j) { - const string& blob_name = layer_connection.bottom(j); + for (int j = 0; j < layer_param.bottom_size(); ++j) { + const string& blob_name = layer_param.bottom(j); const int blob_id = blob_name_to_idx[blob_name]; if (available_blobs.find(blob_name) == available_blobs.end()) { LOG(FATAL) << "Unknown blob input " << blob_name << @@ -89,11 +90,11 @@ void Net::Init(const NetParameter& in_param) { need_backward |= blob_need_backward_[blob_id]; available_blobs.erase(blob_name); } - for (int j = 0; j < layer_connection.top_size(); ++j) { - const string& blob_name = layer_connection.top(j); + for (int j = 0; j < layer_param.top_size(); ++j) { + const string& blob_name = layer_param.top(j); // Check if we are doing in-place computation - if (layer_connection.bottom_size() > j && - blob_name == layer_connection.bottom(j)) { + if (layer_param.bottom_size() > j && + blob_name == layer_param.bottom(j)) { // In-place computation LOG(INFO) << layer_param.name() << " -> " << blob_name << " (in-place)"; in_place = true; @@ -161,6 +162,13 @@ void Net::Init(const NetParameter& in_param) { it != available_blobs.end(); ++it) { LOG(INFO) << "This network produces output " << *it; net_output_blobs_.push_back(blobs_[blob_name_to_idx[*it]].get()); + net_output_blob_indices_.push_back(blob_name_to_idx[*it]); + } + for (size_t i = 0; i < blob_names_.size(); ++i) { + blob_names_index_[blob_names_[i]] = i; + } + for (size_t i = 0; i < layer_names_.size(); ++i) { + layer_names_index_[layer_names_[i]] = i; } GetLearningRateAndWeightDecay(); LOG(INFO) << "Network initialization done."; @@ -207,27 +215,32 @@ void Net::GetLearningRateAndWeightDecay() { } template -const vector*>& Net::ForwardPrefilled() { +const vector*>& Net::ForwardPrefilled(Dtype* loss) { + if (loss != NULL) { + *loss = Dtype(0.); + } for (int i = 0; i < layers_.size(); ++i) { // LOG(ERROR) << "Forwarding " << layer_names_[i]; - layers_[i]->Forward(bottom_vecs_[i], &top_vecs_[i]); + Dtype layer_loss = layers_[i]->Forward(bottom_vecs_[i], &top_vecs_[i]); + if (loss != NULL) { + *loss += layer_loss; + } } return net_output_blobs_; } template const vector*>& Net::Forward( - const vector*> & bottom) { + const vector*> & bottom, Dtype* loss) { // Copy bottom to internal bottom for (int i = 0; i < bottom.size(); ++i) { net_input_blobs_[i]->CopyFrom(*bottom[i]); } - return ForwardPrefilled(); + return ForwardPrefilled(loss); } - template -string Net::Forward(const string& input_blob_protos) { +string Net::Forward(const string& input_blob_protos, Dtype* loss) { BlobProtoVector blob_proto_vec; if (net_input_blobs_.size()) { blob_proto_vec.ParseFromString(input_blob_protos); @@ -237,7 +250,7 @@ string Net::Forward(const string& input_blob_protos) { net_input_blobs_[i]->FromProto(blob_proto_vec.blobs(i)); } } - ForwardPrefilled(); + ForwardPrefilled(loss); blob_proto_vec.Clear(); for (int i = 0; i < net_output_blobs_.size(); ++i) { net_output_blobs_[i]->ToProto(blob_proto_vec.add_blobs()); @@ -249,23 +262,50 @@ string Net::Forward(const string& input_blob_protos) { template -Dtype Net::Backward() { - Dtype loss = 0; +void Net::Backward() { for (int i = layers_.size() - 1; i >= 0; --i) { if (layer_need_backward_[i]) { - Dtype layer_loss = layers_[i]->Backward( - top_vecs_[i], true, &bottom_vecs_[i]); - loss += layer_loss; + layers_[i]->Backward(top_vecs_[i], true, &bottom_vecs_[i]); + } + } +} + +template +void Net::ShareTrainedLayersWith(Net* other) { + int num_source_layers = other->layers().size(); + for (int i = 0; i < num_source_layers; ++i) { + Layer* source_layer = other->layers()[i].get(); + const string& source_layer_name = other->layer_names()[i]; + int target_layer_id = 0; + while (target_layer_id != layer_names_.size() && + layer_names_[target_layer_id] != source_layer_name) { + ++target_layer_id; + } + if (target_layer_id == layer_names_.size()) { + DLOG(INFO) << "Ignoring source layer " << source_layer_name; + continue; + } + DLOG(INFO) << "Copying source layer " << source_layer_name; + vector > >& target_blobs = + layers_[target_layer_id]->blobs(); + CHECK_EQ(target_blobs.size(), source_layer->blobs().size()) + << "Incompatible number of blobs for layer " << source_layer_name; + for (int j = 0; j < target_blobs.size(); ++j) { + Blob* source_blob = source_layer->blobs()[j].get(); + CHECK_EQ(target_blobs[j]->num(), source_blob->num()); + CHECK_EQ(target_blobs[j]->channels(), source_blob->channels()); + CHECK_EQ(target_blobs[j]->height(), source_blob->height()); + CHECK_EQ(target_blobs[j]->width(), source_blob->width()); + target_blobs[j]->ShareData(*source_blob); } } - return loss; } template void Net::CopyTrainedLayersFrom(const NetParameter& param) { int num_source_layers = param.layers_size(); for (int i = 0; i < num_source_layers; ++i) { - const LayerParameter& source_layer = param.layers(i).layer(); + const LayerParameter& source_layer = param.layers(i); const string& source_layer_name = source_layer.name(); int target_layer_id = 0; while (target_layer_id != layer_names_.size() && @@ -294,7 +334,7 @@ void Net::CopyTrainedLayersFrom(const NetParameter& param) { template void Net::CopyTrainedLayersFrom(const string trained_filename) { NetParameter param; - ReadProtoFromBinaryFile(trained_filename, ¶m); + ReadNetParamsFromBinaryFileOrDie(trained_filename, ¶m); CopyTrainedLayersFrom(param); } @@ -308,15 +348,14 @@ void Net::ToProto(NetParameter* param, bool write_diff) { } DLOG(INFO) << "Serializing " << layers_.size() << " layers"; for (int i = 0; i < layers_.size(); ++i) { - LayerConnection* layer_connection = param->add_layers(); + LayerParameter* layer_param = param->add_layers(); for (int j = 0; j < bottom_id_vecs_[i].size(); ++j) { - layer_connection->add_bottom(blob_names_[bottom_id_vecs_[i][j]]); + layer_param->add_bottom(blob_names_[bottom_id_vecs_[i][j]]); } for (int j = 0; j < top_id_vecs_[i].size(); ++j) { - layer_connection->add_top(blob_names_[top_id_vecs_[i][j]]); + layer_param->add_top(blob_names_[top_id_vecs_[i][j]]); } - LayerParameter* layer_parameter = layer_connection->mutable_layer(); - layers_[i]->ToProto(layer_parameter, write_diff); + layers_[i]->ToProto(layer_param, write_diff); } } @@ -327,6 +366,42 @@ void Net::Update() { } } +template +bool Net::has_blob(const string& blob_name) { + return blob_names_index_.find(blob_name) != blob_names_index_.end(); +} + +template +const shared_ptr > Net::blob_by_name( + const string& blob_name) { + shared_ptr > blob_ptr; + if (has_blob(blob_name)) { + blob_ptr = blobs_[blob_names_index_[blob_name]]; + } else { + blob_ptr.reset((Blob*)(NULL)); + LOG(WARNING) << "Unknown blob name " << blob_name; + } + return blob_ptr; +} + +template +bool Net::has_layer(const string& layer_name) { + return layer_names_index_.find(layer_name) != layer_names_index_.end(); +} + +template +const shared_ptr > Net::layer_by_name( + const string& layer_name) { + shared_ptr > layer_ptr; + if (has_layer(layer_name)) { + layer_ptr = layers_[layer_names_index_[layer_name]]; + } else { + layer_ptr.reset((Layer*)(NULL)); + LOG(WARNING) << "Unknown layer name " << layer_name; + } + return layer_ptr; +} + INSTANTIATE_CLASS(Net); } // namespace caffe diff --git a/src/caffe/proto/caffe.proto b/src/caffe/proto/caffe.proto index 5a73a4496e0..ab3c2fecc5c 100644 --- a/src/caffe/proto/caffe.proto +++ b/src/caffe/proto/caffe.proto @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. package caffe; @@ -7,8 +7,8 @@ message BlobProto { optional int32 channels = 2 [default = 0]; optional int32 height = 3 [default = 0]; optional int32 width = 4 [default = 0]; - repeated float data = 5 [packed=true]; - repeated float diff = 6 [packed=true]; + repeated float data = 5 [packed = true]; + repeated float diff = 6 [packed = true]; } // The BlobProtoVector is simply a way to pass multiple blobproto instances @@ -34,11 +34,330 @@ message FillerParameter { optional float value = 2 [default = 0]; // the value in constant filler optional float min = 3 [default = 0]; // the min value in uniform filler optional float max = 4 [default = 1]; // the max value in uniform filler - optional float mean = 5 [default = 0]; // the mean value in gaussian filler - optional float std = 6 [default = 1]; // the std value in gaussian filler + optional float mean = 5 [default = 0]; // the mean value in Gaussian filler + optional float std = 6 [default = 1]; // the std value in Gaussian filler + // The expected number of non-zero input weights for a given output in + // Gaussian filler -- the default -1 means don't perform sparsification. + optional int32 sparse = 7 [default = -1]; } +message NetParameter { + optional string name = 1; // consider giving the network a name + repeated LayerParameter layers = 2; // a bunch of layers. + // The input blobs to the network. + repeated string input = 3; + // The dim of the input blobs. For each input blob there should be four + // values specifying the num, channels, height and width of the input blob. + // Thus, there should be a total of (4 * #input) numbers. + repeated int32 input_dim = 4; + // Whether the network will force every layer to carry out backward operation. + // If set False, then whether to carry out backward is determined + // automatically according to the net structure and learning rates. + optional bool force_backward = 5 [default = false]; +} + +message SolverParameter { + optional string train_net = 1; // The proto file for the training net. + optional string test_net = 2; // The proto file for the testing net. + // The number of iterations for each testing phase. + optional int32 test_iter = 3 [default = 0]; + // The number of iterations between two testing phases. + optional int32 test_interval = 4 [default = 0]; + optional bool test_compute_loss = 19 [default = false]; + optional float base_lr = 5; // The base learning rate + // the number of iterations between displaying info. If display = 0, no info + // will be displayed. + optional int32 display = 6; + optional int32 max_iter = 7; // the maximum number of iterations + optional string lr_policy = 8; // The learning rate decay policy. + optional float gamma = 9; // The parameter to compute the learning rate. + optional float power = 10; // The parameter to compute the learning rate. + optional float momentum = 11; // The momentum value. + optional float weight_decay = 12; // The weight decay. + optional int32 stepsize = 13; // the stepsize for learning rate policy "step" + optional int32 snapshot = 14 [default = 0]; // The snapshot interval + optional string snapshot_prefix = 15; // The prefix for the snapshot. + // whether to snapshot diff in the results or not. Snapshotting diff will help + // debugging but the final protocol buffer size will be much larger. + optional bool snapshot_diff = 16 [default = false]; + // the mode solver will use: 0 for CPU and 1 for GPU. Use GPU in default. + enum SolverMode { + CPU = 0; + GPU = 1; + } + optional SolverMode solver_mode = 17 [default = GPU]; + // the device_id will that be used in GPU mode. Use device_id = 0 in default. + optional int32 device_id = 18 [default = 0]; + // If non-negative, the seed with which the Solver will initialize the Caffe + // random number generator -- useful for reproducible results. Otherwise, + // (and by default) initialize using a seed derived from the system clock. + optional int64 random_seed = 20 [default = -1]; +} + +// A message that stores the solver snapshots +message SolverState { + optional int32 iter = 1; // The current iteration + optional string learned_net = 2; // The file that stores the learned net. + repeated BlobProto history = 3; // The history for sgd solvers +} + +// Update the next available ID when you add a new LayerParameter field. +// +// LayerParameter next available ID: 23 (last added: memory_data_param) message LayerParameter { + repeated string bottom = 2; // the name of the bottom blobs + repeated string top = 3; // the name of the top blobs + optional string name = 4; // the layer name + + // Add new LayerTypes to the enum below in lexicographical order (other than + // starting with NONE), starting with the next available ID in the comment + // line above the enum. Update the next available ID when you add a new + // LayerType. + // + // LayerType next available ID: 30 (last added: MEMORY_DATA) + enum LayerType { + // "NONE" layer type is 0th enum element so that we don't cause confusion + // by defaulting to an existent LayerType (instead, should usually error if + // the type is unspecified). + NONE = 0; + ACCURACY = 1; + BNLL = 2; + CONCAT = 3; + CONVOLUTION = 4; + DATA = 5; + DROPOUT = 6; + EUCLIDEAN_LOSS = 7; + ELTWISE_PRODUCT = 25; + FLATTEN = 8; + HDF5_DATA = 9; + HDF5_OUTPUT = 10; + HINGE_LOSS = 28; + IM2COL = 11; + IMAGE_DATA = 12; + INFOGAIN_LOSS = 13; + INNER_PRODUCT = 14; + LRN = 15; + MEMORY_DATA = 29; + MULTINOMIAL_LOGISTIC_LOSS = 16; + POOLING = 17; + POWER = 26; + RELU = 18; + SIGMOID = 19; + SIGMOID_CROSS_ENTROPY_LOSS = 27; + SOFTMAX = 20; + SOFTMAX_LOSS = 21; + SPLIT = 22; + TANH = 23; + WINDOW_DATA = 24; + } + optional LayerType type = 5; // the layer type from the enum above + + // The blobs containing the numeric parameters of the layer + repeated BlobProto blobs = 6; + // The ratio that is multiplied on the global learning rate. If you want to + // set the learning ratio for one blob, you need to set it for all blobs. + repeated float blobs_lr = 7; + // The weight decay that is multiplied on the global weight decay. + repeated float weight_decay = 8; + + // Parameters for particular layer types. + optional ConcatParameter concat_param = 9; + optional ConvolutionParameter convolution_param = 10; + optional DataParameter data_param = 11; + optional DropoutParameter dropout_param = 12; + optional HDF5DataParameter hdf5_data_param = 13; + optional HDF5OutputParameter hdf5_output_param = 14; + optional ImageDataParameter image_data_param = 15; + optional InfogainLossParameter infogain_loss_param = 16; + optional InnerProductParameter inner_product_param = 17; + optional LRNParameter lrn_param = 18; + optional MemoryDataParameter memory_data_param = 22; + optional PoolingParameter pooling_param = 19; + optional PowerParameter power_param = 21; + optional WindowDataParameter window_data_param = 20; + + // DEPRECATED: The layer parameters specified as a V0LayerParameter. + // This should never be used by any code except to upgrade to the new + // LayerParameter specification. + optional V0LayerParameter layer = 1; +} + +// Message that stores parameters used by ConcatLayer +message ConcatParameter { + // Concat Layer needs to specify the dimension along the concat will happen, + // the other dimensions must be the same for all the bottom blobs + // By default it will concatenate blobs along channels dimension + optional uint32 concat_dim = 1 [default = 1]; +} + +// Message that stores parameters used by ConvolutionLayer +message ConvolutionParameter { + optional uint32 num_output = 1; // The number of outputs for the layer + optional bool bias_term = 2 [default = true]; // whether to have bias terms + optional uint32 pad = 3 [default = 0]; // The padding size + optional uint32 kernel_size = 4; // The kernel size + optional uint32 group = 5 [default = 1]; // The group size for group conv + optional uint32 stride = 6 [default = 1]; // The stride + optional FillerParameter weight_filler = 7; // The filler for the weight + optional FillerParameter bias_filler = 8; // The filler for the bias +} + +// Message that stores parameters used by DataLayer +message DataParameter { + // Specify the data source. + optional string source = 1; + // For data pre-processing, we can do simple scaling and subtracting the + // data mean, if provided. Note that the mean subtraction is always carried + // out before scaling. + optional float scale = 2 [default = 1]; + optional string mean_file = 3; + // Specify the batch size. + optional uint32 batch_size = 4; + // Specify if we would like to randomly crop an image. + optional uint32 crop_size = 5 [default = 0]; + // Specify if we want to randomly mirror data. + optional bool mirror = 6 [default = false]; + // The rand_skip variable is for the data layer to skip a few data points + // to avoid all asynchronous sgd clients to start at the same point. The skip + // point would be set as rand_skip * rand(0,1). Note that rand_skip should not + // be larger than the number of keys in the leveldb. + optional uint32 rand_skip = 7 [default = 0]; +} + +// Message that stores parameters used by DropoutLayer +message DropoutParameter { + optional float dropout_ratio = 1 [default = 0.5]; // dropout ratio +} + +// Message that stores parameters used by HDF5DataLayer +message HDF5DataParameter { + // Specify the data source. + optional string source = 1; + // Specify the batch size. + optional uint32 batch_size = 2; +} + +// Message that stores parameters used by HDF5OutputLayer +message HDF5OutputParameter { + optional string file_name = 1; +} + +// Message that stores parameters used by ImageDataLayer +message ImageDataParameter { + // Specify the data source. + optional string source = 1; + // For data pre-processing, we can do simple scaling and subtracting the + // data mean, if provided. Note that the mean subtraction is always carried + // out before scaling. + optional float scale = 2 [default = 1]; + optional string mean_file = 3; + // Specify the batch size. + optional uint32 batch_size = 4; + // Specify if we would like to randomly crop an image. + optional uint32 crop_size = 5 [default = 0]; + // Specify if we want to randomly mirror data. + optional bool mirror = 6 [default = false]; + // The rand_skip variable is for the data layer to skip a few data points + // to avoid all asynchronous sgd clients to start at the same point. The skip + // point would be set as rand_skip * rand(0,1). Note that rand_skip should not + // be larger than the number of keys in the leveldb. + optional uint32 rand_skip = 7 [default = 0]; + // Whether or not ImageLayer should shuffle the list of files at every epoch. + optional bool shuffle = 8 [default = false]; + // It will also resize images if new_height or new_width are not zero. + optional uint32 new_height = 9 [default = 0]; + optional uint32 new_width = 10 [default = 0]; +} + +// Message that stores parameters InfogainLossLayer +message InfogainLossParameter { + // Specify the infogain matrix source. + optional string source = 1; +} + +// Message that stores parameters used by InnerProductLayer +message InnerProductParameter { + optional uint32 num_output = 1; // The number of outputs for the layer + optional bool bias_term = 2 [default = true]; // whether to have bias terms + optional FillerParameter weight_filler = 3; // The filler for the weight + optional FillerParameter bias_filler = 4; // The filler for the bias +} + +// Message that stores parameters used by LRNLayer +message LRNParameter { + optional uint32 local_size = 1 [default = 5]; + optional float alpha = 2 [default = 1.]; + optional float beta = 3 [default = 0.75]; + enum NormRegion { + ACROSS_CHANNELS = 0; + WITHIN_CHANNEL = 1; + } + optional NormRegion norm_region = 4 [default = ACROSS_CHANNELS]; +} + +// Message that stores parameters used by MemoryDataLayer +message MemoryDataParameter { + optional uint32 batch_size = 1; + optional uint32 channels = 2; + optional uint32 height = 3; + optional uint32 width = 4; +} + +// Message that stores parameters used by PoolingLayer +message PoolingParameter { + enum PoolMethod { + MAX = 0; + AVE = 1; + STOCHASTIC = 2; + } + optional PoolMethod pool = 1 [default = MAX]; // The pooling method + optional uint32 kernel_size = 2; // The kernel size + optional uint32 stride = 3 [default = 1]; // The stride + // The padding size -- currently implemented only for average pooling. + optional uint32 pad = 4 [default = 0]; +} + +// Message that stores parameters used by PowerLayer +message PowerParameter { + // PowerLayer computes outputs y = (shift + scale * x) ^ power. + optional float power = 1 [default = 1.0]; + optional float scale = 2 [default = 1.0]; + optional float shift = 3 [default = 0.0]; +} + +// Message that stores parameters used by WindowDataLayer +message WindowDataParameter { + // Specify the data source. + optional string source = 1; + // For data pre-processing, we can do simple scaling and subtracting the + // data mean, if provided. Note that the mean subtraction is always carried + // out before scaling. + optional float scale = 2 [default = 1]; + optional string mean_file = 3; + // Specify the batch size. + optional uint32 batch_size = 4; + // Specify if we would like to randomly crop an image. + optional uint32 crop_size = 5 [default = 0]; + // Specify if we want to randomly mirror data. + optional bool mirror = 6 [default = false]; + // Foreground (object) overlap threshold + optional float fg_threshold = 7 [default = 0.5]; + // Background (non-object) overlap threshold + optional float bg_threshold = 8 [default = 0.5]; + // Fraction of batch that should be foreground objects + optional float fg_fraction = 9 [default = 0.25]; + // Amount of contextual padding to add around a window + // (used only by the window_data_layer) + optional uint32 context_pad = 10 [default = 0]; + // Mode for cropping out a detection window + // warp: cropped window is warped to a fixed size and aspect ratio + // square: the tightest square around the window is cropped + optional string crop_mode = 11 [default = "warp"]; +} + +// DEPRECATED: V0LayerParameter is the old way of specifying layer parameters +// in Caffe. We keep this message type around for legacy support. +message V0LayerParameter { optional string name = 1; // the layer name optional string type = 2; // the string to specify the layer type @@ -69,7 +388,7 @@ message LayerParameter { // For data pre-processing, we can do simple scaling and subtracting the // data mean, if provided. Note that the mean subtraction is always carried // out before scaling. - optional float scale = 17 [ default = 1 ]; + optional float scale = 17 [default = 1]; optional string meanfile = 18; // For data layers, specify the batch size. optional uint32 batchsize = 19; @@ -90,7 +409,7 @@ message LayerParameter { // to avoid all asynchronous sgd clients to start at the same point. The skip // point would be set as rand_skip * rand(0,1). Note that rand_skip should not // be larger than the number of keys in the leveldb. - optional uint32 rand_skip = 53 [ default = 0 ]; + optional uint32 rand_skip = 53 [default = 0]; // Fields related to detection (det_*) // foreground (object) overlap threshold @@ -100,7 +419,7 @@ message LayerParameter { // Fraction of batch that should be foreground objects optional float det_fg_fraction = 56 [default = 0.25]; - // optional bool OBSOLETE_can_clobber = 57 [ default = true ]; + // optional bool OBSOLETE_can_clobber = 57 [default = true]; // Amount of contextual padding to add around a window // (used only by the window_data_layer) @@ -125,61 +444,6 @@ message LayerParameter { // the other dimensions must be the same for all the bottom blobs. // By default it will concatenate blobs along the channels dimension. optional uint32 concat_dim = 65 [default = 1]; -} - -message LayerConnection { - optional LayerParameter layer = 1; // the layer parameter - repeated string bottom = 2; // the name of the bottom blobs - repeated string top = 3; // the name of the top blobs -} - -message NetParameter { - optional string name = 1; // consider giving the network a name - repeated LayerConnection layers = 2; // a bunch of layers. - // The input blobs to the network. - repeated string input = 3; - // The dim of the input blobs. For each input blob there should be four - // values specifying the num, channels, height and width of the input blob. - // Thus, there should be a total of (4 * #input) numbers. - repeated int32 input_dim = 4; - // Whether the network will force every layer to carry out backward operation. - // If set False, then whether to carry out backward is determined - // automatically according to the net structure and learning rates. - optional bool force_backward = 5 [ default = false ]; -} -message SolverParameter { - optional string train_net = 1; // The proto file for the training net. - optional string test_net = 2; // The proto file for the testing net. - // The number of iterations for each testing phase. - optional int32 test_iter = 3 [ default = 0 ]; - // The number of iterations between two testing phases. - optional int32 test_interval = 4 [ default = 0 ]; - optional float base_lr = 5; // The base learning rate - // the number of iterations between displaying info. If display = 0, no info - // will be displayed. - optional int32 display = 6; - optional int32 max_iter = 7; // the maximum number of iterations - optional string lr_policy = 8; // The learning rate decay policy. - optional float gamma = 9; // The parameter to compute the learning rate. - optional float power = 10; // The parameter to compute the learning rate. - optional float momentum = 11; // The momentum value. - optional float weight_decay = 12; // The weight decay. - optional int32 stepsize = 13; // the stepsize for learning rate policy "step" - optional int32 snapshot = 14 [default = 0]; // The snapshot interval - optional string snapshot_prefix = 15; // The prefix for the snapshot. - // whether to snapshot diff in the results or not. Snapshotting diff will help - // debugging but the final protocol buffer size will be much larger. - optional bool snapshot_diff = 16 [ default = false]; - // the mode solver will use: 0 for CPU and 1 for GPU. Use GPU in default. - optional int32 solver_mode = 17 [default = 1]; - // the device_id will that be used in GPU mode. Use device_id=0 in default. - optional int32 device_id = 18 [default = 0]; -} - -// A message that stores the solver snapshots -message SolverState { - optional int32 iter = 1; // The current iteration - optional string learned_net = 2; // The file that stores the learned net. - repeated BlobProto history = 3; // The history for sgd solvers + optional HDF5OutputParameter hdf5_output_param = 1001; } diff --git a/src/caffe/proto/caffe_pretty_print.proto b/src/caffe/proto/caffe_pretty_print.proto new file mode 100644 index 00000000000..cfdce82c79f --- /dev/null +++ b/src/caffe/proto/caffe_pretty_print.proto @@ -0,0 +1,18 @@ +// Copyright 2014 BVLC and contributors. + +package caffe; + +import "caffe/proto/caffe.proto"; + +// A near-duplicate of NetParameter with fields re-numbered to beautify +// automatic prototext dumps. The main practical purpose is to print inputs +// before layers, because having inputs at the end looks weird. +// NetParameterPrettyPrint should never be used in code except for conversion +// FROM NetParameter and subsequent dumping to proto text file. +message NetParameterPrettyPrint { + optional string name = 1; + optional bool force_backward = 2 [default = false]; + repeated string input = 3; + repeated int32 input_dim = 4; + repeated LayerParameter layers = 5; +} diff --git a/src/caffe/solver.cpp b/src/caffe/solver.cpp index eb024856841..4932968d0b6 100644 --- a/src/caffe/solver.cpp +++ b/src/caffe/solver.cpp @@ -1,4 +1,4 @@ -// Copyright Yangqing Jia 2013 +// Copyright 2014 BVLC and contributors. #include @@ -19,17 +19,30 @@ namespace caffe { template Solver::Solver(const SolverParameter& param) - : param_(param), net_(), test_net_() { + : net_(), test_net_() { + Init(param); +} + +template +Solver::Solver(const string& param_file) + : net_(), test_net_() { + SolverParameter param; + ReadProtoFromTextFile(param_file, ¶m); + Init(param); +} + +template +void Solver::Init(const SolverParameter& param) { + param_ = param; + if (param_.random_seed() >= 0) { + Caffe::set_random_seed(param_.random_seed()); + } // Scaffolding code - NetParameter train_net_param; - ReadProtoFromTextFile(param_.train_net(), &train_net_param); LOG(INFO) << "Creating training net."; - net_.reset(new Net(train_net_param)); + net_.reset(new Net(param_.train_net())); if (param_.has_test_net()) { LOG(INFO) << "Creating testing net."; - NetParameter test_net_param; - ReadProtoFromTextFile(param_.test_net(), &test_net_param); - test_net_.reset(new Net(test_net_param)); + test_net_.reset(new Net(param_.test_net())); CHECK_GT(param_.test_iter(), 0); CHECK_GT(param_.test_interval(), 0); } @@ -40,7 +53,8 @@ Solver::Solver(const SolverParameter& param) template void Solver::Solve(const char* resume_file) { Caffe::set_mode(Caffe::Brew(param_.solver_mode())); - if (param_.solver_mode() && param_.has_device_id()) { + if (param_.solver_mode() == SolverParameter_SolverMode_GPU && + param_.has_device_id()) { Caffe::SetDevice(param_.device_id()); } Caffe::set_phase(Caffe::TRAIN); @@ -53,6 +67,14 @@ void Solver::Solve(const char* resume_file) { Restore(resume_file); } + // Run a test pass before doing any training to avoid waiting a potentially + // very long time (param_.test_interval() training iterations) to report that + // there's not enough memory to run the test net and crash, etc.; and to gauge + // the effect of the first training iterations. + if (param_.test_interval()) { + Test(); + } + // For a network that is trained by the solver, no bottom or top vecs // should be given, and we will just provide dummy vecs. vector*> bottom_vec; @@ -65,10 +87,7 @@ void Solver::Solve(const char* resume_file) { LOG(INFO) << "Iteration " << iter_ << ", loss = " << loss; } if (param_.test_interval() && iter_ % param_.test_interval() == 0) { - // We need to set phase to test before running. - Caffe::set_phase(Caffe::TEST); Test(); - Caffe::set_phase(Caffe::TRAIN); } // Check if we need to do snapshot if (param_.snapshot() && iter_ % param_.snapshot() == 0) { @@ -85,14 +104,19 @@ void Solver::Solve(const char* resume_file) { template void Solver::Test() { LOG(INFO) << "Iteration " << iter_ << ", Testing net"; - NetParameter net_param; - net_->ToProto(&net_param); - CHECK_NOTNULL(test_net_.get())->CopyTrainedLayersFrom(net_param); + // We need to set phase to test before running. + Caffe::set_phase(Caffe::TEST); + CHECK_NOTNULL(test_net_.get())->ShareTrainedLayersWith(net_.get()); vector test_score; vector*> bottom_vec; + Dtype loss = 0; for (int i = 0; i < param_.test_iter(); ++i) { + Dtype iter_loss; const vector*>& result = - test_net_->Forward(bottom_vec); + test_net_->Forward(bottom_vec, &iter_loss); + if (param_.test_compute_loss()) { + loss += iter_loss; + } if (i == 0) { for (int j = 0; j < result.size(); ++j) { const Dtype* result_vec = result[j]->cpu_data(); @@ -110,10 +134,15 @@ void Solver::Test() { } } } + if (param_.test_compute_loss()) { + loss /= param_.test_iter(); + LOG(INFO) << "Test loss: " << loss; + } for (int i = 0; i < test_score.size(); ++i) { LOG(INFO) << "Test score #" << i << ": " << test_score[i] / param_.test_iter(); } + Caffe::set_phase(Caffe::TRAIN); } @@ -215,7 +244,7 @@ void SGDSolver::ComputeUpdateValue() { // Compute the value to history, and then copy them to the blob's diff. Dtype local_rate = rate * net_params_lr[param_id]; Dtype local_decay = weight_decay * net_params_weight_decay[param_id]; - caffe_axpby(net_params[param_id]->count(), local_rate, + caffe_cpu_axpby(net_params[param_id]->count(), local_rate, net_params[param_id]->cpu_diff(), momentum, history_[param_id]->mutable_cpu_data()); if (local_decay) { diff --git a/src/caffe/syncedmem.cpp b/src/caffe/syncedmem.cpp index 8f6ecf62a08..fec37d6e9ec 100644 --- a/src/caffe/syncedmem.cpp +++ b/src/caffe/syncedmem.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include @@ -10,7 +10,7 @@ namespace caffe { SyncedMemory::~SyncedMemory() { - if (cpu_ptr_) { + if (cpu_ptr_ && own_cpu_data_) { CaffeFreeHost(cpu_ptr_); } @@ -25,10 +25,12 @@ inline void SyncedMemory::to_cpu() { CaffeMallocHost(&cpu_ptr_, size_); memset(cpu_ptr_, 0, size_); head_ = HEAD_AT_CPU; + own_cpu_data_ = true; break; case HEAD_AT_GPU: if (cpu_ptr_ == NULL) { CaffeMallocHost(&cpu_ptr_, size_); + own_cpu_data_ = true; } CUDA_CHECK(cudaMemcpy(cpu_ptr_, gpu_ptr_, size_, cudaMemcpyDeviceToHost)); head_ = SYNCED; @@ -64,6 +66,16 @@ const void* SyncedMemory::cpu_data() { return (const void*)cpu_ptr_; } +void SyncedMemory::set_cpu_data(void* data) { + CHECK(data); + if (own_cpu_data_) { + CaffeFreeHost(cpu_ptr_); + } + cpu_ptr_ = data; + head_ = HEAD_AT_CPU; + own_cpu_data_ = false; +} + const void* SyncedMemory::gpu_data() { to_gpu(); return (const void*)gpu_ptr_; diff --git a/src/caffe/test/test_benchmark.cpp b/src/caffe/test/test_benchmark.cpp index 8614f4823b1..40eee9c80f9 100644 --- a/src/caffe/test/test_benchmark.cpp +++ b/src/caffe/test/test_benchmark.cpp @@ -1,4 +1,4 @@ -// Copyright 2014 kloud@github +// Copyright 2014 BVLC and contributors. #include // for usleep #include diff --git a/src/caffe/test/test_blob.cpp b/src/caffe/test/test_blob.cpp index 7ce1a38480b..5d38e54ff75 100644 --- a/src/caffe/test/test_blob.cpp +++ b/src/caffe/test/test_blob.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include diff --git a/src/caffe/test/test_caffe_main.cpp b/src/caffe/test/test_caffe_main.cpp index 4674bb4e625..ecc117e3b36 100644 --- a/src/caffe/test/test_caffe_main.cpp +++ b/src/caffe/test/test_caffe_main.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. // The main caffe test code. Your test cpp code should include this hpp // to allow a main function to be compiled into the binary. diff --git a/src/caffe/test/test_caffe_main.hpp b/src/caffe/test/test_caffe_main.hpp index 68374ae6a9a..df64cbb41cc 100644 --- a/src/caffe/test/test_caffe_main.hpp +++ b/src/caffe/test/test_caffe_main.hpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. // The main caffe test code. Your test cpp code should include this hpp // to allow a main function to be compiled into the binary. diff --git a/src/caffe/test/test_common.cpp b/src/caffe/test/test_common.cpp index 275c6e1bf73..13c2d9514f7 100644 --- a/src/caffe/test/test_common.cpp +++ b/src/caffe/test/test_common.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include @@ -6,7 +6,7 @@ #include "gtest/gtest.h" #include "caffe/common.hpp" #include "caffe/syncedmem.hpp" - +#include "caffe/util/math_functions.hpp" #include "caffe/test/test_caffe_main.hpp" namespace caffe { @@ -19,10 +19,6 @@ TEST_F(CommonTest, TestCublasHandler) { EXPECT_TRUE(Caffe::cublas_handle()); } -TEST_F(CommonTest, TestVslStream) { - EXPECT_TRUE(Caffe::vsl_stream()); -} - TEST_F(CommonTest, TestBrewMode) { Caffe::set_mode(Caffe::CPU); EXPECT_EQ(Caffe::mode(), Caffe::CPU); @@ -31,6 +27,7 @@ TEST_F(CommonTest, TestBrewMode) { } TEST_F(CommonTest, TestPhase) { + Caffe::set_phase(Caffe::TRAIN); EXPECT_EQ(Caffe::phase(), Caffe::TRAIN); Caffe::set_phase(Caffe::TEST); EXPECT_EQ(Caffe::phase(), Caffe::TEST); @@ -40,18 +37,17 @@ TEST_F(CommonTest, TestRandSeedCPU) { SyncedMemory data_a(10 * sizeof(int)); SyncedMemory data_b(10 * sizeof(int)); Caffe::set_random_seed(1701); - viRngBernoulli(VSL_RNG_METHOD_BERNOULLI_ICDF, Caffe::vsl_stream(), - 10, reinterpret_cast(data_a.mutable_cpu_data()), 0.5); + caffe_rng_bernoulli(10, 0.5, static_cast(data_a.mutable_cpu_data())); + Caffe::set_random_seed(1701); - viRngBernoulli(VSL_RNG_METHOD_BERNOULLI_ICDF, Caffe::vsl_stream(), - 10, reinterpret_cast(data_b.mutable_cpu_data()), 0.5); + caffe_rng_bernoulli(10, 0.5, static_cast(data_b.mutable_cpu_data())); + for (int i = 0; i < 10; ++i) { - EXPECT_EQ(((const int*)(data_a.cpu_data()))[i], - ((const int*)(data_b.cpu_data()))[i]); + EXPECT_EQ(static_cast(data_a.cpu_data())[i], + static_cast(data_b.cpu_data())[i]); } } - TEST_F(CommonTest, TestRandSeedGPU) { SyncedMemory data_a(10 * sizeof(unsigned int)); SyncedMemory data_b(10 * sizeof(unsigned int)); @@ -67,5 +63,4 @@ TEST_F(CommonTest, TestRandSeedGPU) { } } - } // namespace caffe diff --git a/src/caffe/test/test_concat_layer.cpp b/src/caffe/test/test_concat_layer.cpp index 3515ef96592..72e3c902cf1 100644 --- a/src/caffe/test/test_concat_layer.cpp +++ b/src/caffe/test/test_concat_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2014 Sergio Guadarrama +// Copyright 2014 BVLC and contributors. #include #include @@ -60,7 +60,7 @@ TYPED_TEST_CASE(ConcatLayerTest, Dtypes); TYPED_TEST(ConcatLayerTest, TestSetupNum) { LayerParameter layer_param; - layer_param.set_concat_dim(0); + layer_param.mutable_concat_param()->set_concat_dim(0); ConcatLayer layer(layer_param); layer.SetUp(this->blob_bottom_vec_1, &(this->blob_top_vec_)); EXPECT_EQ(this->blob_top_->num(), diff --git a/src/caffe/test/test_convolution_layer.cpp b/src/caffe/test/test_convolution_layer.cpp index e1a36183b49..b08486e10a3 100644 --- a/src/caffe/test/test_convolution_layer.cpp +++ b/src/caffe/test/test_convolution_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -24,7 +24,7 @@ class ConvolutionLayerTest : public ::testing::Test { : blob_bottom_(new Blob()), blob_top_(new Blob()) {} virtual void SetUp() { - blob_bottom_->Reshape(2, 3, 6, 5); + blob_bottom_->Reshape(2, 3, 6, 4); // fill the values FillerParameter filler_param; filler_param.set_value(1.); @@ -46,41 +46,45 @@ TYPED_TEST_CASE(ConvolutionLayerTest, Dtypes); TYPED_TEST(ConvolutionLayerTest, TestSetup) { LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); - layer_param.set_num_output(4); + ConvolutionParameter* convolution_param = + layer_param.mutable_convolution_param(); + convolution_param->set_kernel_size(3); + convolution_param->set_stride(2); + convolution_param->set_num_output(4); shared_ptr > layer( new ConvolutionLayer(layer_param)); layer->SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); EXPECT_EQ(this->blob_top_->num(), 2); EXPECT_EQ(this->blob_top_->channels(), 4); EXPECT_EQ(this->blob_top_->height(), 2); - EXPECT_EQ(this->blob_top_->width(), 2); + EXPECT_EQ(this->blob_top_->width(), 1); // setting group should not change the shape - layer_param.set_num_output(3); - layer_param.set_group(3); + convolution_param->set_num_output(3); + convolution_param->set_group(3); layer.reset(new ConvolutionLayer(layer_param)); layer->SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); EXPECT_EQ(this->blob_top_->num(), 2); EXPECT_EQ(this->blob_top_->channels(), 3); EXPECT_EQ(this->blob_top_->height(), 2); - EXPECT_EQ(this->blob_top_->width(), 2); + EXPECT_EQ(this->blob_top_->width(), 1); } -TYPED_TEST(ConvolutionLayerTest, TestSimpleConvolution) { +TYPED_TEST(ConvolutionLayerTest, TestCPUSimpleConvolution) { // We will simply see if the convolution layer carries out averaging well. FillerParameter filler_param; filler_param.set_value(1.); ConstantFiller filler(filler_param); filler.Fill(this->blob_bottom_); LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); - layer_param.set_num_output(4); - layer_param.mutable_weight_filler()->set_type("constant"); - layer_param.mutable_weight_filler()->set_value(1); - layer_param.mutable_bias_filler()->set_type("constant"); - layer_param.mutable_bias_filler()->set_value(0.1); + ConvolutionParameter* convolution_param = + layer_param.mutable_convolution_param(); + convolution_param->set_kernel_size(3); + convolution_param->set_stride(2); + convolution_param->set_num_output(4); + convolution_param->mutable_weight_filler()->set_type("constant"); + convolution_param->mutable_weight_filler()->set_value(1); + convolution_param->mutable_bias_filler()->set_type("constant"); + convolution_param->mutable_bias_filler()->set_value(0.1); shared_ptr > layer( new ConvolutionLayer(layer_param)); layer->SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); @@ -89,21 +93,39 @@ TYPED_TEST(ConvolutionLayerTest, TestSimpleConvolution) { // After the convolution, the output should all have output values 27.1 const TypeParam* top_data = this->blob_top_->cpu_data(); for (int i = 0; i < this->blob_top_->count(); ++i) { - EXPECT_GE(top_data[i], 27.1 - 1e-4); - EXPECT_LE(top_data[i], 27.1 + 1e-4); + EXPECT_NEAR(top_data[i], 27.1, 1e-4); } - // Test GPU +} + +TYPED_TEST(ConvolutionLayerTest, TestGPUSimpleConvolution) { + // We will simply see if the convolution layer carries out averaging well. + FillerParameter filler_param; + filler_param.set_value(1.); + ConstantFiller filler(filler_param); + filler.Fill(this->blob_bottom_); + LayerParameter layer_param; + ConvolutionParameter* convolution_param = + layer_param.mutable_convolution_param(); + convolution_param->set_kernel_size(3); + convolution_param->set_stride(2); + convolution_param->set_num_output(4); + convolution_param->mutable_weight_filler()->set_type("constant"); + convolution_param->mutable_weight_filler()->set_value(1); + convolution_param->mutable_bias_filler()->set_type("constant"); + convolution_param->mutable_bias_filler()->set_value(0.1); + shared_ptr > layer( + new ConvolutionLayer(layer_param)); + layer->SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); Caffe::set_mode(Caffe::GPU); layer->Forward(this->blob_bottom_vec_, &(this->blob_top_vec_)); // After the convolution, the output should all have output values 27.1 - top_data = this->blob_top_->cpu_data(); + const TypeParam* top_data = this->blob_top_->cpu_data(); for (int i = 0; i < this->blob_top_->count(); ++i) { - EXPECT_GE(top_data[i], 27.1 - 1e-4); - EXPECT_LE(top_data[i], 27.1 + 1e-4); + EXPECT_NEAR(top_data[i], 27.1, 1e-4); } } -TYPED_TEST(ConvolutionLayerTest, TestSimpleConvolutionGroup) { +TYPED_TEST(ConvolutionLayerTest, TestCPUSimpleConvolutionGroup) { // We will simply see if the convolution layer carries out averaging well. FillerParameter filler_param; filler_param.set_value(1.); @@ -120,14 +142,16 @@ TYPED_TEST(ConvolutionLayerTest, TestSimpleConvolutionGroup) { } } LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); - layer_param.set_num_output(3); - layer_param.set_group(3); - layer_param.mutable_weight_filler()->set_type("constant"); - layer_param.mutable_weight_filler()->set_value(1); - layer_param.mutable_bias_filler()->set_type("constant"); - layer_param.mutable_bias_filler()->set_value(0.1); + ConvolutionParameter* convolution_param = + layer_param.mutable_convolution_param(); + convolution_param->set_kernel_size(3); + convolution_param->set_stride(2); + convolution_param->set_num_output(3); + convolution_param->set_group(3); + convolution_param->mutable_weight_filler()->set_type("constant"); + convolution_param->mutable_weight_filler()->set_value(1); + convolution_param->mutable_bias_filler()->set_type("constant"); + convolution_param->mutable_bias_filler()->set_value(0.1); shared_ptr > layer( new ConvolutionLayer(layer_param)); layer->SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); @@ -140,24 +164,54 @@ TYPED_TEST(ConvolutionLayerTest, TestSimpleConvolutionGroup) { for (int h = 0; h < this->blob_top_->height(); ++h) { for (int w = 0; w < this->blob_top_->width(); ++w) { TypeParam data = top_data[this->blob_top_->offset(n, c, h, w)]; - EXPECT_GE(data, c * 9 + 0.1 - 1e-4); - EXPECT_LE(data, c * 9 + 0.1 + 1e-4); + EXPECT_NEAR(data, c * 9 + 0.1, 1e-4); } } } } - // Test GPU +} + + +TYPED_TEST(ConvolutionLayerTest, TestGPUSimpleConvolutionGroup) { + // We will simply see if the convolution layer carries out averaging well. + FillerParameter filler_param; + filler_param.set_value(1.); + ConstantFiller filler(filler_param); + filler.Fill(this->blob_bottom_); + TypeParam* bottom_data = this->blob_bottom_->mutable_cpu_data(); + for (int n = 0; n < this->blob_bottom_->num(); ++n) { + for (int c = 0; c < this->blob_bottom_->channels(); ++c) { + for (int h = 0; h < this->blob_bottom_->height(); ++h) { + for (int w = 0; w < this->blob_bottom_->width(); ++w) { + bottom_data[this->blob_bottom_->offset(n, c, h, w)] = c; + } + } + } + } + LayerParameter layer_param; + ConvolutionParameter* convolution_param = + layer_param.mutable_convolution_param(); + convolution_param->set_kernel_size(3); + convolution_param->set_stride(2); + convolution_param->set_num_output(3); + convolution_param->set_group(3); + convolution_param->mutable_weight_filler()->set_type("constant"); + convolution_param->mutable_weight_filler()->set_value(1); + convolution_param->mutable_bias_filler()->set_type("constant"); + convolution_param->mutable_bias_filler()->set_value(0.1); + shared_ptr > layer( + new ConvolutionLayer(layer_param)); + layer->SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); Caffe::set_mode(Caffe::GPU); layer->Forward(this->blob_bottom_vec_, &(this->blob_top_vec_)); // After the convolution, the output should all have output values 9.1 - top_data = this->blob_top_->cpu_data(); + const TypeParam* top_data = this->blob_top_->cpu_data(); for (int n = 0; n < this->blob_top_->num(); ++n) { for (int c = 0; c < this->blob_top_->channels(); ++c) { for (int h = 0; h < this->blob_top_->height(); ++h) { for (int w = 0; w < this->blob_top_->width(); ++w) { TypeParam data = top_data[this->blob_top_->offset(n, c, h, w)]; - EXPECT_GE(data, c * 9 + 0.1 - 1e-4); - EXPECT_LE(data, c * 9 + 0.1 + 1e-4); + EXPECT_NEAR(data, c * 9 + 0.1, 1e-4); } } } @@ -167,11 +221,13 @@ TYPED_TEST(ConvolutionLayerTest, TestSimpleConvolutionGroup) { TYPED_TEST(ConvolutionLayerTest, TestCPUGradient) { LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); - layer_param.set_num_output(2); - layer_param.mutable_weight_filler()->set_type("gaussian"); - layer_param.mutable_bias_filler()->set_type("gaussian"); + ConvolutionParameter* convolution_param = + layer_param.mutable_convolution_param(); + convolution_param->set_kernel_size(3); + convolution_param->set_stride(2); + convolution_param->set_num_output(2); + convolution_param->mutable_weight_filler()->set_type("gaussian"); + convolution_param->mutable_bias_filler()->set_type("gaussian"); Caffe::set_mode(Caffe::CPU); ConvolutionLayer layer(layer_param); GradientChecker checker(1e-2, 1e-3); @@ -181,12 +237,14 @@ TYPED_TEST(ConvolutionLayerTest, TestCPUGradient) { TYPED_TEST(ConvolutionLayerTest, TestCPUGradientGroup) { LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); - layer_param.set_num_output(3); - layer_param.set_group(3); - layer_param.mutable_weight_filler()->set_type("gaussian"); - layer_param.mutable_bias_filler()->set_type("gaussian"); + ConvolutionParameter* convolution_param = + layer_param.mutable_convolution_param(); + convolution_param->set_kernel_size(3); + convolution_param->set_stride(2); + convolution_param->set_num_output(3); + convolution_param->set_group(3); + convolution_param->mutable_weight_filler()->set_type("gaussian"); + convolution_param->mutable_bias_filler()->set_type("gaussian"); Caffe::set_mode(Caffe::CPU); ConvolutionLayer layer(layer_param); GradientChecker checker(1e-2, 1e-3); @@ -196,11 +254,13 @@ TYPED_TEST(ConvolutionLayerTest, TestCPUGradientGroup) { TYPED_TEST(ConvolutionLayerTest, TestGPUGradient) { LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); - layer_param.set_num_output(2); - layer_param.mutable_weight_filler()->set_type("gaussian"); - layer_param.mutable_bias_filler()->set_type("gaussian"); + ConvolutionParameter* convolution_param = + layer_param.mutable_convolution_param(); + convolution_param->set_kernel_size(3); + convolution_param->set_stride(2); + convolution_param->set_num_output(2); + convolution_param->mutable_weight_filler()->set_type("gaussian"); + convolution_param->mutable_bias_filler()->set_type("gaussian"); Caffe::set_mode(Caffe::GPU); ConvolutionLayer layer(layer_param); GradientChecker checker(1e-2, 1e-3); @@ -210,12 +270,14 @@ TYPED_TEST(ConvolutionLayerTest, TestGPUGradient) { TYPED_TEST(ConvolutionLayerTest, TestGPUGradientGroup) { LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); - layer_param.set_num_output(3); - layer_param.set_group(3); - layer_param.mutable_weight_filler()->set_type("gaussian"); - layer_param.mutable_bias_filler()->set_type("gaussian"); + ConvolutionParameter* convolution_param = + layer_param.mutable_convolution_param(); + convolution_param->set_kernel_size(3); + convolution_param->set_stride(2); + convolution_param->set_num_output(3); + convolution_param->set_group(3); + convolution_param->mutable_weight_filler()->set_type("gaussian"); + convolution_param->mutable_bias_filler()->set_type("gaussian"); Caffe::set_mode(Caffe::GPU); ConvolutionLayer layer(layer_param); GradientChecker checker(1e-2, 1e-3); diff --git a/src/caffe/test/test_data_layer.cpp b/src/caffe/test/test_data_layer.cpp index 35c34395ee7..1eae1a4e068 100644 --- a/src/caffe/test/test_data_layer.cpp +++ b/src/caffe/test/test_data_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -26,18 +26,24 @@ class DataLayerTest : public ::testing::Test { DataLayerTest() : blob_top_data_(new Blob()), blob_top_label_(new Blob()), - filename(NULL) {} + filename_(new string(tmpnam(NULL))), + seed_(1701) {} virtual void SetUp() { blob_top_vec_.push_back(blob_top_data_); blob_top_vec_.push_back(blob_top_label_); - // Create the leveldb - filename = tmpnam(NULL); // get temp name - LOG(INFO) << "Using temporary leveldb " << filename; + } + + // Fill the LevelDB with data: if unique_pixels, each pixel is unique but + // all images are the same; else each image is unique but all pixels within + // an image are the same. + void FillLevelDB(const bool unique_pixels) { + LOG(INFO) << "Using temporary leveldb " << *filename_; leveldb::DB* db; leveldb::Options options; options.error_if_exists = true; options.create_if_missing = true; - leveldb::Status status = leveldb::DB::Open(options, filename, &db); + leveldb::Status status = + leveldb::DB::Open(options, filename_->c_str(), &db); CHECK(status.ok()); for (int i = 0; i < 5; ++i) { Datum datum; @@ -47,7 +53,8 @@ class DataLayerTest : public ::testing::Test { datum.set_width(4); std::string* data = datum.mutable_data(); for (int j = 0; j < 24; ++j) { - data->push_back((uint8_t)i); + int datum = unique_pixels ? j : i; + data->push_back(static_cast(datum)); } stringstream ss; ss << i; @@ -58,20 +65,27 @@ class DataLayerTest : public ::testing::Test { virtual ~DataLayerTest() { delete blob_top_data_; delete blob_top_label_; } - char* filename; + shared_ptr filename_; Blob* const blob_top_data_; Blob* const blob_top_label_; vector*> blob_bottom_vec_; vector*> blob_top_vec_; + int seed_; }; typedef ::testing::Types Dtypes; TYPED_TEST_CASE(DataLayerTest, Dtypes); -TYPED_TEST(DataLayerTest, TestRead) { +TYPED_TEST(DataLayerTest, TestReadCPU) { + Caffe::set_mode(Caffe::CPU); + const bool unique_pixels = false; // all pixels the same; images different + this->FillLevelDB(unique_pixels); + const TypeParam scale = 3; LayerParameter param; - param.set_batchsize(5); - param.set_source(this->filename); + DataParameter* data_param = param.mutable_data_param(); + data_param->set_batch_size(5); + data_param->set_scale(scale); + data_param->set_source(this->filename_->c_str()); DataLayer layer(param); layer.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); EXPECT_EQ(this->blob_top_data_->num(), 5); @@ -83,7 +97,6 @@ TYPED_TEST(DataLayerTest, TestRead) { EXPECT_EQ(this->blob_top_label_->height(), 1); EXPECT_EQ(this->blob_top_label_->width(), 1); - // Go through the data 100 times for (int iter = 0; iter < 100; ++iter) { layer.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); for (int i = 0; i < 5; ++i) { @@ -91,14 +104,34 @@ TYPED_TEST(DataLayerTest, TestRead) { } for (int i = 0; i < 5; ++i) { for (int j = 0; j < 24; ++j) { - EXPECT_EQ(i, this->blob_top_data_->cpu_data()[i * 24 + j]) - << "debug: i " << i << " j " << j; + EXPECT_EQ(scale * i, this->blob_top_data_->cpu_data()[i * 24 + j]) + << "debug: iter " << iter << " i " << i << " j " << j; } } } +} - // Same test, in GPU mode. +TYPED_TEST(DataLayerTest, TestReadGPU) { Caffe::set_mode(Caffe::GPU); + const bool unique_pixels = false; // all pixels the same; images different + this->FillLevelDB(unique_pixels); + const TypeParam scale = 3; + LayerParameter param; + DataParameter* data_param = param.mutable_data_param(); + data_param->set_batch_size(5); + data_param->set_scale(scale); + data_param->set_source(this->filename_->c_str()); + DataLayer layer(param); + layer.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + EXPECT_EQ(this->blob_top_data_->num(), 5); + EXPECT_EQ(this->blob_top_data_->channels(), 2); + EXPECT_EQ(this->blob_top_data_->height(), 3); + EXPECT_EQ(this->blob_top_data_->width(), 4); + EXPECT_EQ(this->blob_top_label_->num(), 5); + EXPECT_EQ(this->blob_top_label_->channels(), 1); + EXPECT_EQ(this->blob_top_label_->height(), 1); + EXPECT_EQ(this->blob_top_label_->width(), 1); + for (int iter = 0; iter < 100; ++iter) { layer.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); for (int i = 0; i < 5; ++i) { @@ -106,8 +139,396 @@ TYPED_TEST(DataLayerTest, TestRead) { } for (int i = 0; i < 5; ++i) { for (int j = 0; j < 24; ++j) { - EXPECT_EQ(i, this->blob_top_data_->cpu_data()[i * 24 + j]) - << "debug: i " << i << " j " << j; + EXPECT_EQ(scale * i, this->blob_top_data_->cpu_data()[i * 24 + j]) + << "debug: iter " << iter << " i " << i << " j " << j; + } + } + } +} + +TYPED_TEST(DataLayerTest, TestReadCropTrainCPU) { + Caffe::set_phase(Caffe::TRAIN); + Caffe::set_mode(Caffe::CPU); + const bool unique_pixels = true; // all images the same; pixels different + this->FillLevelDB(unique_pixels); + const TypeParam scale = 3; + LayerParameter param; + DataParameter* data_param = param.mutable_data_param(); + data_param->set_batch_size(5); + data_param->set_scale(scale); + data_param->set_crop_size(1); + data_param->set_source(this->filename_->c_str()); + DataLayer layer(param); + layer.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + EXPECT_EQ(this->blob_top_data_->num(), 5); + EXPECT_EQ(this->blob_top_data_->channels(), 2); + EXPECT_EQ(this->blob_top_data_->height(), 1); + EXPECT_EQ(this->blob_top_data_->width(), 1); + EXPECT_EQ(this->blob_top_label_->num(), 5); + EXPECT_EQ(this->blob_top_label_->channels(), 1); + EXPECT_EQ(this->blob_top_label_->height(), 1); + EXPECT_EQ(this->blob_top_label_->width(), 1); + + for (int iter = 0; iter < 2; ++iter) { + layer.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int i = 0; i < 5; ++i) { + EXPECT_EQ(i, this->blob_top_label_->cpu_data()[i]); + } + int num_with_center_value = 0; + for (int i = 0; i < 5; ++i) { + for (int j = 0; j < 2; ++j) { + const TypeParam center_value = scale * (j ? 17 : 5); + num_with_center_value += + (center_value == this->blob_top_data_->cpu_data()[i * 2 + j]); + } + } + // Check we did not get the center crop all 10 times (occurs with + // probability 1-1/12^10 in working implementation). + EXPECT_LT(num_with_center_value, 10); + } +} + +TYPED_TEST(DataLayerTest, TestReadCropTrainGPU) { + Caffe::set_phase(Caffe::TRAIN); + Caffe::set_mode(Caffe::GPU); + const bool unique_pixels = true; // all images the same; pixels different + this->FillLevelDB(unique_pixels); + const TypeParam scale = 3; + LayerParameter param; + DataParameter* data_param = param.mutable_data_param(); + data_param->set_batch_size(5); + data_param->set_scale(scale); + data_param->set_crop_size(1); + data_param->set_source(this->filename_->c_str()); + DataLayer layer(param); + layer.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + EXPECT_EQ(this->blob_top_data_->num(), 5); + EXPECT_EQ(this->blob_top_data_->channels(), 2); + EXPECT_EQ(this->blob_top_data_->height(), 1); + EXPECT_EQ(this->blob_top_data_->width(), 1); + EXPECT_EQ(this->blob_top_label_->num(), 5); + EXPECT_EQ(this->blob_top_label_->channels(), 1); + EXPECT_EQ(this->blob_top_label_->height(), 1); + EXPECT_EQ(this->blob_top_label_->width(), 1); + + for (int iter = 0; iter < 2; ++iter) { + layer.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int i = 0; i < 5; ++i) { + EXPECT_EQ(i, this->blob_top_label_->cpu_data()[i]); + } + int num_with_center_value = 0; + for (int i = 0; i < 5; ++i) { + for (int j = 0; j < 2; ++j) { + const TypeParam center_value = scale * (j ? 17 : 5); + num_with_center_value += + (center_value == this->blob_top_data_->cpu_data()[i * 2 + j]); + } + } + // Check we did not get the center crop all 10 times (occurs with + // probability 1-1/12^10 in working implementation). + EXPECT_LT(num_with_center_value, 10); + } +} + +// Test that the sequence of random crops is consistent when using +// Caffe::set_random_seed. +TYPED_TEST(DataLayerTest, TestReadCropTrainSequenceSeededCPU) { + Caffe::set_phase(Caffe::TRAIN); + Caffe::set_mode(Caffe::CPU); + const bool unique_pixels = true; // all images the same; pixels different + this->FillLevelDB(unique_pixels); + LayerParameter param; + DataParameter* data_param = param.mutable_data_param(); + data_param->set_batch_size(5); + data_param->set_crop_size(1); + data_param->set_mirror(true); + data_param->set_source(this->filename_->c_str()); + + // Get crop sequence with Caffe seed 1701. + Caffe::set_random_seed(this->seed_); + vector > crop_sequence; + { + DataLayer layer1(param); + layer1.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int iter = 0; iter < 2; ++iter) { + layer1.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int i = 0; i < 5; ++i) { + EXPECT_EQ(i, this->blob_top_label_->cpu_data()[i]); + } + vector iter_crop_sequence; + for (int i = 0; i < 5; ++i) { + for (int j = 0; j < 2; ++j) { + iter_crop_sequence.push_back( + this->blob_top_data_->cpu_data()[i * 2 + j]); + } + } + crop_sequence.push_back(iter_crop_sequence); + } + } // destroy 1st data layer and unlock the leveldb + + // Get crop sequence after reseeding Caffe with 1701. + // Check that the sequence is the same as the original. + Caffe::set_random_seed(this->seed_); + DataLayer layer2(param); + layer2.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int iter = 0; iter < 2; ++iter) { + layer2.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int i = 0; i < 5; ++i) { + EXPECT_EQ(i, this->blob_top_label_->cpu_data()[i]); + } + for (int i = 0; i < 5; ++i) { + for (int j = 0; j < 2; ++j) { + EXPECT_EQ(crop_sequence[iter][i * 2 + j], + this->blob_top_data_->cpu_data()[i * 2 + j]) + << "debug: iter " << iter << " i " << i << " j " << j; + } + } + } +} + +// Test that the sequence of random crops is consistent when using +// Caffe::set_random_seed. +TYPED_TEST(DataLayerTest, TestReadCropTrainSequenceSeededGPU) { + Caffe::set_phase(Caffe::TRAIN); + Caffe::set_mode(Caffe::GPU); + const bool unique_pixels = true; // all images the same; pixels different + this->FillLevelDB(unique_pixels); + LayerParameter param; + DataParameter* data_param = param.mutable_data_param(); + data_param->set_batch_size(5); + data_param->set_crop_size(1); + data_param->set_mirror(true); + data_param->set_source(this->filename_->c_str()); + + // Get crop sequence with Caffe seed 1701. + Caffe::set_random_seed(this->seed_); + vector > crop_sequence; + { + DataLayer layer1(param); + layer1.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int iter = 0; iter < 2; ++iter) { + layer1.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int i = 0; i < 5; ++i) { + EXPECT_EQ(i, this->blob_top_label_->cpu_data()[i]); + } + vector iter_crop_sequence; + for (int i = 0; i < 5; ++i) { + for (int j = 0; j < 2; ++j) { + iter_crop_sequence.push_back( + this->blob_top_data_->cpu_data()[i * 2 + j]); + } + } + crop_sequence.push_back(iter_crop_sequence); + } + } // destroy 1st data layer and unlock the leveldb + + // Get crop sequence after reseeding Caffe with 1701. + // Check that the sequence is the same as the original. + Caffe::set_random_seed(this->seed_); + DataLayer layer2(param); + layer2.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int iter = 0; iter < 2; ++iter) { + layer2.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int i = 0; i < 5; ++i) { + EXPECT_EQ(i, this->blob_top_label_->cpu_data()[i]); + } + for (int i = 0; i < 5; ++i) { + for (int j = 0; j < 2; ++j) { + EXPECT_EQ(crop_sequence[iter][i * 2 + j], + this->blob_top_data_->cpu_data()[i * 2 + j]) + << "debug: iter " << iter << " i " << i << " j " << j; + } + } + } +} + +// Test that the sequence of random crops differs across iterations when +// Caffe::set_random_seed isn't called (and seeds from srand are ignored). +TYPED_TEST(DataLayerTest, TestReadCropTrainSequenceUnseededCPU) { + Caffe::set_phase(Caffe::TRAIN); + Caffe::set_mode(Caffe::CPU); + const bool unique_pixels = true; // all images the same; pixels different + this->FillLevelDB(unique_pixels); + LayerParameter param; + DataParameter* data_param = param.mutable_data_param(); + data_param->set_batch_size(5); + data_param->set_crop_size(1); + data_param->set_mirror(true); + data_param->set_source(this->filename_->c_str()); + + // Get crop sequence with Caffe seed 1701, srand seed 1701. + Caffe::set_random_seed(this->seed_); + srand(this->seed_); + vector > crop_sequence; + { + DataLayer layer1(param); + layer1.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int iter = 0; iter < 2; ++iter) { + layer1.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int i = 0; i < 5; ++i) { + EXPECT_EQ(i, this->blob_top_label_->cpu_data()[i]); + } + vector iter_crop_sequence; + for (int i = 0; i < 5; ++i) { + for (int j = 0; j < 2; ++j) { + iter_crop_sequence.push_back( + this->blob_top_data_->cpu_data()[i * 2 + j]); + } + } + crop_sequence.push_back(iter_crop_sequence); + } + } // destroy 1st data layer and unlock the leveldb + + // Get crop sequence continuing from previous Caffe RNG state; + // reseed srand with 1701. Check that the sequence differs from the original. + srand(this->seed_); + DataLayer layer2(param); + layer2.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int iter = 0; iter < 2; ++iter) { + layer2.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int i = 0; i < 5; ++i) { + EXPECT_EQ(i, this->blob_top_label_->cpu_data()[i]); + } + int num_sequence_matches = 0; + for (int i = 0; i < 5; ++i) { + for (int j = 0; j < 2; ++j) { + num_sequence_matches += (crop_sequence[iter][i * 2 + j] == + this->blob_top_data_->cpu_data()[i * 2 + j]); + } + } + EXPECT_LT(num_sequence_matches, 10); + } +} + +// Test that the sequence of random crops differs across iterations when +// Caffe::set_random_seed isn't called (and seeds from srand are ignored). +TYPED_TEST(DataLayerTest, TestReadCropTrainSequenceUnseededGPU) { + Caffe::set_phase(Caffe::TRAIN); + Caffe::set_mode(Caffe::GPU); + const bool unique_pixels = true; // all images the same; pixels different + this->FillLevelDB(unique_pixels); + LayerParameter param; + DataParameter* data_param = param.mutable_data_param(); + data_param->set_batch_size(5); + data_param->set_crop_size(1); + data_param->set_mirror(true); + data_param->set_source(this->filename_->c_str()); + + // Get crop sequence with Caffe seed 1701, srand seed 1701. + Caffe::set_random_seed(this->seed_); + srand(this->seed_); + vector > crop_sequence; + { + DataLayer layer1(param); + layer1.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int iter = 0; iter < 2; ++iter) { + layer1.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int i = 0; i < 5; ++i) { + EXPECT_EQ(i, this->blob_top_label_->cpu_data()[i]); + } + vector iter_crop_sequence; + for (int i = 0; i < 5; ++i) { + for (int j = 0; j < 2; ++j) { + iter_crop_sequence.push_back( + this->blob_top_data_->cpu_data()[i * 2 + j]); + } + } + crop_sequence.push_back(iter_crop_sequence); + } + } // destroy 1st data layer and unlock the leveldb + + // Get crop sequence continuing from previous Caffe RNG state; + // reseed srand with 1701. Check that the sequence differs from the original. + srand(this->seed_); + DataLayer layer2(param); + layer2.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int iter = 0; iter < 2; ++iter) { + layer2.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int i = 0; i < 5; ++i) { + EXPECT_EQ(i, this->blob_top_label_->cpu_data()[i]); + } + int num_sequence_matches = 0; + for (int i = 0; i < 5; ++i) { + for (int j = 0; j < 2; ++j) { + num_sequence_matches += (crop_sequence[iter][i * 2 + j] == + this->blob_top_data_->cpu_data()[i * 2 + j]); + } + } + EXPECT_LT(num_sequence_matches, 10); + } +} + +TYPED_TEST(DataLayerTest, TestReadCropTestCPU) { + Caffe::set_phase(Caffe::TEST); + Caffe::set_mode(Caffe::CPU); + const bool unique_pixels = true; // all images the same; pixels different + this->FillLevelDB(unique_pixels); + const TypeParam scale = 3; + LayerParameter param; + DataParameter* data_param = param.mutable_data_param(); + data_param->set_batch_size(5); + data_param->set_scale(scale); + data_param->set_crop_size(1); + data_param->set_source(this->filename_->c_str()); + DataLayer layer(param); + layer.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + EXPECT_EQ(this->blob_top_data_->num(), 5); + EXPECT_EQ(this->blob_top_data_->channels(), 2); + EXPECT_EQ(this->blob_top_data_->height(), 1); + EXPECT_EQ(this->blob_top_data_->width(), 1); + EXPECT_EQ(this->blob_top_label_->num(), 5); + EXPECT_EQ(this->blob_top_label_->channels(), 1); + EXPECT_EQ(this->blob_top_label_->height(), 1); + EXPECT_EQ(this->blob_top_label_->width(), 1); + + for (int iter = 0; iter < 2; ++iter) { + layer.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int i = 0; i < 5; ++i) { + EXPECT_EQ(i, this->blob_top_label_->cpu_data()[i]); + } + for (int i = 0; i < 5; ++i) { + for (int j = 0; j < 2; ++j) { + const TypeParam center_value = scale * (j ? 17 : 5); + EXPECT_EQ(center_value, this->blob_top_data_->cpu_data()[i * 2 + j]) + << "debug: iter " << iter << " i " << i << " j " << j; + } + } + } +} + +TYPED_TEST(DataLayerTest, TestReadCropTestGPU) { + Caffe::set_phase(Caffe::TEST); + Caffe::set_mode(Caffe::GPU); + const bool unique_pixels = true; // all images the same; pixels different + this->FillLevelDB(unique_pixels); + const TypeParam scale = 3; + LayerParameter param; + DataParameter* data_param = param.mutable_data_param(); + data_param->set_batch_size(5); + data_param->set_scale(scale); + data_param->set_crop_size(1); + data_param->set_source(this->filename_->c_str()); + DataLayer layer(param); + layer.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + EXPECT_EQ(this->blob_top_data_->num(), 5); + EXPECT_EQ(this->blob_top_data_->channels(), 2); + EXPECT_EQ(this->blob_top_data_->height(), 1); + EXPECT_EQ(this->blob_top_data_->width(), 1); + EXPECT_EQ(this->blob_top_label_->num(), 5); + EXPECT_EQ(this->blob_top_label_->channels(), 1); + EXPECT_EQ(this->blob_top_label_->height(), 1); + EXPECT_EQ(this->blob_top_label_->width(), 1); + + for (int iter = 0; iter < 2; ++iter) { + layer.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); + for (int i = 0; i < 5; ++i) { + EXPECT_EQ(i, this->blob_top_label_->cpu_data()[i]); + } + for (int i = 0; i < 5; ++i) { + for (int j = 0; j < 2; ++j) { + const TypeParam center_value = scale * (j ? 17 : 5); + EXPECT_EQ(center_value, this->blob_top_data_->cpu_data()[i * 2 + j]) + << "debug: iter " << iter << " i " << i << " j " << j; } } } diff --git a/src/caffe/test/test_eltwise_product_layer.cpp b/src/caffe/test/test_eltwise_product_layer.cpp new file mode 100644 index 00000000000..86d6fdc5334 --- /dev/null +++ b/src/caffe/test/test_eltwise_product_layer.cpp @@ -0,0 +1,118 @@ +// Copyright 2014 BVLC and contributors. + +#include + +#include "cuda_runtime.h" +#include "gtest/gtest.h" +#include "caffe/blob.hpp" +#include "caffe/common.hpp" +#include "caffe/filler.hpp" +#include "caffe/vision_layers.hpp" +#include "caffe/test/test_gradient_check_util.hpp" + +#include "caffe/test/test_caffe_main.hpp" + +namespace caffe { + +extern cudaDeviceProp CAFFE_TEST_CUDA_PROP; + +template +class EltwiseProductLayerTest : public ::testing::Test { + protected: + EltwiseProductLayerTest() + : blob_bottom_a_(new Blob(2, 3, 4, 5)), + blob_bottom_b_(new Blob(2, 3, 4, 5)), + blob_bottom_c_(new Blob(2, 3, 4, 5)), + blob_top_(new Blob()) { + // fill the values + FillerParameter filler_param; + UniformFiller filler(filler_param); + filler.Fill(this->blob_bottom_a_); + filler.Fill(this->blob_bottom_b_); + filler.Fill(this->blob_bottom_c_); + blob_bottom_vec_.push_back(blob_bottom_a_); + blob_bottom_vec_.push_back(blob_bottom_b_); + blob_bottom_vec_.push_back(blob_bottom_c_); + blob_top_vec_.push_back(blob_top_); + } + virtual ~EltwiseProductLayerTest() { + delete blob_bottom_a_; + delete blob_bottom_b_; + delete blob_bottom_c_; + delete blob_top_; + } + Blob* const blob_bottom_a_; + Blob* const blob_bottom_b_; + Blob* const blob_bottom_c_; + Blob* const blob_top_; + vector*> blob_bottom_vec_; + vector*> blob_top_vec_; +}; + +typedef ::testing::Types Dtypes; +TYPED_TEST_CASE(EltwiseProductLayerTest, Dtypes); + +TYPED_TEST(EltwiseProductLayerTest, TestSetUp) { + LayerParameter layer_param; + shared_ptr > layer( + new EltwiseProductLayer(layer_param)); + layer->SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); + EXPECT_EQ(this->blob_top_->num(), 2); + EXPECT_EQ(this->blob_top_->channels(), 3); + EXPECT_EQ(this->blob_top_->height(), 4); + EXPECT_EQ(this->blob_top_->width(), 5); +} + +TYPED_TEST(EltwiseProductLayerTest, TestCPU) { + Caffe::set_mode(Caffe::CPU); + LayerParameter layer_param; + shared_ptr > layer( + new EltwiseProductLayer(layer_param)); + layer->SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); + layer->Forward(this->blob_bottom_vec_, &(this->blob_top_vec_)); + const TypeParam* data = this->blob_top_->cpu_data(); + const int count = this->blob_top_->count(); + const TypeParam* in_data_a = this->blob_bottom_a_->cpu_data(); + const TypeParam* in_data_b = this->blob_bottom_b_->cpu_data(); + const TypeParam* in_data_c = this->blob_bottom_c_->cpu_data(); + for (int i = 0; i < count; ++i) { + EXPECT_EQ(data[i], in_data_a[i] * in_data_b[i] * in_data_c[i]); + } +} + +TYPED_TEST(EltwiseProductLayerTest, TestGPU) { + Caffe::set_mode(Caffe::GPU); + LayerParameter layer_param; + shared_ptr > layer( + new EltwiseProductLayer(layer_param)); + layer->SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); + layer->Forward(this->blob_bottom_vec_, &(this->blob_top_vec_)); + const TypeParam* data = this->blob_top_->cpu_data(); + const int count = this->blob_top_->count(); + const TypeParam* in_data_a = this->blob_bottom_a_->cpu_data(); + const TypeParam* in_data_b = this->blob_bottom_b_->cpu_data(); + const TypeParam* in_data_c = this->blob_bottom_c_->cpu_data(); + for (int i = 0; i < count; ++i) { + EXPECT_EQ(data[i], in_data_a[i] * in_data_b[i] * in_data_c[i]); + } +} + +TYPED_TEST(EltwiseProductLayerTest, TestCPUGradient) { + Caffe::set_mode(Caffe::CPU); + LayerParameter layer_param; + EltwiseProductLayer layer(layer_param); + GradientChecker checker(1e-2, 1e-3); + checker.CheckGradientEltwise(&layer, &(this->blob_bottom_vec_), + &(this->blob_top_vec_)); +} + +TYPED_TEST(EltwiseProductLayerTest, TestGPUGradient) { + Caffe::set_mode(Caffe::GPU); + LayerParameter layer_param; + EltwiseProductLayer layer(layer_param); + GradientChecker checker(1e-2, 1e-2); + checker.CheckGradientEltwise(&layer, &(this->blob_bottom_vec_), + &(this->blob_top_vec_)); +} + +} // namespace caffe diff --git a/src/caffe/test/test_euclidean_loss_layer.cpp b/src/caffe/test/test_euclidean_loss_layer.cpp index d408860c3ab..d5e4107ac5e 100644 --- a/src/caffe/test/test_euclidean_loss_layer.cpp +++ b/src/caffe/test/test_euclidean_loss_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include diff --git a/src/caffe/test/test_filler.cpp b/src/caffe/test/test_filler.cpp index c4388c2752f..e8b556a66b5 100644 --- a/src/caffe/test/test_filler.cpp +++ b/src/caffe/test/test_filler.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include diff --git a/src/caffe/test/test_flatten_layer.cpp b/src/caffe/test/test_flatten_layer.cpp index 41c0453696c..52c567b0295 100644 --- a/src/caffe/test/test_flatten_layer.cpp +++ b/src/caffe/test/test_flatten_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -23,6 +23,7 @@ class FlattenLayerTest : public ::testing::Test { FlattenLayerTest() : blob_bottom_(new Blob(2, 3, 6, 5)), blob_top_(new Blob()) { + Caffe::set_random_seed(1701); // fill the values FillerParameter filler_param; GaussianFiller filler(filler_param); @@ -73,6 +74,8 @@ TYPED_TEST(FlattenLayerTest, TestGPU) { for (int c = 0; c < 3 * 6 * 5; ++c) { EXPECT_EQ(this->blob_top_->data_at(0, c, 0, 0), this->blob_bottom_->data_at(0, c / (6 * 5), (c / 5) % 6, c % 5)); + EXPECT_EQ(this->blob_top_->data_at(1, c, 0, 0), + this->blob_bottom_->data_at(1, c / (6 * 5), (c / 5) % 6, c % 5)); } } @@ -81,7 +84,7 @@ TYPED_TEST(FlattenLayerTest, TestCPUGradient) { Caffe::set_mode(Caffe::CPU); FlattenLayer layer(layer_param); GradientChecker checker(1e-2, 1e-2); - checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + checker.CheckGradientEltwise(&layer, &(this->blob_bottom_vec_), &(this->blob_top_vec_)); } @@ -90,7 +93,7 @@ TYPED_TEST(FlattenLayerTest, TestGPUGradient) { Caffe::set_mode(Caffe::GPU); FlattenLayer layer(layer_param); GradientChecker checker(1e-2, 1e-2); - checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + checker.CheckGradientEltwise(&layer, &(this->blob_bottom_vec_), &(this->blob_top_vec_)); } diff --git a/src/caffe/test/test_gradient_check_util.hpp b/src/caffe/test/test_gradient_check_util.hpp index 895e9965a9a..bcf03973dd3 100644 --- a/src/caffe/test/test_gradient_check_util.hpp +++ b/src/caffe/test/test_gradient_check_util.hpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #ifndef CAFFE_TEST_GRADIENT_CHECK_UTIL_H_ #define CAFFE_TEST_GRADIENT_CHECK_UTIL_H_ @@ -22,6 +22,9 @@ namespace caffe { template class GradientChecker { public: + // kink and kink_range specify an ignored nonsmooth region of the form + // kink - kink_range <= |feature value| <= kink + kink_range, + // which accounts for all nonsmoothness in use by caffe GradientChecker(const Dtype stepsize, const Dtype threshold, const unsigned int seed = 1701, const Dtype kink = 0., const Dtype kink_range = -1) @@ -40,9 +43,15 @@ class GradientChecker { vector*>* bottom, vector*>* top, int check_bottom = -1); + // CheckGradientEltwise can be used to test layers that perform element-wise + // computation only (e.g., neuron layers) -- where (d y_i) / (d x_j) = 0 when + // i != j. + void CheckGradientEltwise(Layer* layer, + vector*>* bottom, vector*>* top); + void CheckGradientSingle(Layer* layer, vector*>* bottom, vector*>* top, int check_bottom, int top_id, - int top_data_id); + int top_data_id, bool element_wise = false); // Checks the gradient of a network. This network should not have any data // layers or loss layers, since the function does not explicitly deal with @@ -62,13 +71,19 @@ class GradientChecker { }; -// Detailed implementations are as follows. - - template void GradientChecker::CheckGradientSingle(Layer* layer, vector*>* bottom, vector*>* top, - int check_bottom, int top_id, int top_data_id) { + int check_bottom, int top_id, int top_data_id, bool element_wise) { + if (element_wise) { + CHECK_EQ(0, layer->blobs().size()); + CHECK_LE(0, top_id); + CHECK_LE(0, top_data_id); + const int top_count = (*top)[top_id]->count(); + for (int blob_id = 0; blob_id < bottom->size(); ++blob_id) { + CHECK_EQ(top_count, (*bottom)[blob_id]->count()); + } + } // First, figure out what blobs we need to check against. vector*> blobs_to_check; for (int i = 0; i < layer->blobs().size(); ++i) { @@ -82,48 +97,72 @@ void GradientChecker::CheckGradientSingle(Layer* layer, CHECK(check_bottom < bottom->size()); blobs_to_check.push_back((*bottom)[check_bottom]); } - // go through the bottom and parameter blobs + // Compute the gradient analytically using Backward + Caffe::set_random_seed(seed_); + // Get any loss from the layer + Dtype computed_objective = layer->Forward(*bottom, top); + // Get additional loss from the objective + computed_objective += GetObjAndGradient(top, top_id, top_data_id); + layer->Backward(*top, true, bottom); + // Store computed gradients for all checked blobs + vector > > + computed_gradient_blobs(blobs_to_check.size()); + for (int blob_id = 0; blob_id < blobs_to_check.size(); ++blob_id) { + Blob* current_blob = blobs_to_check[blob_id]; + computed_gradient_blobs[blob_id].reset(new Blob()); + computed_gradient_blobs[blob_id]->ReshapeLike(*current_blob); + const int count = blobs_to_check[blob_id]->count(); + const Dtype* diff = blobs_to_check[blob_id]->cpu_diff(); + Dtype* computed_gradients = + computed_gradient_blobs[blob_id]->mutable_cpu_data(); + caffe_copy(count, diff, computed_gradients); + } + // Compute derivative of top w.r.t. each bottom and parameter input using + // finite differencing. // LOG(ERROR) << "Checking " << blobs_to_check.size() << " blobs."; - for (int blobid = 0; blobid < blobs_to_check.size(); ++blobid) { - Blob* current_blob = blobs_to_check[blobid]; - // LOG(ERROR) << "Blob " << blobid << ": checking " << current_blob->count() - // << " parameters."; - // go through the values + for (int blob_id = 0; blob_id < blobs_to_check.size(); ++blob_id) { + Blob* current_blob = blobs_to_check[blob_id]; + const Dtype* computed_gradients = + computed_gradient_blobs[blob_id]->cpu_data(); + // LOG(ERROR) << "Blob " << blob_id << ": checking " + // << current_blob->count() << " parameters."; for (int feat_id = 0; feat_id < current_blob->count(); ++feat_id) { - // First, obtain the original data - Caffe::set_random_seed(seed_); - layer->Forward(*bottom, top); - Dtype computed_objective = GetObjAndGradient(top, top_id, top_data_id); - // Get any additional loss from the layer - computed_objective += layer->Backward(*top, true, bottom); - Dtype computed_gradient = current_blob->cpu_diff()[feat_id]; - // compute score by adding stepsize - current_blob->mutable_cpu_data()[feat_id] += stepsize_; - Caffe::set_random_seed(seed_); - layer->Forward(*bottom, top); - Dtype positive_objective = GetObjAndGradient(top, top_id, top_data_id); - positive_objective += layer->Backward(*top, true, bottom); - // compute score by subtracting stepsize - current_blob->mutable_cpu_data()[feat_id] -= stepsize_ * 2; - Caffe::set_random_seed(seed_); - layer->Forward(*bottom, top); - Dtype negative_objective = GetObjAndGradient(top, top_id, top_data_id); - negative_objective += layer->Backward(*top, true, bottom); - // Recover stepsize - current_blob->mutable_cpu_data()[feat_id] += stepsize_; - Dtype estimated_gradient = (positive_objective - negative_objective) / - stepsize_ / 2.; + // For an element-wise layer, we only need to do finite differencing to + // compute the derivative of (*top)[top_id][top_data_id] w.r.t. + // (*bottom)[blob_id][i] only for i == top_data_id. For any other + // i != top_data_id, we know the derivative is 0 by definition, and simply + // check that that's true. + Dtype estimated_gradient = 0; + if (!element_wise || (feat_id == top_data_id)) { + // Do finite differencing. + // Compute loss with stepsize_ added to input. + current_blob->mutable_cpu_data()[feat_id] += stepsize_; + Caffe::set_random_seed(seed_); + Dtype positive_objective = layer->Forward(*bottom, top); + positive_objective += GetObjAndGradient(top, top_id, top_data_id); + // Compute loss with stepsize_ subtracted from input. + current_blob->mutable_cpu_data()[feat_id] -= stepsize_ * 2; + Caffe::set_random_seed(seed_); + Dtype negative_objective = layer->Forward(*bottom, top); + negative_objective += GetObjAndGradient(top, top_id, top_data_id); + // Recover original input value. + current_blob->mutable_cpu_data()[feat_id] += stepsize_; + estimated_gradient = (positive_objective - negative_objective) / + stepsize_ / 2.; + } + Dtype computed_gradient = computed_gradients[feat_id]; Dtype feature = current_blob->cpu_data()[feat_id]; // LOG(ERROR) << "debug: " << current_blob->cpu_data()[feat_id] << " " // << current_blob->cpu_diff()[feat_id]; - if (kink_ - kink_range_ > feature || feature > kink_ + kink_range_) { + if (kink_ - kink_range_ > fabs(feature) + || fabs(feature) > kink_ + kink_range_) { // We check relative accuracy, but for too small values, we threshold // the scale factor by 1. Dtype scale = max( max(fabs(computed_gradient), fabs(estimated_gradient)), 1.); EXPECT_NEAR(computed_gradient, estimated_gradient, threshold_ * scale) << "debug: (top_id, top_data_id, blob_id, feat_id)=" - << top_id << "," << top_data_id << "," << blobid << "," << feat_id; + << top_id << "," << top_data_id << "," << blob_id << "," << feat_id; } // LOG(ERROR) << "Feature: " << current_blob->cpu_data()[feat_id]; // LOG(ERROR) << "computed gradient: " << computed_gradient @@ -136,6 +175,7 @@ template void GradientChecker::CheckGradientExhaustive(Layer* layer, vector*>* bottom, vector*>* top, int check_bottom) { layer->SetUp(*bottom, top); + CHECK_GT(top->size(), 0) << "Exhaustive mode requires at least one top blob."; // LOG(ERROR) << "Exhaustive Mode."; for (int i = 0; i < top->size(); ++i) { // LOG(ERROR) << "Exhaustive: blob " << i << " size " << top[i]->count(); @@ -146,6 +186,20 @@ void GradientChecker::CheckGradientExhaustive(Layer* layer, } } +template +void GradientChecker::CheckGradientEltwise(Layer* layer, + vector*>* bottom, vector*>* top) { + layer->SetUp(*bottom, top); + CHECK_GT(top->size(), 0) << "Eltwise mode requires at least one top blob."; + const int check_bottom = -1; + const bool element_wise = true; + for (int i = 0; i < top->size(); ++i) { + for (int j = 0; j < (*top)[i]->count(); ++j) { + CheckGradientSingle(layer, bottom, top, check_bottom, i, j, element_wise); + } + } +} + template void GradientChecker::CheckGradientNet( const Net& net, const vector*>& input) { diff --git a/src/caffe/test/test_hdf5_output_layer.cpp b/src/caffe/test/test_hdf5_output_layer.cpp new file mode 100644 index 00000000000..9f793f2fce6 --- /dev/null +++ b/src/caffe/test/test_hdf5_output_layer.cpp @@ -0,0 +1,125 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include +#include + +#include "gtest/gtest.h" +#include "caffe/blob.hpp" +#include "caffe/common.hpp" +#include "caffe/util/io.hpp" +#include "caffe/vision_layers.hpp" +#include "caffe/proto/caffe.pb.h" +#include "caffe/test/test_caffe_main.hpp" + +using std::string; +using std::vector; + +namespace caffe { + +extern cudaDeviceProp CAFFE_TEST_CUDA_PROP; + +template +class HDF5OutputLayerTest : public ::testing::Test { + protected: + HDF5OutputLayerTest() + : output_file_name_(tmpnam(NULL)), + input_file_name_("src/caffe/test/test_data/sample_data.h5"), + blob_data_(new Blob()), + blob_label_(new Blob()), + num_(5), + channels_(8), + height_(5), + width_(5) {} + + virtual ~HDF5OutputLayerTest() { + delete blob_data_; + delete blob_label_; + } + + void CheckBlobEqual(const Blob& b1, const Blob& b2); + + string output_file_name_; + string input_file_name_; + Blob* const blob_data_; + Blob* const blob_label_; + vector*> blob_bottom_vec_; + vector*> blob_top_vec_; + int num_; + int channels_; + int height_; + int width_; +}; + +template +void HDF5OutputLayerTest::CheckBlobEqual( + const Blob& b1, const Blob& b2) { + EXPECT_EQ(b1.num(), b2.num()); + EXPECT_EQ(b1.channels(), b2.channels()); + EXPECT_EQ(b1.height(), b2.height()); + EXPECT_EQ(b1.width(), b2.width()); + for (int n = 0; n < b1.num(); ++n) { + for (int c = 0; c < b1.channels(); ++c) { + for (int h = 0; h < b1.height(); ++h) { + for (int w = 0; w < b1.width(); ++w) { + EXPECT_EQ(b1.data_at(n, c, h, w), b1.data_at(n, c, h, w)); + } + } + } + } +} + +typedef ::testing::Types Dtypes; +TYPED_TEST_CASE(HDF5OutputLayerTest, Dtypes); + +TYPED_TEST(HDF5OutputLayerTest, TestForward) { + LOG(INFO) << "Loading HDF5 file " << this->input_file_name_; + hid_t file_id = H5Fopen(this->input_file_name_.c_str(), H5F_ACC_RDONLY, + H5P_DEFAULT); + ASSERT_GE(file_id, 0) << "Failed to open HDF5 file" << + this->input_file_name_; + hdf5_load_nd_dataset(file_id, HDF5_DATA_DATASET_NAME, 0, 4, + this->blob_data_); + hdf5_load_nd_dataset(file_id, HDF5_DATA_LABEL_NAME, 0, 4, + this->blob_label_); + herr_t status = H5Fclose(file_id); + EXPECT_GE(status, 0) << "Failed to close HDF5 file " << + this->input_file_name_; + this->blob_bottom_vec_.push_back(this->blob_data_); + this->blob_bottom_vec_.push_back(this->blob_label_); + + Caffe::Brew modes[] = { Caffe::CPU, Caffe::GPU }; + for (int m = 0; m < 2; ++m) { + Caffe::set_mode(modes[m]); + LayerParameter param; + param.mutable_hdf5_output_param()->set_file_name(this->output_file_name_); + // This code block ensures that the layer is deconstructed and + // the output hdf5 file is closed. + { + HDF5OutputLayer layer(param); + EXPECT_EQ(layer.file_name(), this->output_file_name_); + layer.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + layer.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); + } + hid_t file_id = H5Fopen(this->output_file_name_.c_str(), H5F_ACC_RDONLY, + H5P_DEFAULT); + ASSERT_GE(file_id, 0) << "Failed to open HDF5 file" << + this->input_file_name_; + + Blob* blob_data = new Blob(); + hdf5_load_nd_dataset(file_id, HDF5_DATA_DATASET_NAME, 0, 4, + blob_data); + this->CheckBlobEqual(*(this->blob_data_), *blob_data); + + Blob* blob_label = new Blob(); + hdf5_load_nd_dataset(file_id, HDF5_DATA_LABEL_NAME, 0, 4, + blob_label); + this->CheckBlobEqual(*(this->blob_label_), *blob_label); + + herr_t status = H5Fclose(file_id); + EXPECT_GE(status, 0) << "Failed to close HDF5 file " << + this->output_file_name_; + } +} + +} // namespace caffe diff --git a/src/caffe/test/test_hdf5data_layer.cpp b/src/caffe/test/test_hdf5data_layer.cpp index 51ef5440ff9..a0ed113b36e 100644 --- a/src/caffe/test/test_hdf5data_layer.cpp +++ b/src/caffe/test/test_hdf5data_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -57,9 +57,10 @@ TYPED_TEST(HDF5DataLayerTest, TestRead) { // The data file we are reading has 10 rows and 8 columns, // with values from 0 to 10*8 reshaped in row-major order. LayerParameter param; - int batchsize = 5; - param.set_batchsize(batchsize); - param.set_source(*(this->filename)); + HDF5DataParameter* hdf5_data_param = param.mutable_hdf5_data_param(); + int batch_size = 5; + hdf5_data_param->set_batch_size(batch_size); + hdf5_data_param->set_source(*(this->filename)); int num_rows = 10; int num_cols = 8; int height = 5; @@ -68,12 +69,12 @@ TYPED_TEST(HDF5DataLayerTest, TestRead) { // Test that the layer setup got the correct parameters. HDF5DataLayer layer(param); layer.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); - EXPECT_EQ(this->blob_top_data_->num(), batchsize); + EXPECT_EQ(this->blob_top_data_->num(), batch_size); EXPECT_EQ(this->blob_top_data_->channels(), num_cols); EXPECT_EQ(this->blob_top_data_->height(), height); EXPECT_EQ(this->blob_top_data_->width(), width); - EXPECT_EQ(this->blob_top_label_->num(), batchsize); + EXPECT_EQ(this->blob_top_label_->num(), batch_size); EXPECT_EQ(this->blob_top_label_->channels(), 1); EXPECT_EQ(this->blob_top_label_->height(), 1); EXPECT_EQ(this->blob_top_label_->width(), 1); @@ -94,20 +95,20 @@ TYPED_TEST(HDF5DataLayerTest, TestRead) { // On even iterations, we're reading the first half of the data. // On odd iterations, we're reading the second half of the data. - int label_offset = (iter % 2 == 0) ? 0 : batchsize; - int data_offset = (iter % 2 == 0) ? 0 : batchsize * data_size; + int label_offset = (iter % 2 == 0) ? 0 : batch_size; + int data_offset = (iter % 2 == 0) ? 0 : batch_size * data_size; // Every two iterations we are reading the second file, // which has the same labels, but data is offset by total data size, // which is 2000 (see generate_sample_data). int file_offset = (iter % 4 < 2) ? 0 : 2000; - for (int i = 0; i < batchsize; ++i) { + for (int i = 0; i < batch_size; ++i) { EXPECT_EQ( label_offset + i, this->blob_top_label_->cpu_data()[i]); } - for (int i = 0; i < batchsize; ++i) { + for (int i = 0; i < batch_size; ++i) { for (int j = 0; j < num_cols; ++j) { for (int h = 0; h < height; ++h) { for (int w = 0; w < width; ++w) { diff --git a/src/caffe/test/test_hinge_loss_layer.cpp b/src/caffe/test/test_hinge_loss_layer.cpp new file mode 100644 index 00000000000..1725827755f --- /dev/null +++ b/src/caffe/test/test_hinge_loss_layer.cpp @@ -0,0 +1,73 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include +#include +#include + +#include "cuda_runtime.h" +#include "gtest/gtest.h" +#include "caffe/blob.hpp" +#include "caffe/common.hpp" +#include "caffe/filler.hpp" +#include "caffe/vision_layers.hpp" +#include "caffe/test/test_gradient_check_util.hpp" + +#include "caffe/test/test_caffe_main.hpp" + +namespace caffe { + +extern cudaDeviceProp CAFFE_TEST_CUDA_PROP; + +template +class HingeLossLayerTest : public ::testing::Test { + protected: + HingeLossLayerTest() + : blob_bottom_data_(new Blob(10, 5, 1, 1)), + blob_bottom_label_(new Blob(10, 1, 1, 1)) { + // fill the values + FillerParameter filler_param; + filler_param.set_std(10); + GaussianFiller filler(filler_param); + filler.Fill(this->blob_bottom_data_); + blob_bottom_vec_.push_back(blob_bottom_data_); + for (int i = 0; i < blob_bottom_label_->count(); ++i) { + blob_bottom_label_->mutable_cpu_data()[i] = caffe_rng_rand() % 5; + } + blob_bottom_vec_.push_back(blob_bottom_label_); + } + virtual ~HingeLossLayerTest() { + delete blob_bottom_data_; + delete blob_bottom_label_; + } + Blob* const blob_bottom_data_; + Blob* const blob_bottom_label_; + vector*> blob_bottom_vec_; + vector*> blob_top_vec_; +}; + +typedef ::testing::Types Dtypes; +TYPED_TEST_CASE(HingeLossLayerTest, Dtypes); + + +TYPED_TEST(HingeLossLayerTest, TestGradientCPU) { + LayerParameter layer_param; + Caffe::set_mode(Caffe::CPU); + HingeLossLayer layer(layer_param); + layer.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + GradientChecker checker(1e-2, 1e-3, 1701, 1, 0.01); + checker.CheckGradientSingle(&layer, &(this->blob_bottom_vec_), + &(this->blob_top_vec_), 0, -1, -1); +} + +TYPED_TEST(HingeLossLayerTest, TestGradientGPU) { + LayerParameter layer_param; + Caffe::set_mode(Caffe::GPU); + HingeLossLayer layer(layer_param); + layer.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + GradientChecker checker(1e-2, 1e-3, 1701, 1, 0.01); + checker.CheckGradientSingle(&layer, &(this->blob_bottom_vec_), + &(this->blob_top_vec_), 0, -1, -1); +} + +} // namespace caffe diff --git a/src/caffe/test/test_im2col_layer.cpp b/src/caffe/test/test_im2col_layer.cpp index ac2f8fe25e2..7f677ca03d6 100644 --- a/src/caffe/test/test_im2col_layer.cpp +++ b/src/caffe/test/test_im2col_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -42,8 +42,10 @@ TYPED_TEST_CASE(Im2colLayerTest, Dtypes); TYPED_TEST(Im2colLayerTest, TestSetup) { LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); + ConvolutionParameter* convolution_param = + layer_param.mutable_convolution_param(); + convolution_param->set_kernel_size(3); + convolution_param->set_stride(2); Im2colLayer layer(layer_param); layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); EXPECT_EQ(this->blob_top_->num(), 2); @@ -54,8 +56,10 @@ TYPED_TEST(Im2colLayerTest, TestSetup) { TYPED_TEST(Im2colLayerTest, TestCPU) { LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); + ConvolutionParameter* convolution_param = + layer_param.mutable_convolution_param(); + convolution_param->set_kernel_size(3); + convolution_param->set_stride(2); Im2colLayer layer(layer_param); Caffe::set_mode(Caffe::CPU); layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); @@ -69,8 +73,10 @@ TYPED_TEST(Im2colLayerTest, TestCPU) { TYPED_TEST(Im2colLayerTest, TestGPU) { LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); + ConvolutionParameter* convolution_param = + layer_param.mutable_convolution_param(); + convolution_param->set_kernel_size(3); + convolution_param->set_stride(2); Im2colLayer layer(layer_param); Caffe::set_mode(Caffe::GPU); layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); @@ -84,8 +90,10 @@ TYPED_TEST(Im2colLayerTest, TestGPU) { TYPED_TEST(Im2colLayerTest, TestCPUGradient) { LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); + ConvolutionParameter* convolution_param = + layer_param.mutable_convolution_param(); + convolution_param->set_kernel_size(3); + convolution_param->set_stride(2); Caffe::set_mode(Caffe::CPU); Im2colLayer layer(layer_param); GradientChecker checker(1e-2, 1e-2); @@ -95,8 +103,10 @@ TYPED_TEST(Im2colLayerTest, TestCPUGradient) { TYPED_TEST(Im2colLayerTest, TestGPUGradient) { LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); + ConvolutionParameter* convolution_param = + layer_param.mutable_convolution_param(); + convolution_param->set_kernel_size(3); + convolution_param->set_stride(2); Caffe::set_mode(Caffe::GPU); Im2colLayer layer(layer_param); GradientChecker checker(1e-2, 1e-2); diff --git a/src/caffe/test/test_images_layer.cpp b/src/caffe/test/test_image_data_layer.cpp similarity index 57% rename from src/caffe/test/test_images_layer.cpp rename to src/caffe/test/test_image_data_layer.cpp index 594a654de42..42a1d0358db 100644 --- a/src/caffe/test/test_images_layer.cpp +++ b/src/caffe/test/test_image_data_layer.cpp @@ -1,9 +1,10 @@ -// Copyright 2014 Sergio Guadarrama +// Copyright 2014 BVLC and contributors. #include #include // NOLINT(readability/streams) #include // NOLINT(readability/streams) +#include #include #include @@ -15,6 +16,7 @@ #include "caffe/proto/caffe.pb.h" #include "caffe/test/test_caffe_main.hpp" +using std::map; using std::string; namespace caffe { @@ -22,28 +24,33 @@ namespace caffe { extern cudaDeviceProp CAFFE_TEST_CUDA_PROP; template -class ImagesLayerTest : public ::testing::Test { +class ImageDataLayerTest : public ::testing::Test { protected: - ImagesLayerTest() + ImageDataLayerTest() : blob_top_data_(new Blob()), blob_top_label_(new Blob()), - filename(NULL) {} + filename_(new string(tmpnam(NULL))), + seed_(1701) {} virtual void SetUp() { blob_top_vec_.push_back(blob_top_data_); blob_top_vec_.push_back(blob_top_label_); + Caffe::set_random_seed(seed_); // Create a Vector of files with labels - filename = tmpnam(NULL); // get temp name - std::ofstream outfile(filename, std::ofstream::out); - LOG(INFO) << "Using temporary file " << filename; + std::ofstream outfile(filename_->c_str(), std::ofstream::out); + LOG(INFO) << "Using temporary file " << *filename_; for (int i = 0; i < 5; ++i) { outfile << "examples/images/cat.jpg " << i; } outfile.close(); } - virtual ~ImagesLayerTest() { delete blob_top_data_; delete blob_top_label_; } + virtual ~ImageDataLayerTest() { + delete blob_top_data_; + delete blob_top_label_; + } - char* filename; + int seed_; + shared_ptr filename_; Blob* const blob_top_data_; Blob* const blob_top_label_; vector*> blob_bottom_vec_; @@ -51,14 +58,15 @@ class ImagesLayerTest : public ::testing::Test { }; typedef ::testing::Types Dtypes; -TYPED_TEST_CASE(ImagesLayerTest, Dtypes); +TYPED_TEST_CASE(ImageDataLayerTest, Dtypes); -TYPED_TEST(ImagesLayerTest, TestRead) { +TYPED_TEST(ImageDataLayerTest, TestRead) { LayerParameter param; - param.set_batchsize(5); - param.set_source(this->filename); - param.set_shuffle_images(false); - ImagesLayer layer(param); + ImageDataParameter* image_data_param = param.mutable_image_data_param(); + image_data_param->set_batch_size(5); + image_data_param->set_source(this->filename_->c_str()); + image_data_param->set_shuffle(false); + ImageDataLayer layer(param); layer.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); EXPECT_EQ(this->blob_top_data_->num(), 5); EXPECT_EQ(this->blob_top_data_->channels(), 3); @@ -68,8 +76,8 @@ TYPED_TEST(ImagesLayerTest, TestRead) { EXPECT_EQ(this->blob_top_label_->channels(), 1); EXPECT_EQ(this->blob_top_label_->height(), 1); EXPECT_EQ(this->blob_top_label_->width(), 1); - // Go through the data 5 times - for (int iter = 0; iter < 5; ++iter) { + // Go through the data twice + for (int iter = 0; iter < 2; ++iter) { layer.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); for (int i = 0; i < 5; ++i) { EXPECT_EQ(i, this->blob_top_label_->cpu_data()[i]); @@ -77,14 +85,15 @@ TYPED_TEST(ImagesLayerTest, TestRead) { } } -TYPED_TEST(ImagesLayerTest, TestResize) { +TYPED_TEST(ImageDataLayerTest, TestResize) { LayerParameter param; - param.set_batchsize(5); - param.set_source(this->filename); - param.set_new_height(256); - param.set_new_width(256); - param.set_shuffle_images(false); - ImagesLayer layer(param); + ImageDataParameter* image_data_param = param.mutable_image_data_param(); + image_data_param->set_batch_size(5); + image_data_param->set_source(this->filename_->c_str()); + image_data_param->set_new_height(256); + image_data_param->set_new_width(256); + image_data_param->set_shuffle(false); + ImageDataLayer layer(param); layer.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); EXPECT_EQ(this->blob_top_data_->num(), 5); EXPECT_EQ(this->blob_top_data_->channels(), 3); @@ -94,8 +103,8 @@ TYPED_TEST(ImagesLayerTest, TestResize) { EXPECT_EQ(this->blob_top_label_->channels(), 1); EXPECT_EQ(this->blob_top_label_->height(), 1); EXPECT_EQ(this->blob_top_label_->width(), 1); - // Go through the data 50 times - for (int iter = 0; iter < 5; ++iter) { + // Go through the data twice + for (int iter = 0; iter < 2; ++iter) { layer.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); for (int i = 0; i < 5; ++i) { EXPECT_EQ(i, this->blob_top_label_->cpu_data()[i]); @@ -103,12 +112,13 @@ TYPED_TEST(ImagesLayerTest, TestResize) { } } -TYPED_TEST(ImagesLayerTest, TestShuffle) { +TYPED_TEST(ImageDataLayerTest, TestShuffle) { LayerParameter param; - param.set_batchsize(5); - param.set_source(this->filename); - param.set_shuffle_images(true); - ImagesLayer layer(param); + ImageDataParameter* image_data_param = param.mutable_image_data_param(); + image_data_param->set_batch_size(5); + image_data_param->set_source(this->filename_->c_str()); + image_data_param->set_shuffle(true); + ImageDataLayer layer(param); layer.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); EXPECT_EQ(this->blob_top_data_->num(), 5); EXPECT_EQ(this->blob_top_data_->channels(), 3); @@ -118,13 +128,20 @@ TYPED_TEST(ImagesLayerTest, TestShuffle) { EXPECT_EQ(this->blob_top_label_->channels(), 1); EXPECT_EQ(this->blob_top_label_->height(), 1); EXPECT_EQ(this->blob_top_label_->width(), 1); - // Go through the data 5 times - for (int iter = 0; iter < 5; ++iter) { + // Go through the data twice + for (int iter = 0; iter < 2; ++iter) { layer.Forward(this->blob_bottom_vec_, &this->blob_top_vec_); + map values_to_indices; + int num_in_order = 0; for (int i = 0; i < 5; ++i) { - EXPECT_GE(this->blob_top_label_->cpu_data()[i], 0); - EXPECT_LE(this->blob_top_label_->cpu_data()[i], 5); + TypeParam value = this->blob_top_label_->cpu_data()[i]; + // Check that the value has not been seen already (no duplicates). + EXPECT_EQ(values_to_indices.find(value), values_to_indices.end()); + values_to_indices[value] = i; + num_in_order += (value == TypeParam(i)); } + EXPECT_EQ(5, values_to_indices.size()); + EXPECT_GT(5, num_in_order); } } diff --git a/src/caffe/test/test_innerproduct_layer.cpp b/src/caffe/test/test_inner_product_layer.cpp similarity index 68% rename from src/caffe/test/test_innerproduct_layer.cpp rename to src/caffe/test/test_inner_product_layer.cpp index eac33b9c9cb..91917df6cae 100644 --- a/src/caffe/test/test_innerproduct_layer.cpp +++ b/src/caffe/test/test_inner_product_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -42,7 +42,9 @@ TYPED_TEST_CASE(InnerProductLayerTest, Dtypes); TYPED_TEST(InnerProductLayerTest, TestSetUp) { LayerParameter layer_param; - layer_param.set_num_output(10); + InnerProductParameter* inner_product_param = + layer_param.mutable_inner_product_param(); + inner_product_param->set_num_output(10); shared_ptr > layer( new InnerProductLayer(layer_param)); layer->SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); @@ -54,12 +56,14 @@ TYPED_TEST(InnerProductLayerTest, TestSetUp) { TYPED_TEST(InnerProductLayerTest, TestCPU) { LayerParameter layer_param; + InnerProductParameter* inner_product_param = + layer_param.mutable_inner_product_param(); Caffe::set_mode(Caffe::CPU); - layer_param.set_num_output(10); - layer_param.mutable_weight_filler()->set_type("uniform"); - layer_param.mutable_bias_filler()->set_type("uniform"); - layer_param.mutable_bias_filler()->set_min(1); - layer_param.mutable_bias_filler()->set_max(2); + inner_product_param->set_num_output(10); + inner_product_param->mutable_weight_filler()->set_type("uniform"); + inner_product_param->mutable_bias_filler()->set_type("uniform"); + inner_product_param->mutable_bias_filler()->set_min(1); + inner_product_param->mutable_bias_filler()->set_max(2); shared_ptr > layer( new InnerProductLayer(layer_param)); layer->SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); @@ -74,12 +78,14 @@ TYPED_TEST(InnerProductLayerTest, TestCPU) { TYPED_TEST(InnerProductLayerTest, TestGPU) { if (sizeof(TypeParam) == 4 || CAFFE_TEST_CUDA_PROP.major >= 2) { LayerParameter layer_param; + InnerProductParameter* inner_product_param = + layer_param.mutable_inner_product_param(); Caffe::set_mode(Caffe::GPU); - layer_param.set_num_output(10); - layer_param.mutable_weight_filler()->set_type("uniform"); - layer_param.mutable_bias_filler()->set_type("uniform"); - layer_param.mutable_bias_filler()->set_min(1); - layer_param.mutable_bias_filler()->set_max(2); + inner_product_param->set_num_output(10); + inner_product_param->mutable_weight_filler()->set_type("uniform"); + inner_product_param->mutable_bias_filler()->set_type("uniform"); + inner_product_param->mutable_bias_filler()->set_min(1); + inner_product_param->mutable_bias_filler()->set_max(2); shared_ptr > layer( new InnerProductLayer(layer_param)); layer->SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); @@ -96,12 +102,14 @@ TYPED_TEST(InnerProductLayerTest, TestGPU) { TYPED_TEST(InnerProductLayerTest, TestCPUGradient) { LayerParameter layer_param; + InnerProductParameter* inner_product_param = + layer_param.mutable_inner_product_param(); Caffe::set_mode(Caffe::CPU); - layer_param.set_num_output(10); - layer_param.mutable_weight_filler()->set_type("gaussian"); - layer_param.mutable_bias_filler()->set_type("gaussian"); - layer_param.mutable_bias_filler()->set_min(1); - layer_param.mutable_bias_filler()->set_max(2); + inner_product_param->set_num_output(10); + inner_product_param->mutable_weight_filler()->set_type("gaussian"); + inner_product_param->mutable_bias_filler()->set_type("gaussian"); + inner_product_param->mutable_bias_filler()->set_min(1); + inner_product_param->mutable_bias_filler()->set_max(2); InnerProductLayer layer(layer_param); GradientChecker checker(1e-2, 1e-3); checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), @@ -111,10 +119,12 @@ TYPED_TEST(InnerProductLayerTest, TestCPUGradient) { TYPED_TEST(InnerProductLayerTest, TestGPUGradient) { if (sizeof(TypeParam) == 4 || CAFFE_TEST_CUDA_PROP.major >= 2) { LayerParameter layer_param; + InnerProductParameter* inner_product_param = + layer_param.mutable_inner_product_param(); Caffe::set_mode(Caffe::GPU); - layer_param.set_num_output(10); - layer_param.mutable_weight_filler()->set_type("gaussian"); - layer_param.mutable_bias_filler()->set_type("gaussian"); + inner_product_param->set_num_output(10); + inner_product_param->mutable_weight_filler()->set_type("gaussian"); + inner_product_param->mutable_bias_filler()->set_type("gaussian"); InnerProductLayer layer(layer_param); GradientChecker checker(1e-2, 1e-2); checker.CheckGradient(&layer, &(this->blob_bottom_vec_), diff --git a/src/caffe/test/test_lrn_layer.cpp b/src/caffe/test/test_lrn_layer.cpp index cbdb7d1468f..1923128dd71 100644 --- a/src/caffe/test/test_lrn_layer.cpp +++ b/src/caffe/test/test_lrn_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -26,7 +26,8 @@ class LRNLayerTest : public ::testing::Test { protected: LRNLayerTest() : blob_bottom_(new Blob()), - blob_top_(new Blob()) {} + blob_top_(new Blob()), + epsilon_(Dtype(1e-5)) {} virtual void SetUp() { Caffe::set_random_seed(1701); blob_bottom_->Reshape(2, 7, 3, 3); @@ -40,6 +41,8 @@ class LRNLayerTest : public ::testing::Test { virtual ~LRNLayerTest() { delete blob_bottom_; delete blob_top_; } void ReferenceLRNForward(const Blob& blob_bottom, const LayerParameter& layer_param, Blob* blob_top); + + Dtype epsilon_; Blob* const blob_bottom_; Blob* const blob_top_; vector*> blob_bottom_vec_; @@ -54,33 +57,65 @@ void LRNLayerTest::ReferenceLRNForward( blob_bottom.height(), blob_bottom.width()); const Dtype* bottom_data = blob_bottom.cpu_data(); Dtype* top_data = blob_top->mutable_cpu_data(); - Dtype alpha = layer_param.alpha(); - Dtype beta = layer_param.beta(); - int size = layer_param.local_size(); - for (int n = 0; n < blob_bottom.num(); ++n) { - for (int c = 0; c < blob_bottom.channels(); ++c) { - for (int h = 0; h < blob_bottom.height(); ++h) { - for (int w = 0; w < blob_bottom.width(); ++w) { - int c_start = c - (size - 1) / 2; - int c_end = min(c_start + size, blob_bottom.channels()); - c_start = max(c_start, 0); - Dtype scale = 1.; - for (int i = c_start; i < c_end; ++i) { - Dtype value = blob_bottom.data_at(n, i, h, w); - scale += value * value * alpha / size; + LRNParameter lrn_param = layer_param.lrn_param(); + Dtype alpha = lrn_param.alpha(); + Dtype beta = lrn_param.beta(); + int size = lrn_param.local_size(); + switch (lrn_param.norm_region()) { + case LRNParameter_NormRegion_ACROSS_CHANNELS: + for (int n = 0; n < blob_bottom.num(); ++n) { + for (int c = 0; c < blob_bottom.channels(); ++c) { + for (int h = 0; h < blob_bottom.height(); ++h) { + for (int w = 0; w < blob_bottom.width(); ++w) { + int c_start = c - (size - 1) / 2; + int c_end = min(c_start + size, blob_bottom.channels()); + c_start = max(c_start, 0); + Dtype scale = 1.; + for (int i = c_start; i < c_end; ++i) { + Dtype value = blob_bottom.data_at(n, i, h, w); + scale += value * value * alpha / size; + } + *(top_data + blob_top->offset(n, c, h, w)) = + blob_bottom.data_at(n, c, h, w) / pow(scale, beta); + } + } + } + } + break; + case LRNParameter_NormRegion_WITHIN_CHANNEL: + for (int n = 0; n < blob_bottom.num(); ++n) { + for (int c = 0; c < blob_bottom.channels(); ++c) { + for (int h = 0; h < blob_bottom.height(); ++h) { + int h_start = h - (size - 1) / 2; + int h_end = min(h_start + size, blob_bottom.height()); + h_start = max(h_start, 0); + for (int w = 0; w < blob_bottom.width(); ++w) { + Dtype scale = 1.; + int w_start = w - (size - 1) / 2; + int w_end = min(w_start + size, blob_bottom.width()); + w_start = max(w_start, 0); + for (int nh = h_start; nh < h_end; ++nh) { + for (int nw = w_start; nw < w_end; ++nw) { + Dtype value = blob_bottom.data_at(n, c, nh, nw); + scale += value * value * alpha / (size * size); + } + } + *(top_data + blob_top->offset(n, c, h, w)) = + blob_bottom.data_at(n, c, h, w) / pow(scale, beta); } - *(top_data + blob_top->offset(n, c, h, w)) = - blob_bottom.data_at(n, c, h, w) / pow(scale, beta); } } } + break; + default: + LOG(FATAL) << "Unknown normalization region."; } } typedef ::testing::Types Dtypes; TYPED_TEST_CASE(LRNLayerTest, Dtypes); -TYPED_TEST(LRNLayerTest, TestSetup) { +TYPED_TEST(LRNLayerTest, TestSetupAcrossChannels) { LayerParameter layer_param; LRNLayer layer(layer_param); layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); @@ -90,7 +125,7 @@ TYPED_TEST(LRNLayerTest, TestSetup) { EXPECT_EQ(this->blob_top_->width(), 3); } -TYPED_TEST(LRNLayerTest, TestCPUForward) { +TYPED_TEST(LRNLayerTest, TestCPUForwardAcrossChannels) { LayerParameter layer_param; LRNLayer layer(layer_param); Caffe::set_mode(Caffe::CPU); @@ -100,14 +135,12 @@ TYPED_TEST(LRNLayerTest, TestCPUForward) { this->ReferenceLRNForward(*(this->blob_bottom_), layer_param, &top_reference); for (int i = 0; i < this->blob_bottom_->count(); ++i) { - EXPECT_GE(this->blob_top_->cpu_data()[i], - top_reference.cpu_data()[i] - 1e-5); - EXPECT_LE(this->blob_top_->cpu_data()[i], - top_reference.cpu_data()[i] + 1e-5); + EXPECT_NEAR(this->blob_top_->cpu_data()[i], top_reference.cpu_data()[i], + this->epsilon_); } } -TYPED_TEST(LRNLayerTest, TestGPUForward) { +TYPED_TEST(LRNLayerTest, TestGPUForwardAcrossChannels) { LayerParameter layer_param; LRNLayer layer(layer_param); Caffe::set_mode(Caffe::GPU); @@ -117,14 +150,12 @@ TYPED_TEST(LRNLayerTest, TestGPUForward) { this->ReferenceLRNForward(*(this->blob_bottom_), layer_param, &top_reference); for (int i = 0; i < this->blob_bottom_->count(); ++i) { - EXPECT_GE(this->blob_top_->cpu_data()[i], - top_reference.cpu_data()[i] - 1e-5); - EXPECT_LE(this->blob_top_->cpu_data()[i], - top_reference.cpu_data()[i] + 1e-5); + EXPECT_NEAR(this->blob_top_->cpu_data()[i], top_reference.cpu_data()[i], + this->epsilon_); } } -TYPED_TEST(LRNLayerTest, TestCPUGradient) { +TYPED_TEST(LRNLayerTest, TestCPUGradientAcrossChannels) { LayerParameter layer_param; LRNLayer layer(layer_param); GradientChecker checker(1e-2, 1e-2); @@ -143,7 +174,7 @@ TYPED_TEST(LRNLayerTest, TestCPUGradient) { &(this->blob_top_vec_)); } -TYPED_TEST(LRNLayerTest, TestGPUGradient) { +TYPED_TEST(LRNLayerTest, TestGPUGradientAcrossChannels) { LayerParameter layer_param; LRNLayer layer(layer_param); GradientChecker checker(1e-2, 1e-2); @@ -162,4 +193,90 @@ TYPED_TEST(LRNLayerTest, TestGPUGradient) { &(this->blob_top_vec_)); } +TYPED_TEST(LRNLayerTest, TestSetupWithinChannel) { + LayerParameter layer_param; + layer_param.mutable_lrn_param()->set_norm_region( + LRNParameter_NormRegion_WITHIN_CHANNEL); + layer_param.mutable_lrn_param()->set_local_size(3); + LRNLayer layer(layer_param); + layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); + EXPECT_EQ(this->blob_top_->num(), 2); + EXPECT_EQ(this->blob_top_->channels(), 7); + EXPECT_EQ(this->blob_top_->height(), 3); + EXPECT_EQ(this->blob_top_->width(), 3); +} + +TYPED_TEST(LRNLayerTest, TestCPUForwardWithinChannel) { + LayerParameter layer_param; + layer_param.mutable_lrn_param()->set_norm_region( + LRNParameter_NormRegion_WITHIN_CHANNEL); + layer_param.mutable_lrn_param()->set_local_size(3); + LRNLayer layer(layer_param); + Caffe::set_mode(Caffe::CPU); + layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); + layer.Forward(this->blob_bottom_vec_, &(this->blob_top_vec_)); + Blob top_reference; + this->ReferenceLRNForward(*(this->blob_bottom_), layer_param, + &top_reference); + for (int i = 0; i < this->blob_bottom_->count(); ++i) { + EXPECT_NEAR(this->blob_top_->cpu_data()[i], top_reference.cpu_data()[i], + this->epsilon_); + } +} + +TYPED_TEST(LRNLayerTest, TestGPUForwardWithinChannel) { + LayerParameter layer_param; + layer_param.mutable_lrn_param()->set_norm_region( + LRNParameter_NormRegion_WITHIN_CHANNEL); + layer_param.mutable_lrn_param()->set_local_size(3); + LRNLayer layer(layer_param); + Caffe::set_mode(Caffe::GPU); + layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); + layer.Forward(this->blob_bottom_vec_, &(this->blob_top_vec_)); + Blob top_reference; + this->ReferenceLRNForward(*(this->blob_bottom_), layer_param, + &top_reference); + for (int i = 0; i < this->blob_bottom_->count(); ++i) { + EXPECT_NEAR(this->blob_top_->cpu_data()[i], top_reference.cpu_data()[i], + this->epsilon_); + } +} + +TYPED_TEST(LRNLayerTest, TestCPUGradientWithinChannel) { + LayerParameter layer_param; + layer_param.mutable_lrn_param()->set_norm_region( + LRNParameter_NormRegion_WITHIN_CHANNEL); + layer_param.mutable_lrn_param()->set_local_size(3); + LRNLayer layer(layer_param); + GradientChecker checker(1e-2, 1e-2); + Caffe::set_mode(Caffe::CPU); + layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); + layer.Forward(this->blob_bottom_vec_, &(this->blob_top_vec_)); + for (int i = 0; i < this->blob_top_->count(); ++i) { + this->blob_top_->mutable_cpu_diff()[i] = 1.; + } + layer.Backward(this->blob_top_vec_, true, &(this->blob_bottom_vec_)); + checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + &(this->blob_top_vec_)); +} + +TYPED_TEST(LRNLayerTest, TestGPUGradientWithinChannel) { + LayerParameter layer_param; + layer_param.mutable_lrn_param()->set_norm_region( + LRNParameter_NormRegion_WITHIN_CHANNEL); + layer_param.mutable_lrn_param()->set_local_size(3); + LRNLayer layer(layer_param); + GradientChecker checker(1e-2, 1e-2); + Caffe::set_mode(Caffe::GPU); + layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); + layer.Forward(this->blob_bottom_vec_, &(this->blob_top_vec_)); + for (int i = 0; i < this->blob_top_->count(); ++i) { + this->blob_top_->mutable_cpu_diff()[i] = 1.; + } + layer.Backward(this->blob_top_vec_, true, &(this->blob_bottom_vec_)); + checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + &(this->blob_top_vec_)); +} + + } // namespace caffe diff --git a/src/caffe/test/test_math_functions.cpp b/src/caffe/test/test_math_functions.cpp new file mode 100644 index 00000000000..d0265767c07 --- /dev/null +++ b/src/caffe/test/test_math_functions.cpp @@ -0,0 +1,230 @@ +// Copyright 2014 BVLC and contributors. + +#include // for uint32_t & uint64_t +#include +#include +#include // for std::fabs +#include // for rand_r + +#include "gtest/gtest.h" +#include "caffe/blob.hpp" +#include "caffe/common.hpp" +#include "caffe/filler.hpp" +#include "caffe/util/math_functions.hpp" + +#include "caffe/test/test_caffe_main.hpp" + +namespace caffe { + +template +class MathFunctionsTest : public ::testing::Test { + protected: + MathFunctionsTest() + : blob_bottom_(new Blob()), + blob_top_(new Blob()) { + } + + virtual void SetUp() { + Caffe::set_random_seed(1701); + this->blob_bottom_->Reshape(11, 17, 19, 23); + this->blob_top_->Reshape(11, 17, 19, 23); + // fill the values + FillerParameter filler_param; + GaussianFiller filler(filler_param); + filler.Fill(this->blob_bottom_); + filler.Fill(this->blob_top_); + } + + virtual ~MathFunctionsTest() { + delete blob_bottom_; + delete blob_top_; + } + + // http://en.wikipedia.org/wiki/Hamming_distance + int ReferenceHammingDistance(const int n, const Dtype* x, const Dtype* y) { + int dist = 0; + uint64_t val; + for (int i = 0; i < n; ++i) { + if (sizeof(Dtype) == 8) { + val = static_cast(x[i]) ^ static_cast(y[i]); + } else if (sizeof(Dtype) == 4) { + val = static_cast(x[i]) ^ static_cast(y[i]); + } else { + LOG(FATAL) << "Unrecognized Dtype size: " << sizeof(Dtype); + } + // Count the number of set bits + while (val) { + ++dist; + val &= val - 1; + } + } + return dist; + } + + Blob* const blob_bottom_; + Blob* const blob_top_; +}; + +typedef ::testing::Types Dtypes; +TYPED_TEST_CASE(MathFunctionsTest, Dtypes); + +TYPED_TEST(MathFunctionsTest, TestNothing) { + // The first test case of a test suite takes the longest time + // due to the set up overhead. +} + +TYPED_TEST(MathFunctionsTest, TestHammingDistanceCPU) { + int n = this->blob_bottom_->count(); + const TypeParam* x = this->blob_bottom_->cpu_data(); + const TypeParam* y = this->blob_top_->cpu_data(); + EXPECT_EQ(this->ReferenceHammingDistance(n, x, y), + caffe_cpu_hamming_distance(n, x, y)); +} + +// TODO: Fix caffe_gpu_hamming_distance and re-enable this test. +TYPED_TEST(MathFunctionsTest, DISABLED_TestHammingDistanceGPU) { + int n = this->blob_bottom_->count(); + const TypeParam* x = this->blob_bottom_->cpu_data(); + const TypeParam* y = this->blob_top_->cpu_data(); + int reference_distance = this->ReferenceHammingDistance(n, x, y); + x = this->blob_bottom_->gpu_data(); + y = this->blob_top_->gpu_data(); + int computed_distance = caffe_gpu_hamming_distance(n, x, y); + EXPECT_EQ(reference_distance, computed_distance); +} + +TYPED_TEST(MathFunctionsTest, TestAsumCPU) { + int n = this->blob_bottom_->count(); + const TypeParam* x = this->blob_bottom_->cpu_data(); + TypeParam std_asum = 0; + for (int i = 0; i < n; ++i) { + std_asum += std::fabs(x[i]); + } + TypeParam cpu_asum = caffe_cpu_asum(n, x); + EXPECT_LT((cpu_asum - std_asum) / std_asum, 1e-2); +} + +TYPED_TEST(MathFunctionsTest, TestAsumGPU) { + int n = this->blob_bottom_->count(); + const TypeParam* x = this->blob_bottom_->cpu_data(); + TypeParam std_asum = 0; + for (int i = 0; i < n; ++i) { + std_asum += std::fabs(x[i]); + } + TypeParam gpu_asum; + caffe_gpu_asum(n, this->blob_bottom_->gpu_data(), &gpu_asum); + EXPECT_LT((gpu_asum - std_asum) / std_asum, 1e-2); +} + +TYPED_TEST(MathFunctionsTest, TestSignCPU) { + int n = this->blob_bottom_->count(); + const TypeParam* x = this->blob_bottom_->cpu_data(); + caffe_cpu_sign(n, x, this->blob_bottom_->mutable_cpu_diff()); + const TypeParam* signs = this->blob_bottom_->cpu_diff(); + for (int i = 0; i < n; ++i) { + EXPECT_EQ(signs[i], x[i] > 0 ? 1 : (x[i] < 0 ? -1 : 0)); + } +} + +TYPED_TEST(MathFunctionsTest, TestSignGPU) { + int n = this->blob_bottom_->count(); + caffe_gpu_sign(n, this->blob_bottom_->gpu_data(), + this->blob_bottom_->mutable_gpu_diff()); + const TypeParam* signs = this->blob_bottom_->cpu_diff(); + const TypeParam* x = this->blob_bottom_->cpu_data(); + for (int i = 0; i < n; ++i) { + EXPECT_EQ(signs[i], x[i] > 0 ? 1 : (x[i] < 0 ? -1 : 0)); + } +} + +TYPED_TEST(MathFunctionsTest, TestSgnbitCPU) { + int n = this->blob_bottom_->count(); + const TypeParam* x = this->blob_bottom_->cpu_data(); + caffe_cpu_sgnbit(n, x, this->blob_bottom_->mutable_cpu_diff()); + const TypeParam* signbits = this->blob_bottom_->cpu_diff(); + for (int i = 0; i < n; ++i) { + EXPECT_EQ(signbits[i], x[i] < 0 ? 1 : 0); + } +} + +TYPED_TEST(MathFunctionsTest, TestSgnbitGPU) { + int n = this->blob_bottom_->count(); + caffe_gpu_sgnbit(n, this->blob_bottom_->gpu_data(), + this->blob_bottom_->mutable_gpu_diff()); + const TypeParam* signbits = this->blob_bottom_->cpu_diff(); + const TypeParam* x = this->blob_bottom_->cpu_data(); + for (int i = 0; i < n; ++i) { + EXPECT_EQ(signbits[i], x[i] < 0 ? 1 : 0); + } +} + +TYPED_TEST(MathFunctionsTest, TestFabsCPU) { + int n = this->blob_bottom_->count(); + const TypeParam* x = this->blob_bottom_->cpu_data(); + caffe_cpu_fabs(n, x, this->blob_bottom_->mutable_cpu_diff()); + const TypeParam* abs_val = this->blob_bottom_->cpu_diff(); + for (int i = 0; i < n; ++i) { + EXPECT_EQ(abs_val[i], x[i] > 0 ? x[i] : -x[i]); + } +} + +TYPED_TEST(MathFunctionsTest, TestFabsGPU) { + int n = this->blob_bottom_->count(); + caffe_gpu_fabs(n, this->blob_bottom_->gpu_data(), + this->blob_bottom_->mutable_gpu_diff()); + const TypeParam* abs_val = this->blob_bottom_->cpu_diff(); + const TypeParam* x = this->blob_bottom_->cpu_data(); + for (int i = 0; i < n; ++i) { + EXPECT_EQ(abs_val[i], x[i] > 0 ? x[i] : -x[i]); + } +} + +TYPED_TEST(MathFunctionsTest, TestScaleCPU) { + int n = this->blob_bottom_->count(); + TypeParam alpha = this->blob_bottom_->cpu_diff()[caffe_rng_rand() % + this->blob_bottom_->count()]; + caffe_cpu_scale(n, alpha, this->blob_bottom_->cpu_data(), + this->blob_bottom_->mutable_cpu_diff()); + const TypeParam* scaled = this->blob_bottom_->cpu_diff(); + const TypeParam* x = this->blob_bottom_->cpu_data(); + for (int i = 0; i < n; ++i) { + EXPECT_EQ(scaled[i], x[i] * alpha); + } +} + +TYPED_TEST(MathFunctionsTest, TestScaleGPU) { + int n = this->blob_bottom_->count(); + TypeParam alpha = this->blob_bottom_->cpu_diff()[caffe_rng_rand() % + this->blob_bottom_->count()]; + caffe_gpu_scale(n, alpha, this->blob_bottom_->gpu_data(), + this->blob_bottom_->mutable_gpu_diff()); + const TypeParam* scaled = this->blob_bottom_->cpu_diff(); + const TypeParam* x = this->blob_bottom_->cpu_data(); + for (int i = 0; i < n; ++i) { + EXPECT_EQ(scaled[i], x[i] * alpha); + } +} + +TYPED_TEST(MathFunctionsTest, TestCopyCPU) { + const int n = this->blob_bottom_->count(); + const TypeParam* bottom_data = this->blob_bottom_->cpu_data(); + TypeParam* top_data = this->blob_top_->mutable_cpu_data(); + caffe_copy(n, bottom_data, top_data); + for (int i = 0; i < n; ++i) { + EXPECT_EQ(bottom_data[i], top_data[i]); + } +} + +TYPED_TEST(MathFunctionsTest, TestCopyGPU) { + const int n = this->blob_bottom_->count(); + const TypeParam* bottom_data = this->blob_bottom_->gpu_data(); + TypeParam* top_data = this->blob_top_->mutable_gpu_data(); + caffe_gpu_copy(n, bottom_data, top_data); + bottom_data = this->blob_bottom_->cpu_data(); + top_data = this->blob_top_->mutable_cpu_data(); + for (int i = 0; i < n; ++i) { + EXPECT_EQ(bottom_data[i], top_data[i]); + } +} + +} // namespace caffe diff --git a/src/caffe/test/test_memory_data_layer.cpp b/src/caffe/test/test_memory_data_layer.cpp new file mode 100644 index 00000000000..15f01bd41e3 --- /dev/null +++ b/src/caffe/test/test_memory_data_layer.cpp @@ -0,0 +1,108 @@ +// Copyright 2014 BVLC and contributors. + +#include + +#include "caffe/filler.hpp" +#include "caffe/vision_layers.hpp" +#include "caffe/test/test_caffe_main.hpp" + +namespace caffe { + +template +class MemoryDataLayerTest : public ::testing::Test { + protected: + MemoryDataLayerTest() + : data_blob_(new Blob()), + label_blob_(new Blob()), + data_(new Blob()), labels_(new Blob()) {} + virtual void SetUp() { + batch_size_ = 8; + batches_ = 12; + channels_ = 4; + height_ = 7; + width_ = 11; + blob_top_vec_.push_back(data_blob_); + blob_top_vec_.push_back(label_blob_); + // pick random input data + FillerParameter filler_param; + GaussianFiller filler(filler_param); + data_->Reshape(batches_ * batch_size_, channels_, height_, width_); + labels_->Reshape(batches_ * batch_size_, 1, 1, 1); + filler.Fill(this->data_); + filler.Fill(this->labels_); + } + + virtual ~MemoryDataLayerTest() { + delete data_blob_; + delete label_blob_; + delete data_; + delete labels_; + } + int batch_size_; + int batches_; + int channels_; + int height_; + int width_; + // we don't really need blobs for the input data, but it makes it + // easier to call Filler + Blob* const data_; + Blob* const labels_; + // blobs for the top of MemoryDataLayer + Blob* const data_blob_; + Blob* const label_blob_; + vector*> blob_bottom_vec_; + vector*> blob_top_vec_; +}; + +typedef ::testing::Types Dtypes; +TYPED_TEST_CASE(MemoryDataLayerTest, Dtypes); + +TYPED_TEST(MemoryDataLayerTest, TestSetup) { + LayerParameter layer_param; + MemoryDataParameter* md_param = layer_param.mutable_memory_data_param(); + md_param->set_batch_size(this->batch_size_); + md_param->set_channels(this->channels_); + md_param->set_height(this->height_); + md_param->set_width(this->width_); + shared_ptr > layer( + new MemoryDataLayer(layer_param)); + layer->SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); + EXPECT_EQ(this->data_blob_->num(), this->batch_size_); + EXPECT_EQ(this->data_blob_->channels(), this->channels_); + EXPECT_EQ(this->data_blob_->height(), this->height_); + EXPECT_EQ(this->data_blob_->width(), this->width_); + EXPECT_EQ(this->label_blob_->num(), this->batch_size_); + EXPECT_EQ(this->label_blob_->channels(), 1); + EXPECT_EQ(this->label_blob_->height(), 1); + EXPECT_EQ(this->label_blob_->width(), 1); +} + +// run through a few batches and check that the right data appears +TYPED_TEST(MemoryDataLayerTest, TestForward) { + LayerParameter layer_param; + MemoryDataParameter* md_param = layer_param.mutable_memory_data_param(); + md_param->set_batch_size(this->batch_size_); + md_param->set_channels(this->channels_); + md_param->set_height(this->height_); + md_param->set_width(this->width_); + shared_ptr > layer( + new MemoryDataLayer(layer_param)); + layer->SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); + layer->Reset(this->data_->mutable_cpu_data(), + this->labels_->mutable_cpu_data(), this->data_->num()); + for (int i = 0; i < this->batches_ * 6; ++i) { + int batch_num = i % this->batches_; + layer->Forward(this->blob_bottom_vec_, &(this->blob_top_vec_)); + for (int j = 0; j < this->data_blob_->count(); ++j) { + EXPECT_EQ(this->data_blob_->cpu_data()[j], + this->data_->cpu_data()[ + this->data_->offset(1) * this->batch_size_ * batch_num + j]); + } + for (int j = 0; j < this->label_blob_->count(); ++j) { + EXPECT_EQ(this->label_blob_->cpu_data()[j], + this->labels_->cpu_data()[this->batch_size_ * batch_num + j]); + } + } +} + +} // namespace caffe diff --git a/src/caffe/test/test_multinomial_logistic_loss_layer.cpp b/src/caffe/test/test_multinomial_logistic_loss_layer.cpp index 5169b708520..aa475ca27c7 100644 --- a/src/caffe/test/test_multinomial_logistic_loss_layer.cpp +++ b/src/caffe/test/test_multinomial_logistic_loss_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -25,14 +25,14 @@ class MultinomialLogisticLossLayerTest : public ::testing::Test { MultinomialLogisticLossLayerTest() : blob_bottom_data_(new Blob(10, 5, 1, 1)), blob_bottom_label_(new Blob(10, 1, 1, 1)) { + Caffe::set_random_seed(1701); // fill the values FillerParameter filler_param; PositiveUnitballFiller filler(filler_param); filler.Fill(this->blob_bottom_data_); blob_bottom_vec_.push_back(blob_bottom_data_); for (int i = 0; i < blob_bottom_label_->count(); ++i) { - // NOLINT_NEXT_LINE(runtime/threadsafe_fn) - blob_bottom_label_->mutable_cpu_data()[i] = rand() % 5; + blob_bottom_label_->mutable_cpu_data()[i] = caffe_rng_rand() % 5; } blob_bottom_vec_.push_back(blob_bottom_label_); } @@ -55,7 +55,7 @@ TYPED_TEST(MultinomialLogisticLossLayerTest, TestGradientCPU) { Caffe::set_mode(Caffe::CPU); MultinomialLogisticLossLayer layer(layer_param); layer.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); - GradientChecker checker(1e-2, 1e-2, 1701, 0, 0.05); + GradientChecker checker(1e-2, 2*1e-2, 1701, 0, 0.05); checker.CheckGradientSingle(&layer, &(this->blob_bottom_vec_), &(this->blob_top_vec_), 0, -1, -1); } diff --git a/src/caffe/test/test_net.cpp b/src/caffe/test/test_net.cpp new file mode 100644 index 00000000000..4c7f0e7f7ac --- /dev/null +++ b/src/caffe/test/test_net.cpp @@ -0,0 +1,136 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include +#include +#include + +#include "gtest/gtest.h" +#include "caffe/common.hpp" +#include "caffe/net.hpp" +#include "caffe/test/test_gradient_check_util.hpp" + +#include "caffe/test/test_caffe_main.hpp" + +namespace caffe { + + +template +class NetTest : public ::testing::Test { + protected: + virtual void SetUp() { // Create the leveldb + filename_ = tmpnam(NULL); // get temp name + LOG(INFO) << "Using temporary leveldb " << filename_; + leveldb::DB* db; + leveldb::Options options; + options.error_if_exists = true; + options.create_if_missing = true; + leveldb::Status status = leveldb::DB::Open(options, filename_, &db); + CHECK(status.ok()); + for (int i = 0; i < 5; ++i) { + Datum datum; + datum.set_label(i); + datum.set_channels(2); + datum.set_height(3); + datum.set_width(4); + std::string* data = datum.mutable_data(); + for (int j = 0; j < 24; ++j) { + data->push_back((uint8_t)i); + } + std::stringstream ss; + ss << i; + db->Put(leveldb::WriteOptions(), ss.str(), datum.SerializeAsString()); + } + delete db; + + const string& proto_prefix = + "name: 'TestNetwork' " + "layers: { " + " name: 'data' " + " type: DATA " + " data_param { "; + const string& proto_suffix = + " batch_size: 1 " + " } " + " top: 'data' " + " top: 'label' " + "} " + "layers: { " + " name: 'innerproduct' " + " type: INNER_PRODUCT " + " inner_product_param { " + " num_output: 1000 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0 " + " } " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " bottom: 'data' " + " top: 'innerproduct' " + "} " + "layers: { " + " name: 'loss' " + " type: SOFTMAX_LOSS " + " bottom: 'innerproduct' " + " bottom: 'label' " + "} "; + proto_ = proto_prefix + "source: '" + string(this->filename_) + + "' " + proto_suffix; + } + + char* filename_; + string proto_; +}; + +typedef ::testing::Types Dtypes; +TYPED_TEST_CASE(NetTest, Dtypes); + +TYPED_TEST(NetTest, TestHasBlob) { + NetParameter param; + CHECK(google::protobuf::TextFormat::ParseFromString(this->proto_, ¶m)); + Net net(param); + EXPECT_TRUE(net.has_blob("data")); + EXPECT_TRUE(net.has_blob("label")); + EXPECT_TRUE(net.has_blob("innerproduct")); + EXPECT_FALSE(net.has_blob("loss")); +} + +TYPED_TEST(NetTest, TestGetBlob) { + NetParameter param; + CHECK(google::protobuf::TextFormat::ParseFromString(this->proto_, ¶m)); + Net net(param); + EXPECT_EQ(net.blob_by_name("data"), net.blobs()[0]); + EXPECT_EQ(net.blob_by_name("label"), net.blobs()[1]); + EXPECT_EQ(net.blob_by_name("innerproduct"), net.blobs()[2]); + EXPECT_FALSE(net.blob_by_name("loss")); +} + +TYPED_TEST(NetTest, TestHasLayer) { + NetParameter param; + CHECK(google::protobuf::TextFormat::ParseFromString(this->proto_, ¶m)); + Net net(param); + EXPECT_TRUE(net.has_layer("data")); + EXPECT_TRUE(net.has_layer("innerproduct")); + EXPECT_TRUE(net.has_layer("loss")); + EXPECT_FALSE(net.has_layer("label")); +} + +TYPED_TEST(NetTest, TestGetLayerByName) { + NetParameter param; + CHECK(google::protobuf::TextFormat::ParseFromString(this->proto_, ¶m)); + Net net(param); + EXPECT_EQ(net.layer_by_name("data"), net.layers()[0]); + EXPECT_EQ(net.layer_by_name("innerproduct"), net.layers()[1]); + EXPECT_EQ(net.layer_by_name("loss"), net.layers()[2]); + EXPECT_FALSE(net.layer_by_name("label")); +} + +} // namespace caffe diff --git a/src/caffe/test/test_neuron_layer.cpp b/src/caffe/test/test_neuron_layer.cpp index b23670297ab..2210b4612ad 100644 --- a/src/caffe/test/test_neuron_layer.cpp +++ b/src/caffe/test/test_neuron_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -23,6 +23,7 @@ class NeuronLayerTest : public ::testing::Test { NeuronLayerTest() : blob_bottom_(new Blob(2, 3, 4, 5)), blob_top_(new Blob()) { + Caffe::set_random_seed(1701); // fill the values FillerParameter filler_param; GaussianFiller filler(filler_param); @@ -61,7 +62,7 @@ TYPED_TEST(NeuronLayerTest, TestReLUGradientCPU) { Caffe::set_mode(Caffe::CPU); ReLULayer layer(layer_param); GradientChecker checker(1e-2, 1e-3, 1701, 0., 0.01); - checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + checker.CheckGradientEltwise(&layer, &(this->blob_bottom_vec_), &(this->blob_top_vec_)); } @@ -87,7 +88,7 @@ TYPED_TEST(NeuronLayerTest, TestReLUGradientGPU) { Caffe::set_mode(Caffe::GPU); ReLULayer layer(layer_param); GradientChecker checker(1e-2, 1e-3, 1701, 0., 0.01); - checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + checker.CheckGradientEltwise(&layer, &(this->blob_bottom_vec_), &(this->blob_top_vec_)); } @@ -115,7 +116,7 @@ TYPED_TEST(NeuronLayerTest, TestSigmoidGradientCPU) { Caffe::set_mode(Caffe::CPU); SigmoidLayer layer(layer_param); GradientChecker checker(1e-2, 1e-3, 1701, 0., 0.01); - checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + checker.CheckGradientEltwise(&layer, &(this->blob_bottom_vec_), &(this->blob_top_vec_)); } @@ -142,7 +143,7 @@ TYPED_TEST(NeuronLayerTest, TestSigmoidGradientGPU) { Caffe::set_mode(Caffe::GPU); SigmoidLayer layer(layer_param); GradientChecker checker(1e-2, 1e-3, 1701, 0., 0.01); - checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + checker.CheckGradientEltwise(&layer, &(this->blob_bottom_vec_), &(this->blob_top_vec_)); } @@ -158,7 +159,7 @@ TYPED_TEST(NeuronLayerTest, TestDropoutCPU) { // Now, check values const TypeParam* bottom_data = this->blob_bottom_->cpu_data(); const TypeParam* top_data = this->blob_top_->cpu_data(); - float scale = 1. / (1. - layer_param.dropout_ratio()); + float scale = 1. / (1. - layer_param.dropout_param().dropout_ratio()); for (int i = 0; i < this->blob_bottom_->count(); ++i) { if (top_data[i] != 0) { EXPECT_EQ(top_data[i], bottom_data[i] * scale); @@ -170,9 +171,10 @@ TYPED_TEST(NeuronLayerTest, TestDropoutCPU) { TYPED_TEST(NeuronLayerTest, TestDropoutGradientCPU) { LayerParameter layer_param; Caffe::set_mode(Caffe::CPU); + Caffe::set_phase(Caffe::TRAIN); DropoutLayer layer(layer_param); GradientChecker checker(1e-2, 1e-3); - checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + checker.CheckGradientEltwise(&layer, &(this->blob_bottom_vec_), &(this->blob_top_vec_)); } @@ -187,7 +189,7 @@ TYPED_TEST(NeuronLayerTest, TestDropoutCPUTestPhase) { // Now, check values const TypeParam* bottom_data = this->blob_bottom_->cpu_data(); const TypeParam* top_data = this->blob_top_->cpu_data(); - float scale = 1. / (1. - layer_param.dropout_ratio()); + float scale = 1. / (1. - layer_param.dropout_param().dropout_ratio()); for (int i = 0; i < this->blob_bottom_->count(); ++i) { if (top_data[i] != 0) { EXPECT_EQ(top_data[i], bottom_data[i]); @@ -206,7 +208,7 @@ TYPED_TEST(NeuronLayerTest, TestDropoutGPU) { // Now, check values const TypeParam* bottom_data = this->blob_bottom_->cpu_data(); const TypeParam* top_data = this->blob_top_->cpu_data(); - float scale = 1. / (1. - layer_param.dropout_ratio()); + float scale = 1. / (1. - layer_param.dropout_param().dropout_ratio()); for (int i = 0; i < this->blob_bottom_->count(); ++i) { if (top_data[i] != 0) { EXPECT_EQ(top_data[i], bottom_data[i] * scale); @@ -219,6 +221,7 @@ TYPED_TEST(NeuronLayerTest, TestDropoutGradientGPU) { if (CAFFE_TEST_CUDA_PROP.major >= 2) { LayerParameter layer_param; Caffe::set_mode(Caffe::GPU); + Caffe::set_phase(Caffe::TRAIN); DropoutLayer layer(layer_param); GradientChecker checker(1e-2, 1e-3); // it is too expensive to call curand multiple times, so we don't do an @@ -241,7 +244,7 @@ TYPED_TEST(NeuronLayerTest, TestDropoutGPUTestPhase) { // Now, check values const TypeParam* bottom_data = this->blob_bottom_->cpu_data(); const TypeParam* top_data = this->blob_top_->cpu_data(); - float scale = 1. / (1. - layer_param.dropout_ratio()); + float scale = 1. / (1. - layer_param.dropout_param().dropout_ratio()); for (int i = 0; i < this->blob_bottom_->count(); ++i) { if (top_data[i] != 0) { EXPECT_EQ(top_data[i], bottom_data[i]); @@ -271,7 +274,7 @@ TYPED_TEST(NeuronLayerTest, TestBNLLGradientCPU) { Caffe::set_mode(Caffe::CPU); BNLLLayer layer(layer_param); GradientChecker checker(1e-2, 1e-3); - checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + checker.CheckGradientEltwise(&layer, &(this->blob_bottom_vec_), &(this->blob_top_vec_)); } @@ -297,7 +300,7 @@ TYPED_TEST(NeuronLayerTest, TestBNLLGradientGPU) { Caffe::set_mode(Caffe::GPU); BNLLLayer layer(layer_param); GradientChecker checker(1e-2, 1e-3); - checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + checker.CheckGradientEltwise(&layer, &(this->blob_bottom_vec_), &(this->blob_top_vec_)); } diff --git a/src/caffe/test/test_padding_layer.cpp b/src/caffe/test/test_padding_layer.cpp deleted file mode 100644 index ad1f6bf5928..00000000000 --- a/src/caffe/test/test_padding_layer.cpp +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright 2013 Yangqing Jia - -#include -#include -#include - -#include "gtest/gtest.h" -#include "caffe/blob.hpp" -#include "caffe/common.hpp" -#include "caffe/filler.hpp" -#include "caffe/vision_layers.hpp" -#include "caffe/test/test_gradient_check_util.hpp" - -#include "caffe/test/test_caffe_main.hpp" - -namespace caffe { - -extern cudaDeviceProp CAFFE_TEST_CUDA_PROP; - -template -class PaddingLayerTest : public ::testing::Test { - protected: - PaddingLayerTest() - : blob_bottom_(new Blob(2, 3, 4, 5)), - blob_top_(new Blob()) { - // fill the values - FillerParameter filler_param; - GaussianFiller filler(filler_param); - filler.Fill(this->blob_bottom_); - blob_bottom_vec_.push_back(blob_bottom_); - blob_top_vec_.push_back(blob_top_); - } - virtual ~PaddingLayerTest() { delete blob_bottom_; delete blob_top_; } - Blob* const blob_bottom_; - Blob* const blob_top_; - vector*> blob_bottom_vec_; - vector*> blob_top_vec_; -}; - -typedef ::testing::Types Dtypes; -TYPED_TEST_CASE(PaddingLayerTest, Dtypes); - -TYPED_TEST(PaddingLayerTest, TestCPU) { - LayerParameter layer_param; - layer_param.set_pad(1); - Caffe::set_mode(Caffe::CPU); - PaddingLayer layer(layer_param); - layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); - layer.Forward(this->blob_bottom_vec_, &(this->blob_top_vec_)); - EXPECT_EQ(this->blob_top_->num(), 2); - EXPECT_EQ(this->blob_top_->channels(), 3); - EXPECT_EQ(this->blob_top_->height(), 6); - EXPECT_EQ(this->blob_top_->width(), 7); - for (int n = 0; n < 2; ++n) { - for (int c = 0; c < 3; ++c) { - for (int h = 0; h < 4; ++h) { - for (int w = 0; w < 5; ++w) { - EXPECT_EQ(this->blob_bottom_->data_at(n, c, h, w), - this->blob_top_->data_at(n, c, h + 1, w + 1)); - } - } - } - } -} - -TYPED_TEST(PaddingLayerTest, TestCPUGrad) { - LayerParameter layer_param; - layer_param.set_pad(1); - Caffe::set_mode(Caffe::CPU); - PaddingLayer layer(layer_param); - GradientChecker checker(1e-2, 1e-3); - checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), - &(this->blob_top_vec_)); -} - -TYPED_TEST(PaddingLayerTest, TestGPU) { - if (CAFFE_TEST_CUDA_PROP.major >= 2) { - LayerParameter layer_param; - layer_param.set_pad(1); - Caffe::set_mode(Caffe::GPU); - PaddingLayer layer(layer_param); - layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); - layer.Forward(this->blob_bottom_vec_, &(this->blob_top_vec_)); - EXPECT_EQ(this->blob_top_->num(), 2); - EXPECT_EQ(this->blob_top_->channels(), 3); - EXPECT_EQ(this->blob_top_->height(), 6); - EXPECT_EQ(this->blob_top_->width(), 7); - for (int n = 0; n < 2; ++n) { - for (int c = 0; c < 3; ++c) { - for (int h = 0; h < 4; ++h) { - for (int w = 0; w < 5; ++w) { - EXPECT_EQ(this->blob_bottom_->data_at(n, c, h, w), - this->blob_top_->data_at(n, c, h + 1, w + 1)); - } - } - } - } - } else { - LOG(ERROR) << "Skipping test (gpu version too low)."; - } -} - -TYPED_TEST(PaddingLayerTest, TestGPUGrad) { - if (CAFFE_TEST_CUDA_PROP.major >= 2) { - LayerParameter layer_param; - layer_param.set_pad(1); - Caffe::set_mode(Caffe::GPU); - PaddingLayer layer(layer_param); - GradientChecker checker(1e-2, 1e-3); - checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), - &(this->blob_top_vec_)); - } else { - LOG(ERROR) << "Skipping test (gpu version too low)."; - } -} - -} // namespace caffe diff --git a/src/caffe/test/test_platform.cpp b/src/caffe/test/test_platform.cpp index bd2dcd3363a..c3868f34d9f 100644 --- a/src/caffe/test/test_platform.cpp +++ b/src/caffe/test/test_platform.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include diff --git a/src/caffe/test/test_pooling_layer.cpp b/src/caffe/test/test_pooling_layer.cpp index ae2e51ed993..41d4841f444 100644 --- a/src/caffe/test/test_pooling_layer.cpp +++ b/src/caffe/test/test_pooling_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -45,8 +45,9 @@ TYPED_TEST_CASE(PoolingLayerTest, Dtypes); TYPED_TEST(PoolingLayerTest, TestSetup) { LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); + PoolingParameter* pooling_param = layer_param.mutable_pooling_param(); + pooling_param->set_kernel_size(3); + pooling_param->set_stride(2); PoolingLayer layer(layer_param); layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); EXPECT_EQ(this->blob_top_->num(), this->blob_bottom_->num()); @@ -55,12 +56,28 @@ TYPED_TEST(PoolingLayerTest, TestSetup) { EXPECT_EQ(this->blob_top_->width(), 2); } +TYPED_TEST(PoolingLayerTest, TestSetupPadded) { + LayerParameter layer_param; + PoolingParameter* pooling_param = layer_param.mutable_pooling_param(); + pooling_param->set_kernel_size(3); + pooling_param->set_stride(2); + pooling_param->set_pad(1); + pooling_param->set_pool(PoolingParameter_PoolMethod_AVE); + PoolingLayer layer(layer_param); + layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); + EXPECT_EQ(this->blob_top_->num(), this->blob_bottom_->num()); + EXPECT_EQ(this->blob_top_->channels(), this->blob_bottom_->channels()); + EXPECT_EQ(this->blob_top_->height(), 4); + EXPECT_EQ(this->blob_top_->width(), 3); +} + /* TYPED_TEST(PoolingLayerTest, PrintGPUBackward) { LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); - layer_param.set_pool(LayerParameter_PoolMethod_MAX); + PoolingParameter* pooling_param = layer_param.mutable_pooling_param(); + pooling_param->set_kernel_size(3); + pooling_param->set_stride(2); + pooling_param->set_pool(PoolingParameter_PoolMethod_MAX); Caffe::set_mode(Caffe::GPU); PoolingLayer layer(layer_param); layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); @@ -84,9 +101,10 @@ TYPED_TEST(PoolingLayerTest, PrintGPUBackward) { TYPED_TEST(PoolingLayerTest, TestCPUGradientMax) { LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); - layer_param.set_pool(LayerParameter_PoolMethod_MAX); + PoolingParameter* pooling_param = layer_param.mutable_pooling_param(); + pooling_param->set_kernel_size(3); + pooling_param->set_stride(2); + pooling_param->set_pool(PoolingParameter_PoolMethod_MAX); Caffe::set_mode(Caffe::CPU); PoolingLayer layer(layer_param); GradientChecker checker(1e-4, 1e-2); @@ -96,9 +114,10 @@ TYPED_TEST(PoolingLayerTest, TestCPUGradientMax) { TYPED_TEST(PoolingLayerTest, TestGPUGradientMax) { LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); - layer_param.set_pool(LayerParameter_PoolMethod_MAX); + PoolingParameter* pooling_param = layer_param.mutable_pooling_param(); + pooling_param->set_kernel_size(3); + pooling_param->set_stride(2); + pooling_param->set_pool(PoolingParameter_PoolMethod_MAX); Caffe::set_mode(Caffe::GPU); PoolingLayer layer(layer_param); GradientChecker checker(1e-4, 1e-2); @@ -107,11 +126,78 @@ TYPED_TEST(PoolingLayerTest, TestGPUGradientMax) { } +TYPED_TEST(PoolingLayerTest, TestCPUForwardAve) { + LayerParameter layer_param; + PoolingParameter* pooling_param = layer_param.mutable_pooling_param(); + pooling_param->set_kernel_size(3); + pooling_param->set_stride(1); + pooling_param->set_pad(1); + pooling_param->set_pool(PoolingParameter_PoolMethod_AVE); + Caffe::set_mode(Caffe::CPU); + this->blob_bottom_->Reshape(1, 1, 3, 3); + FillerParameter filler_param; + filler_param.set_value(TypeParam(2)); + ConstantFiller filler(filler_param); + filler.Fill(this->blob_bottom_); + PoolingLayer layer(layer_param); + layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); + EXPECT_EQ(this->blob_top_->num(), 1); + EXPECT_EQ(this->blob_top_->channels(), 1); + EXPECT_EQ(this->blob_top_->height(), 3); + EXPECT_EQ(this->blob_top_->width(), 3); + layer.Forward(this->blob_bottom_vec_, &(this->blob_top_vec_)); + TypeParam epsilon = 1e-5; + EXPECT_NEAR(this->blob_top_->cpu_data()[0], 8.0 / 9, epsilon); + EXPECT_NEAR(this->blob_top_->cpu_data()[1], 4.0 / 3, epsilon); + EXPECT_NEAR(this->blob_top_->cpu_data()[2], 8.0 / 9, epsilon); + EXPECT_NEAR(this->blob_top_->cpu_data()[3], 4.0 / 3, epsilon); + EXPECT_NEAR(this->blob_top_->cpu_data()[4], 2.0 , epsilon); + EXPECT_NEAR(this->blob_top_->cpu_data()[5], 4.0 / 3, epsilon); + EXPECT_NEAR(this->blob_top_->cpu_data()[6], 8.0 / 9, epsilon); + EXPECT_NEAR(this->blob_top_->cpu_data()[7], 4.0 / 3, epsilon); + EXPECT_NEAR(this->blob_top_->cpu_data()[8], 8.0 / 9, epsilon); +} + + +TYPED_TEST(PoolingLayerTest, TestGPUForwardAve) { + LayerParameter layer_param; + PoolingParameter* pooling_param = layer_param.mutable_pooling_param(); + pooling_param->set_kernel_size(3); + pooling_param->set_stride(1); + pooling_param->set_pad(1); + pooling_param->set_pool(PoolingParameter_PoolMethod_AVE); + Caffe::set_mode(Caffe::GPU); + this->blob_bottom_->Reshape(1, 1, 3, 3); + FillerParameter filler_param; + filler_param.set_value(TypeParam(2)); + ConstantFiller filler(filler_param); + filler.Fill(this->blob_bottom_); + PoolingLayer layer(layer_param); + layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); + EXPECT_EQ(this->blob_top_->num(), 1); + EXPECT_EQ(this->blob_top_->channels(), 1); + EXPECT_EQ(this->blob_top_->height(), 3); + EXPECT_EQ(this->blob_top_->width(), 3); + layer.Forward(this->blob_bottom_vec_, &(this->blob_top_vec_)); + TypeParam epsilon = 1e-5; + EXPECT_NEAR(this->blob_top_->cpu_data()[0], 8.0 / 9, epsilon); + EXPECT_NEAR(this->blob_top_->cpu_data()[1], 4.0 / 3, epsilon); + EXPECT_NEAR(this->blob_top_->cpu_data()[2], 8.0 / 9, epsilon); + EXPECT_NEAR(this->blob_top_->cpu_data()[3], 4.0 / 3, epsilon); + EXPECT_NEAR(this->blob_top_->cpu_data()[4], 2.0 , epsilon); + EXPECT_NEAR(this->blob_top_->cpu_data()[5], 4.0 / 3, epsilon); + EXPECT_NEAR(this->blob_top_->cpu_data()[6], 8.0 / 9, epsilon); + EXPECT_NEAR(this->blob_top_->cpu_data()[7], 4.0 / 3, epsilon); + EXPECT_NEAR(this->blob_top_->cpu_data()[8], 8.0 / 9, epsilon); +} + + TYPED_TEST(PoolingLayerTest, TestCPUGradientAve) { LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); - layer_param.set_pool(LayerParameter_PoolMethod_AVE); + PoolingParameter* pooling_param = layer_param.mutable_pooling_param(); + pooling_param->set_kernel_size(3); + pooling_param->set_stride(2); + pooling_param->set_pool(PoolingParameter_PoolMethod_AVE); Caffe::set_mode(Caffe::CPU); PoolingLayer layer(layer_param); GradientChecker checker(1e-2, 1e-2); @@ -122,9 +208,40 @@ TYPED_TEST(PoolingLayerTest, TestCPUGradientAve) { TYPED_TEST(PoolingLayerTest, TestGPUGradientAve) { LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); - layer_param.set_pool(LayerParameter_PoolMethod_AVE); + PoolingParameter* pooling_param = layer_param.mutable_pooling_param(); + pooling_param->set_kernel_size(3); + pooling_param->set_stride(2); + pooling_param->set_pool(PoolingParameter_PoolMethod_AVE); + Caffe::set_mode(Caffe::GPU); + PoolingLayer layer(layer_param); + GradientChecker checker(1e-2, 1e-2); + checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + &(this->blob_top_vec_)); +} + + +TYPED_TEST(PoolingLayerTest, TestCPUGradientAvePadded) { + LayerParameter layer_param; + PoolingParameter* pooling_param = layer_param.mutable_pooling_param(); + pooling_param->set_kernel_size(3); + pooling_param->set_stride(2); + pooling_param->set_pad(2); + pooling_param->set_pool(PoolingParameter_PoolMethod_AVE); + Caffe::set_mode(Caffe::CPU); + PoolingLayer layer(layer_param); + GradientChecker checker(1e-2, 1e-2); + checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + &(this->blob_top_vec_)); +} + + +TYPED_TEST(PoolingLayerTest, TestGPUGradientAvePadded) { + LayerParameter layer_param; + PoolingParameter* pooling_param = layer_param.mutable_pooling_param(); + pooling_param->set_kernel_size(3); + pooling_param->set_stride(2); + pooling_param->set_pad(2); + pooling_param->set_pool(PoolingParameter_PoolMethod_AVE); Caffe::set_mode(Caffe::GPU); PoolingLayer layer(layer_param); GradientChecker checker(1e-2, 1e-2); diff --git a/src/caffe/test/test_power_layer.cpp b/src/caffe/test/test_power_layer.cpp new file mode 100644 index 00000000000..99b127d3dbc --- /dev/null +++ b/src/caffe/test/test_power_layer.cpp @@ -0,0 +1,256 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include + +#include "cuda_runtime.h" +#include "gtest/gtest.h" + +#include "caffe/blob.hpp" +#include "caffe/common.hpp" +#include "caffe/filler.hpp" +#include "caffe/vision_layers.hpp" +#include "caffe/test/test_gradient_check_util.hpp" + +#include "caffe/test/test_caffe_main.hpp" + +using std::isnan; + +namespace caffe { + +extern cudaDeviceProp CAFFE_TEST_CUDA_PROP; + +template +class PowerLayerTest : public ::testing::Test { + protected: + PowerLayerTest() + : blob_bottom_(new Blob(2, 3, 4, 5)), + blob_top_(new Blob()) { + Caffe::set_random_seed(1701); + // fill the values + FillerParameter filler_param; + GaussianFiller filler(filler_param); + filler.Fill(this->blob_bottom_); + blob_bottom_vec_.push_back(blob_bottom_); + blob_top_vec_.push_back(blob_top_); + } + virtual ~PowerLayerTest() { delete blob_bottom_; delete blob_top_; } + + void TestForward(Dtype power, Dtype scale, Dtype shift) { + LayerParameter layer_param; + layer_param.mutable_power_param()->set_power(power); + layer_param.mutable_power_param()->set_scale(scale); + layer_param.mutable_power_param()->set_shift(shift); + PowerLayer layer(layer_param); + layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); + layer.Forward(this->blob_bottom_vec_, &(this->blob_top_vec_)); + // Now, check values + const Dtype* bottom_data = this->blob_bottom_->cpu_data(); + const Dtype* top_data = this->blob_top_->cpu_data(); + const Dtype min_precision = 1e-5; + for (int i = 0; i < this->blob_bottom_->count(); ++i) { + Dtype expected_value = pow(shift + scale * bottom_data[i], power); + if (power == Dtype(0) || power == Dtype(1) || power == Dtype(2)) { + EXPECT_FALSE(isnan(top_data[i])); + } + if (isnan(expected_value)) { + EXPECT_TRUE(isnan(top_data[i])); + } else { + Dtype precision = max(Dtype(abs(expected_value * 0.0001)), + min_precision); + EXPECT_NEAR(expected_value, top_data[i], precision); + } + } + } + + void TestBackward(Dtype power, Dtype scale, Dtype shift) { + LayerParameter layer_param; + layer_param.mutable_power_param()->set_power(power); + layer_param.mutable_power_param()->set_scale(scale); + layer_param.mutable_power_param()->set_shift(shift); + PowerLayer layer(layer_param); + if (power != Dtype(0) && power != Dtype(1) && power != Dtype(2)) { + // Avoid NaNs by forcing (shift + scale * x) >= 0 + Dtype* bottom_data = this->blob_bottom_->mutable_cpu_data(); + Dtype min_value = -shift / scale; + for (int i = 0; i < this->blob_bottom_->count(); ++i) { + if (bottom_data[i] < min_value) { + bottom_data[i] = min_value + (min_value - bottom_data[i]); + } + } + } + GradientChecker checker(1e-2, 1e-2, 1701, 0., 0.01); + checker.CheckGradientEltwise(&layer, &(this->blob_bottom_vec_), + &(this->blob_top_vec_)); + } + + Blob* const blob_bottom_; + Blob* const blob_top_; + vector*> blob_bottom_vec_; + vector*> blob_top_vec_; +}; + +typedef ::testing::Types Dtypes; +TYPED_TEST_CASE(PowerLayerTest, Dtypes); + +TYPED_TEST(PowerLayerTest, TestPowerCPU) { + Caffe::set_mode(Caffe::CPU); + TypeParam power = 0.37; + TypeParam scale = 0.83; + TypeParam shift = -2.4; + this->TestForward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerGradientCPU) { + Caffe::set_mode(Caffe::CPU); + TypeParam power = 0.37; + TypeParam scale = 0.83; + TypeParam shift = -2.4; + this->TestBackward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerGradientShiftZeroCPU) { + Caffe::set_mode(Caffe::CPU); + TypeParam power = 0.37; + TypeParam scale = 0.83; + TypeParam shift = 0.0; + this->TestBackward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerZeroCPU) { + Caffe::set_mode(Caffe::CPU); + TypeParam power = 0.0; + TypeParam scale = 0.83; + TypeParam shift = -2.4; + this->TestForward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerZeroGradientCPU) { + Caffe::set_mode(Caffe::CPU); + TypeParam power = 0.0; + TypeParam scale = 0.83; + TypeParam shift = -2.4; + this->TestBackward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerOneCPU) { + Caffe::set_mode(Caffe::CPU); + TypeParam power = 1.0; + TypeParam scale = 0.83; + TypeParam shift = -2.4; + this->TestForward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerOneGradientCPU) { + Caffe::set_mode(Caffe::CPU); + TypeParam power = 1.0; + TypeParam scale = 0.83; + TypeParam shift = -2.4; + this->TestBackward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerTwoCPU) { + Caffe::set_mode(Caffe::CPU); + TypeParam power = 2.0; + TypeParam scale = 0.34; + TypeParam shift = -2.4; + this->TestForward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerTwoGradientCPU) { + Caffe::set_mode(Caffe::CPU); + TypeParam power = 2.0; + TypeParam scale = 0.83; + TypeParam shift = -2.4; + this->TestBackward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerTwoScaleHalfGradientCPU) { + Caffe::set_mode(Caffe::CPU); + TypeParam power = 2.0; + TypeParam scale = 0.5; + TypeParam shift = -2.4; + this->TestBackward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerGPU) { + Caffe::set_mode(Caffe::GPU); + TypeParam power = 0.37; + TypeParam scale = 0.83; + TypeParam shift = -2.4; + this->TestForward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerGradientGPU) { + Caffe::set_mode(Caffe::GPU); + TypeParam power = 0.37; + TypeParam scale = 0.83; + TypeParam shift = -2.4; + this->TestBackward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerGradientShiftZeroGPU) { + Caffe::set_mode(Caffe::GPU); + TypeParam power = 0.37; + TypeParam scale = 0.83; + TypeParam shift = 0.0; + this->TestBackward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerZeroGPU) { + Caffe::set_mode(Caffe::GPU); + TypeParam power = 0.0; + TypeParam scale = 0.83; + TypeParam shift = -2.4; + this->TestForward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerZeroGradientGPU) { + Caffe::set_mode(Caffe::GPU); + TypeParam power = 0.0; + TypeParam scale = 0.83; + TypeParam shift = -2.4; + this->TestBackward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerOneGPU) { + Caffe::set_mode(Caffe::GPU); + TypeParam power = 1.0; + TypeParam scale = 0.83; + TypeParam shift = -2.4; + this->TestForward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerOneGradientGPU) { + Caffe::set_mode(Caffe::GPU); + TypeParam power = 1.0; + TypeParam scale = 0.83; + TypeParam shift = -2.4; + this->TestBackward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerTwoGPU) { + Caffe::set_mode(Caffe::GPU); + TypeParam power = 2.0; + TypeParam scale = 0.34; + TypeParam shift = -2.4; + this->TestForward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerTwoGradientGPU) { + Caffe::set_mode(Caffe::GPU); + TypeParam power = 2.0; + TypeParam scale = 0.83; + TypeParam shift = -2.4; + this->TestBackward(power, scale, shift); +} + +TYPED_TEST(PowerLayerTest, TestPowerTwoScaleHalfGradientGPU) { + Caffe::set_mode(Caffe::GPU); + TypeParam power = 2.0; + TypeParam scale = 0.5; + TypeParam shift = -2.4; + this->TestBackward(power, scale, shift); +} + +} // namespace caffe diff --git a/src/caffe/test/test_protobuf.cpp b/src/caffe/test/test_protobuf.cpp index d8d511dd3bb..182af2e4611 100644 --- a/src/caffe/test/test_protobuf.cpp +++ b/src/caffe/test/test_protobuf.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. // This is simply a script that tries serializing protocol buffer in text // format. Nothing special here and no actual code is being tested. @@ -16,7 +16,7 @@ class ProtoTest : public ::testing::Test {}; TEST_F(ProtoTest, TestSerialization) { LayerParameter param; param.set_name("test"); - param.set_type("dummy"); + param.set_type(LayerParameter_LayerType_NONE); std::cout << "Printing in binary format." << std::endl; std::cout << param.SerializeAsString() << std::endl; std::cout << "Printing in text format." << std::endl; diff --git a/src/caffe/test/test_random_number_generator.cpp b/src/caffe/test/test_random_number_generator.cpp new file mode 100644 index 00000000000..62daf6087fd --- /dev/null +++ b/src/caffe/test/test_random_number_generator.cpp @@ -0,0 +1,519 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include +#include + +#include "gtest/gtest.h" +#include "caffe/common.hpp" +#include "caffe/syncedmem.hpp" +#include "caffe/util/math_functions.hpp" +#include "caffe/test/test_caffe_main.hpp" + +namespace caffe { + +template +class RandomNumberGeneratorTest : public ::testing::Test { + protected: + RandomNumberGeneratorTest() + : sample_size_(10000), + seed_(1701), + mean_bound_multiplier_(3.8), // ~99.99% confidence for test failure. + data_(new SyncedMemory(sample_size_ * sizeof(Dtype))), + data_2_(new SyncedMemory(sample_size_ * sizeof(Dtype))), + int_data_(new SyncedMemory(sample_size_ * sizeof(int))), + int_data_2_(new SyncedMemory(sample_size_ * sizeof(int))) {} + + virtual void SetUp() { + Caffe::set_random_seed(this->seed_); + } + + Dtype sample_mean(const Dtype* const seqs, const int sample_size) { + Dtype sum = 0; + for (int i = 0; i < sample_size; ++i) { + sum += seqs[i]; + } + return sum / sample_size; + } + + Dtype sample_mean(const Dtype* const seqs) { + return sample_mean(seqs, sample_size_); + } + + Dtype sample_mean(const int* const seqs, const int sample_size) { + Dtype sum = 0; + for (int i = 0; i < sample_size; ++i) { + sum += Dtype(seqs[i]); + } + return sum / sample_size; + } + + Dtype sample_mean(const int* const seqs) { + return sample_mean(seqs, sample_size_); + } + + Dtype mean_bound(const Dtype std, const int sample_size) { + return mean_bound_multiplier_ * std / sqrt(static_cast(sample_size)); + } + + Dtype mean_bound(const Dtype std) { + return mean_bound(std, sample_size_); + } + + void RngGaussianFill(const Dtype mu, const Dtype sigma, void* cpu_data) { + Dtype* rng_data = static_cast(cpu_data); + caffe_rng_gaussian(sample_size_, mu, sigma, rng_data); + } + + void RngGaussianFillGPU(const Dtype mu, const Dtype sigma, void* gpu_data) { + Dtype* rng_data = static_cast(gpu_data); + caffe_gpu_rng_gaussian(sample_size_, mu, sigma, rng_data); + } + + void RngGaussianChecks(const Dtype mu, const Dtype sigma, + const void* cpu_data, const Dtype sparse_p = 0) { + const Dtype* rng_data = static_cast(cpu_data); + const Dtype true_mean = mu; + const Dtype true_std = sigma; + // Check that sample mean roughly matches true mean. + const Dtype bound = this->mean_bound(true_std); + const Dtype sample_mean = this->sample_mean( + static_cast(cpu_data)); + EXPECT_NEAR(sample_mean, true_mean, bound); + // Check that roughly half the samples are above the true mean. + int num_above_mean = 0; + int num_below_mean = 0; + int num_mean = 0; + int num_nan = 0; + for (int i = 0; i < sample_size_; ++i) { + if (rng_data[i] > true_mean) { + ++num_above_mean; + } else if (rng_data[i] < true_mean) { + ++num_below_mean; + } else if (rng_data[i] == true_mean) { + ++num_mean; + } else { + ++num_nan; + } + } + EXPECT_EQ(0, num_nan); + if (sparse_p == Dtype(0)) { + EXPECT_EQ(0, num_mean); + } + const Dtype sample_p_above_mean = + static_cast(num_above_mean) / sample_size_; + const Dtype bernoulli_p = (1 - sparse_p) * 0.5; + const Dtype bernoulli_std = sqrt(bernoulli_p * (1 - bernoulli_p)); + const Dtype bernoulli_bound = this->mean_bound(bernoulli_std); + EXPECT_NEAR(bernoulli_p, sample_p_above_mean, bernoulli_bound); + } + + void RngUniformFill(const Dtype lower, const Dtype upper, void* cpu_data) { + CHECK_GE(upper, lower); + Dtype* rng_data = static_cast(cpu_data); + caffe_rng_uniform(sample_size_, lower, upper, rng_data); + } + + void RngUniformFillGPU(const Dtype lower, const Dtype upper, void* gpu_data) { + CHECK_GE(upper, lower); + Dtype* rng_data = static_cast(gpu_data); + caffe_gpu_rng_uniform(sample_size_, lower, upper, rng_data); + } + + // Fills with uniform integers in [0, UINT_MAX] using 2 argument form of + // caffe_gpu_rng_uniform. + void RngUniformIntFillGPU(void* gpu_data) { + unsigned int* rng_data = static_cast(gpu_data); + caffe_gpu_rng_uniform(sample_size_, rng_data); + } + + void RngUniformChecks(const Dtype lower, const Dtype upper, + const void* cpu_data, const Dtype sparse_p = 0) { + const Dtype* rng_data = static_cast(cpu_data); + const Dtype true_mean = (lower + upper) / 2; + const Dtype true_std = (upper - lower) / sqrt(12); + // Check that sample mean roughly matches true mean. + const Dtype bound = this->mean_bound(true_std); + const Dtype sample_mean = this->sample_mean(rng_data); + EXPECT_NEAR(sample_mean, true_mean, bound); + // Check that roughly half the samples are above the true mean, and none are + // above upper or below lower. + int num_above_mean = 0; + int num_below_mean = 0; + int num_mean = 0; + int num_nan = 0; + int num_above_upper = 0; + int num_below_lower = 0; + for (int i = 0; i < sample_size_; ++i) { + if (rng_data[i] > true_mean) { + ++num_above_mean; + } else if (rng_data[i] < true_mean) { + ++num_below_mean; + } else if (rng_data[i] == true_mean) { + ++num_mean; + } else { + ++num_nan; + } + if (rng_data[i] > upper) { + ++num_above_upper; + } else if (rng_data[i] < lower) { + ++num_below_lower; + } + } + EXPECT_EQ(0, num_nan); + EXPECT_EQ(0, num_above_upper); + EXPECT_EQ(0, num_below_lower); + if (sparse_p == Dtype(0)) { + EXPECT_EQ(0, num_mean); + } + const Dtype sample_p_above_mean = + static_cast(num_above_mean) / sample_size_; + const Dtype bernoulli_p = (1 - sparse_p) * 0.5; + const Dtype bernoulli_std = sqrt(bernoulli_p * (1 - bernoulli_p)); + const Dtype bernoulli_bound = this->mean_bound(bernoulli_std); + EXPECT_NEAR(bernoulli_p, sample_p_above_mean, bernoulli_bound); + } + + void RngBernoulliFill(const Dtype p, void* cpu_data) { + int* rng_data = static_cast(cpu_data); + caffe_rng_bernoulli(sample_size_, p, rng_data); + } + + void RngBernoulliChecks(const Dtype p, const void* cpu_data) { + const int* rng_data = static_cast(cpu_data); + const Dtype true_mean = p; + const Dtype true_std = sqrt(p * (1 - p)); + const Dtype bound = this->mean_bound(true_std); + const Dtype sample_mean = this->sample_mean(rng_data); + EXPECT_NEAR(sample_mean, true_mean, bound); + } + + int num_above_mean; + int num_below_mean; + + Dtype mean_bound_multiplier_; + + size_t sample_size_; + uint32_t seed_; + + shared_ptr data_; + shared_ptr data_2_; + shared_ptr int_data_; + shared_ptr int_data_2_; +}; + + +typedef ::testing::Types Dtypes; +TYPED_TEST_CASE(RandomNumberGeneratorTest, Dtypes); + + +TYPED_TEST(RandomNumberGeneratorTest, TestRngGaussian) { + const TypeParam mu = 0; + const TypeParam sigma = 1; + void* gaussian_data = this->data_->mutable_cpu_data(); + this->RngGaussianFill(mu, sigma, gaussian_data); + this->RngGaussianChecks(mu, sigma, gaussian_data); +} + + +TYPED_TEST(RandomNumberGeneratorTest, TestRngGaussian2) { + const TypeParam mu = -2; + const TypeParam sigma = 3; + void* gaussian_data = this->data_->mutable_cpu_data(); + this->RngGaussianFill(mu, sigma, gaussian_data); + this->RngGaussianChecks(mu, sigma, gaussian_data); +} + + +TYPED_TEST(RandomNumberGeneratorTest, TestRngUniform) { + const TypeParam lower = 0; + const TypeParam upper = 1; + void* uniform_data = this->data_->mutable_cpu_data(); + this->RngUniformFill(lower, upper, uniform_data); + this->RngUniformChecks(lower, upper, uniform_data); +} + + +TYPED_TEST(RandomNumberGeneratorTest, TestRngUniform2) { + const TypeParam lower = -7.3; + const TypeParam upper = -2.3; + void* uniform_data = this->data_->mutable_cpu_data(); + this->RngUniformFill(lower, upper, uniform_data); + this->RngUniformChecks(lower, upper, uniform_data); +} + + +TYPED_TEST(RandomNumberGeneratorTest, TestRngBernoulli) { + const TypeParam p = 0.3; + void* bernoulli_data = this->int_data_->mutable_cpu_data(); + this->RngBernoulliFill(p, bernoulli_data); + this->RngBernoulliChecks(p, bernoulli_data); +} + + +TYPED_TEST(RandomNumberGeneratorTest, TestRngBernoulli2) { + const TypeParam p = 0.9; + void* bernoulli_data = this->int_data_->mutable_cpu_data(); + this->RngBernoulliFill(p, bernoulli_data); + this->RngBernoulliChecks(p, bernoulli_data); +} + + +TYPED_TEST(RandomNumberGeneratorTest, TestRngGaussianTimesGaussian) { + const TypeParam mu = 0; + const TypeParam sigma = 1; + + // Sample from 0 mean Gaussian. + TypeParam* gaussian_data_1 = + static_cast(this->data_->mutable_cpu_data()); + this->RngGaussianFill(mu, sigma, gaussian_data_1); + + // Sample from 0 mean Gaussian again. + TypeParam* gaussian_data_2 = + static_cast(this->data_2_->mutable_cpu_data()); + this->RngGaussianFill(mu, sigma, gaussian_data_2); + + // Multiply Gaussians. + for (int i = 0; i < this->sample_size_; ++i) { + gaussian_data_1[i] *= gaussian_data_2[i]; + } + + // Check that result has mean 0. + TypeParam mu_product = pow(mu, 2); + TypeParam sigma_product = sqrt(pow(sigma, 2) / 2); + this->RngGaussianChecks(mu_product, sigma_product, gaussian_data_1); +} + + +TYPED_TEST(RandomNumberGeneratorTest, TestRngUniformTimesUniform) { + // Sample from Uniform on [-2, 2]. + const TypeParam lower_1 = -2; + const TypeParam upper_1 = -lower_1; + TypeParam* uniform_data_1 = + static_cast(this->data_->mutable_cpu_data()); + this->RngUniformFill(lower_1, upper_1, uniform_data_1); + + // Sample from Uniform on [-3, 3]. + const TypeParam lower_2 = -3; + const TypeParam upper_2 = -lower_2; + TypeParam* uniform_data_2 = + static_cast(this->data_2_->mutable_cpu_data()); + this->RngUniformFill(lower_2, upper_2, uniform_data_2); + + // Multiply Uniforms. + for (int i = 0; i < this->sample_size_; ++i) { + uniform_data_1[i] *= uniform_data_2[i]; + } + + // Check that result does not violate checked properties of Uniform on [-6, 6] + // (though it is not actually uniformly distributed). + const TypeParam lower_prod = lower_1 * upper_2; + const TypeParam upper_prod = -lower_prod; + this->RngUniformChecks(lower_prod, upper_prod, uniform_data_1); +} + + +TYPED_TEST(RandomNumberGeneratorTest, TestRngGaussianTimesBernoulli) { + // Sample from 0 mean Gaussian. + const TypeParam mu = 0; + const TypeParam sigma = 1; + TypeParam* gaussian_data = + static_cast(this->data_->mutable_cpu_data()); + this->RngGaussianFill(mu, sigma, gaussian_data); + + // Sample from Bernoulli with p = 0.3. + const TypeParam bernoulli_p = 0.3; + int* bernoulli_data = + static_cast(this->int_data_->mutable_cpu_data()); + this->RngBernoulliFill(bernoulli_p, bernoulli_data); + + // Multiply Gaussian by Bernoulli. + for (int i = 0; i < this->sample_size_; ++i) { + gaussian_data[i] *= bernoulli_data[i]; + } + + // Check that result does not violate checked properties of sparsified + // Gaussian (though it is not actually a Gaussian). + this->RngGaussianChecks(mu, sigma, gaussian_data, 1 - bernoulli_p); +} + + +TYPED_TEST(RandomNumberGeneratorTest, TestRngUniformTimesBernoulli) { + // Sample from Uniform on [-1, 1]. + const TypeParam lower = -1; + const TypeParam upper = 1; + TypeParam* uniform_data = + static_cast(this->data_->mutable_cpu_data()); + this->RngUniformFill(lower, upper, uniform_data); + + // Sample from Bernoulli with p = 0.3. + const TypeParam bernoulli_p = 0.3; + int* bernoulli_data = + static_cast(this->int_data_->mutable_cpu_data()); + this->RngBernoulliFill(bernoulli_p, bernoulli_data); + + // Multiply Uniform by Bernoulli. + for (int i = 0; i < this->sample_size_; ++i) { + uniform_data[i] *= bernoulli_data[i]; + } + + // Check that result does not violate checked properties of sparsified + // Uniform on [-1, 1] (though it is not actually uniformly distributed). + this->RngUniformChecks(lower, upper, uniform_data, 1 - bernoulli_p); +} + + +TYPED_TEST(RandomNumberGeneratorTest, TestRngBernoulliTimesBernoulli) { + // Sample from Bernoulli with p = 0.5. + const TypeParam p_a = 0.5; + int* bernoulli_data_a = + static_cast(this->int_data_->mutable_cpu_data()); + this->RngBernoulliFill(p_a, bernoulli_data_a); + + // Sample from Bernoulli with p = 0.3. + const TypeParam p_b = 0.3; + int* bernoulli_data_b = + static_cast(this->int_data_2_->mutable_cpu_data()); + this->RngBernoulliFill(p_b, bernoulli_data_b); + + // Multiply Bernoullis. + for (int i = 0; i < this->sample_size_; ++i) { + bernoulli_data_a[i] *= bernoulli_data_b[i]; + } + int num_ones = 0; + for (int i = 0; i < this->sample_size_; ++i) { + if (bernoulli_data_a[i] != TypeParam(0)) { + EXPECT_EQ(TypeParam(1), bernoulli_data_a[i]); + ++num_ones; + } + } + + // Check that resulting product has roughly p_a * p_b ones. + const TypeParam sample_p = this->sample_mean(bernoulli_data_a); + const TypeParam true_mean = p_a * p_b; + const TypeParam true_std = sqrt(true_mean * (1 - true_mean)); + const TypeParam bound = this->mean_bound(true_std); + EXPECT_NEAR(true_mean, sample_p, bound); +} + + +TYPED_TEST(RandomNumberGeneratorTest, TestRngGaussianGPU) { + const TypeParam mu = 0; + const TypeParam sigma = 1; + void* gaussian_gpu_data = this->data_->mutable_gpu_data(); + this->RngGaussianFillGPU(mu, sigma, gaussian_gpu_data); + const void* gaussian_data = this->data_->cpu_data(); + this->RngGaussianChecks(mu, sigma, gaussian_data); +} + + +TYPED_TEST(RandomNumberGeneratorTest, TestRngGaussian2GPU) { + const TypeParam mu = -2; + const TypeParam sigma = 3; + void* gaussian_gpu_data = this->data_->mutable_gpu_data(); + this->RngGaussianFillGPU(mu, sigma, gaussian_gpu_data); + const void* gaussian_data = this->data_->cpu_data(); + this->RngGaussianChecks(mu, sigma, gaussian_data); +} + + +TYPED_TEST(RandomNumberGeneratorTest, TestRngUniformGPU) { + const TypeParam lower = 0; + const TypeParam upper = 1; + void* uniform_gpu_data = this->data_->mutable_gpu_data(); + this->RngUniformFillGPU(lower, upper, uniform_gpu_data); + const void* uniform_data = this->data_->cpu_data(); + this->RngUniformChecks(lower, upper, uniform_data); +} + + +TYPED_TEST(RandomNumberGeneratorTest, TestRngUniform2GPU) { + const TypeParam lower = -7.3; + const TypeParam upper = -2.3; + void* uniform_gpu_data = this->data_->mutable_gpu_data(); + this->RngUniformFillGPU(lower, upper, uniform_gpu_data); + const void* uniform_data = this->data_->cpu_data(); + this->RngUniformChecks(lower, upper, uniform_data); +} + + +TYPED_TEST(RandomNumberGeneratorTest, TestRngUniformIntGPU) { + unsigned int* uniform_uint_gpu_data = + static_cast(this->int_data_->mutable_gpu_data()); + this->RngUniformIntFillGPU(uniform_uint_gpu_data); + const unsigned int* uniform_uint_data = + static_cast(this->int_data_->cpu_data()); + TypeParam* uniform_data = + static_cast(this->data_->mutable_cpu_data()); + for (int i = 0; i < this->sample_size_; ++i) { + uniform_data[i] = static_cast(uniform_uint_data[i]); + } + const TypeParam lower = 0; + const TypeParam upper = UINT_MAX; + this->RngUniformChecks(lower, upper, uniform_data); +} + + +TYPED_TEST(RandomNumberGeneratorTest, TestRngGaussianTimesGaussianGPU) { + const TypeParam mu = 0; + const TypeParam sigma = 1; + + // Sample from 0 mean Gaussian. + TypeParam* gaussian_gpu_data_1 = + static_cast(this->data_->mutable_gpu_data()); + this->RngGaussianFillGPU(mu, sigma, gaussian_gpu_data_1); + + // Sample from 0 mean Gaussian again. + TypeParam* gaussian_gpu_data_2 = + static_cast(this->data_2_->mutable_gpu_data()); + this->RngGaussianFillGPU(mu, sigma, gaussian_gpu_data_2); + + // Multiply Gaussians. + TypeParam* gaussian_data_1 = + static_cast(this->data_->mutable_cpu_data()); + const TypeParam* gaussian_data_2 = + static_cast(this->data_2_->cpu_data()); + for (int i = 0; i < this->sample_size_; ++i) { + gaussian_data_1[i] *= gaussian_data_2[i]; + } + + // Check that result does not violate checked properties of Gaussian + // (though it is not actually a Gaussian). + TypeParam mu_product = pow(mu, 2); + TypeParam sigma_product = sqrt(pow(sigma, 2) / 2); + this->RngGaussianChecks(mu_product, sigma_product, gaussian_data_1); +} + + +TYPED_TEST(RandomNumberGeneratorTest, TestRngUniformTimesUniformGPU) { + // Sample from Uniform on [-2, 2]. + const TypeParam lower_1 = -2; + const TypeParam upper_1 = -lower_1; + TypeParam* uniform_gpu_data_1 = + static_cast(this->data_->mutable_gpu_data()); + this->RngUniformFillGPU(lower_1, upper_1, uniform_gpu_data_1); + + // Sample from Uniform on [-3, 3]. + const TypeParam lower_2 = -3; + const TypeParam upper_2 = -lower_2; + TypeParam* uniform_gpu_data_2 = + static_cast(this->data_2_->mutable_gpu_data()); + this->RngUniformFillGPU(lower_2, upper_2, uniform_gpu_data_2); + + // Multiply Uniforms. + TypeParam* uniform_data_1 = + static_cast(this->data_->mutable_cpu_data()); + const TypeParam* uniform_data_2 = + static_cast(this->data_2_->cpu_data()); + for (int i = 0; i < this->sample_size_; ++i) { + uniform_data_1[i] *= uniform_data_2[i]; + } + + // Check that result does not violate properties of Uniform on [-7, -3]. + const TypeParam lower_prod = lower_1 * upper_2; + const TypeParam upper_prod = -lower_prod; + this->RngUniformChecks(lower_prod, upper_prod, uniform_data_1); +} + + +} // namespace caffe diff --git a/src/caffe/test/test_sigmoid_cross_entropy_loss_layer.cpp b/src/caffe/test/test_sigmoid_cross_entropy_loss_layer.cpp new file mode 100644 index 00000000000..d8018be0c25 --- /dev/null +++ b/src/caffe/test/test_sigmoid_cross_entropy_loss_layer.cpp @@ -0,0 +1,134 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include +#include +#include + +#include "gtest/gtest.h" +#include "caffe/blob.hpp" +#include "caffe/common.hpp" +#include "caffe/filler.hpp" +#include "caffe/vision_layers.hpp" +#include "caffe/test/test_gradient_check_util.hpp" + +#include "caffe/test/test_caffe_main.hpp" + +namespace caffe { + +extern cudaDeviceProp CAFFE_TEST_CUDA_PROP; + +template +class SigmoidCrossEntropyLossLayerTest : public ::testing::Test { + protected: + SigmoidCrossEntropyLossLayerTest() + : blob_bottom_data_(new Blob(10, 5, 1, 1)), + blob_bottom_targets_(new Blob(10, 5, 1, 1)) { + // Fill the data vector + FillerParameter data_filler_param; + data_filler_param.set_std(1); + GaussianFiller data_filler(data_filler_param); + data_filler.Fill(blob_bottom_data_); + blob_bottom_vec_.push_back(blob_bottom_data_); + // Fill the targets vector + FillerParameter targets_filler_param; + targets_filler_param.set_min(0); + targets_filler_param.set_max(1); + UniformFiller targets_filler(targets_filler_param); + targets_filler.Fill(blob_bottom_targets_); + blob_bottom_vec_.push_back(blob_bottom_targets_); + } + virtual ~SigmoidCrossEntropyLossLayerTest() { + delete blob_bottom_data_; + delete blob_bottom_targets_; + } + + Dtype SigmoidCrossEntropyLossReference(const int count, const int num, + const Dtype* input, + const Dtype* target) { + Dtype loss = 0; + for (int i = 0; i < count; ++i) { + const Dtype prediction = 1 / (1 + exp(-input[i])); + EXPECT_LE(prediction, 1); + EXPECT_GE(prediction, 0); + EXPECT_LE(target[i], 1); + EXPECT_GE(target[i], 0); + loss -= target[i] * log(prediction + (target[i] == Dtype(0))); + loss -= (1 - target[i]) * log(1 - prediction + (target[i] == Dtype(1))); + } + return loss / num; + } + + void TestForward() { + LayerParameter layer_param; + FillerParameter data_filler_param; + data_filler_param.set_std(1); + GaussianFiller data_filler(data_filler_param); + FillerParameter targets_filler_param; + targets_filler_param.set_min(0.0); + targets_filler_param.set_max(1.0); + UniformFiller targets_filler(targets_filler_param); + Dtype eps = 2e-2; + int num_inf = 0; + for (int i = 0; i < 100; ++i) { + // Fill the data vector + data_filler.Fill(this->blob_bottom_data_); + // Fill the targets vector + targets_filler.Fill(this->blob_bottom_targets_); + SigmoidCrossEntropyLossLayer layer(layer_param); + layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); + Dtype layer_loss = + layer.Forward(this->blob_bottom_vec_, &(this->blob_top_vec_)); + const int count = this->blob_bottom_data_->count(); + const int num = this->blob_bottom_data_->num(); + const Dtype* blob_bottom_data = this->blob_bottom_data_->cpu_data(); + const Dtype* blob_bottom_targets = + this->blob_bottom_targets_->cpu_data(); + Dtype reference_loss = this->SigmoidCrossEntropyLossReference( + count, num, blob_bottom_data, blob_bottom_targets); + EXPECT_NEAR(reference_loss, layer_loss, eps) << "debug: trial #" << i; + } + } + + Blob* const blob_bottom_data_; + Blob* const blob_bottom_targets_; + vector*> blob_bottom_vec_; + vector*> blob_top_vec_; +}; + +typedef ::testing::Types Dtypes; +TYPED_TEST_CASE(SigmoidCrossEntropyLossLayerTest, Dtypes); + + +TYPED_TEST(SigmoidCrossEntropyLossLayerTest, TestSigmoidCrossEntropyLossCPU) { + Caffe::set_mode(Caffe::CPU); + this->TestForward(); +} + +TYPED_TEST(SigmoidCrossEntropyLossLayerTest, TestSigmoidCrossEntropyLossGPU) { + Caffe::set_mode(Caffe::GPU); + this->TestForward(); +} + +TYPED_TEST(SigmoidCrossEntropyLossLayerTest, TestGradientCPU) { + LayerParameter layer_param; + Caffe::set_mode(Caffe::CPU); + SigmoidCrossEntropyLossLayer layer(layer_param); + layer.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + GradientChecker checker(1e-2, 1e-2, 1701); + checker.CheckGradientSingle(&layer, &(this->blob_bottom_vec_), + &(this->blob_top_vec_), 0, -1, -1); +} + +TYPED_TEST(SigmoidCrossEntropyLossLayerTest, TestGradientGPU) { + LayerParameter layer_param; + Caffe::set_mode(Caffe::GPU); + SigmoidCrossEntropyLossLayer layer(layer_param); + layer.SetUp(this->blob_bottom_vec_, &this->blob_top_vec_); + GradientChecker checker(1e-2, 1e-2, 1701); + checker.CheckGradientSingle(&layer, &(this->blob_bottom_vec_), + &(this->blob_top_vec_), 0, -1, -1); +} + + +} // namespace caffe diff --git a/src/caffe/test/test_softmax_layer.cpp b/src/caffe/test/test_softmax_layer.cpp index 1d4260a5620..3ba302d4c60 100644 --- a/src/caffe/test/test_softmax_layer.cpp +++ b/src/caffe/test/test_softmax_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include diff --git a/src/caffe/test/test_softmax_with_loss_layer.cpp b/src/caffe/test/test_softmax_with_loss_layer.cpp index 77668e54b79..8b8be8e8b6d 100644 --- a/src/caffe/test/test_softmax_with_loss_layer.cpp +++ b/src/caffe/test/test_softmax_with_loss_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -32,8 +32,7 @@ class SoftmaxWithLossLayerTest : public ::testing::Test { filler.Fill(this->blob_bottom_data_); blob_bottom_vec_.push_back(blob_bottom_data_); for (int i = 0; i < blob_bottom_label_->count(); ++i) { - // NOLINT_NEXT_LINE(runtime/threadsafe_fn) - blob_bottom_label_->mutable_cpu_data()[i] = rand() % 5; + blob_bottom_label_->mutable_cpu_data()[i] = caffe_rng_rand() % 5; } blob_bottom_vec_.push_back(blob_bottom_label_); } diff --git a/src/caffe/test/test_split_layer.cpp b/src/caffe/test/test_split_layer.cpp index afec9c9dc4a..327bcf937ac 100644 --- a/src/caffe/test/test_split_layer.cpp +++ b/src/caffe/test/test_split_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2014 Jeff Donahue +// Copyright 2014 BVLC and contributors. #include #include @@ -121,7 +121,7 @@ TYPED_TEST(SplitLayerTest, TestCPUGradient) { Caffe::set_mode(Caffe::CPU); SplitLayer layer(layer_param); GradientChecker checker(1e-2, 1e-2); - checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + checker.CheckGradientEltwise(&layer, &(this->blob_bottom_vec_), &(this->blob_top_vec_)); } @@ -130,7 +130,7 @@ TYPED_TEST(SplitLayerTest, TestGPUGradient) { Caffe::set_mode(Caffe::GPU); SplitLayer layer(layer_param); GradientChecker checker(1e-2, 1e-2); - checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + checker.CheckGradientEltwise(&layer, &(this->blob_bottom_vec_), &(this->blob_top_vec_)); } @@ -140,7 +140,7 @@ TYPED_TEST(SplitLayerTest, TestCPUGradientInPlace) { SplitLayer layer(layer_param); GradientChecker checker(1e-2, 1e-2); this->blob_top_vec_[0] = this->blob_bottom_vec_[0]; - checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + checker.CheckGradientEltwise(&layer, &(this->blob_bottom_vec_), &(this->blob_top_vec_)); } @@ -150,17 +150,16 @@ TYPED_TEST(SplitLayerTest, TestGPUGradientInPlace) { SplitLayer layer(layer_param); GradientChecker checker(1e-2, 1e-2); this->blob_top_vec_[0] = this->blob_bottom_vec_[0]; - checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + checker.CheckGradientEltwise(&layer, &(this->blob_bottom_vec_), &(this->blob_top_vec_)); } -template class SplitLayerInsertionTest : public ::testing::Test { protected: void RunInsertionTest( const string& input_param_string, const string& output_param_string) { - // Test that insert_splits called on the proto specified by + // Test that InsertSplits called on the proto specified by // input_param_string results in the proto specified by // output_param_string. NetParameter input_param; @@ -170,119 +169,100 @@ class SplitLayerInsertionTest : public ::testing::Test { CHECK(google::protobuf::TextFormat::ParseFromString( output_param_string, &expected_output_param)); NetParameter actual_output_param; - insert_splits(input_param, &actual_output_param); + InsertSplits(input_param, &actual_output_param); EXPECT_EQ(expected_output_param.DebugString(), actual_output_param.DebugString()); // Also test idempotence. NetParameter double_split_insert_param; - insert_splits(actual_output_param, &double_split_insert_param); + InsertSplits(actual_output_param, &double_split_insert_param); EXPECT_EQ(actual_output_param.DebugString(), double_split_insert_param.DebugString()); } }; -typedef ::testing::Types InsertionDtypes; -TYPED_TEST_CASE(SplitLayerInsertionTest, InsertionDtypes); - -TYPED_TEST(SplitLayerInsertionTest, TestNoInsertion1) { +TEST_F(SplitLayerInsertionTest, TestNoInsertion1) { const string& input_proto = "name: 'TestNetwork' " "layers: { " - " layer { " - " name: 'data' " - " type: 'data' " - " } " + " name: 'data' " + " type: DATA " " top: 'data' " " top: 'label' " "} " "layers: { " - " layer { " - " name: 'innerprod' " - " type: 'inner_product' " - " } " + " name: 'innerprod' " + " type: INNER_PRODUCT " " bottom: 'data' " " top: 'innerprod' " "} " "layers: { " - " layer { " - " name: 'loss' " - " type: 'softmax_with_loss' " - " } " + " name: 'loss' " + " type: SOFTMAX_LOSS " " bottom: 'innerprod' " " bottom: 'label' " "} "; this->RunInsertionTest(input_proto, input_proto); } -TYPED_TEST(SplitLayerInsertionTest, TestNoInsertion2) { +TEST_F(SplitLayerInsertionTest, TestNoInsertion2) { const string& input_proto = "name: 'TestNetwork' " "layers: { " - " layer { " - " name: 'data' " - " type: 'data' " - " } " + " name: 'data' " + " type: DATA " " top: 'data' " " top: 'label' " "} " "layers: { " - " layer { " - " name: 'data_split' " - " type: 'split' " - " } " + " name: 'data_split' " + " type: SPLIT " " bottom: 'data' " " top: 'data_split_0' " " top: 'data_split_1' " "} " "layers: { " - " layer { " - " name: 'innerprod1' " - " type: 'inner_product' " - " } " + " name: 'innerprod1' " + " type: INNER_PRODUCT " " bottom: 'data_split_0' " " top: 'innerprod1' " "} " "layers: { " - " layer { " - " name: 'innerprod2' " - " type: 'inner_product' " - " } " + " name: 'innerprod2' " + " type: INNER_PRODUCT " " bottom: 'data_split_1' " " top: 'innerprod2' " "} " "layers: { " - " layer { " - " name: 'loss' " - " type: 'euclidean_loss' " - " } " + " name: 'loss' " + " type: EUCLIDEAN_LOSS " " bottom: 'innerprod1' " " bottom: 'innerprod2' " "} "; this->RunInsertionTest(input_proto, input_proto); } -TYPED_TEST(SplitLayerInsertionTest, TestNoInsertionImageNet) { +TEST_F(SplitLayerInsertionTest, TestNoInsertionImageNet) { const string& input_proto = "name: 'CaffeNet' " "layers { " - " layer { " - " name: 'data' " - " type: 'data' " + " name: 'data' " + " type: DATA " + " data_param { " " source: '/home/jiayq/Data/ILSVRC12/train-leveldb' " - " meanfile: '/home/jiayq/Data/ILSVRC12/image_mean.binaryproto' " - " batchsize: 256 " - " cropsize: 227 " + " mean_file: '/home/jiayq/Data/ILSVRC12/image_mean.binaryproto' " + " batch_size: 256 " + " crop_size: 227 " " mirror: true " " } " " top: 'data' " " top: 'label' " "} " "layers { " - " layer { " - " name: 'conv1' " - " type: 'conv' " + " name: 'conv1' " + " type: CONVOLUTION " + " convolution_param { " " num_output: 96 " - " kernelsize: 11 " + " kernel_size: 11 " " stride: 4 " " weight_filler { " " type: 'gaussian' " @@ -292,37 +272,35 @@ TYPED_TEST(SplitLayerInsertionTest, TestNoInsertionImageNet) { " type: 'constant' " " value: 0. " " } " - " blobs_lr: 1. " - " blobs_lr: 2. " - " weight_decay: 1. " - " weight_decay: 0. " " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " " bottom: 'data' " " top: 'conv1' " "} " "layers { " - " layer { " - " name: 'relu1' " - " type: 'relu' " - " } " + " name: 'relu1' " + " type: RELU " " bottom: 'conv1' " " top: 'conv1' " "} " "layers { " - " layer { " - " name: 'pool1' " - " type: 'pool' " + " name: 'pool1' " + " type: POOLING " + " pooling_param { " " pool: MAX " - " kernelsize: 3 " + " kernel_size: 3 " " stride: 2 " " } " " bottom: 'conv1' " " top: 'pool1' " "} " "layers { " - " layer { " - " name: 'norm1' " - " type: 'lrn' " + " name: 'norm1' " + " type: LRN " + " lrn_param { " " local_size: 5 " " alpha: 0.0001 " " beta: 0.75 " @@ -331,21 +309,13 @@ TYPED_TEST(SplitLayerInsertionTest, TestNoInsertionImageNet) { " top: 'norm1' " "} " "layers { " - " layer { " - " name: 'pad2' " - " type: 'padding' " - " pad: 2 " - " } " - " bottom: 'norm1' " - " top: 'pad2' " - "} " - "layers { " - " layer { " - " name: 'conv2' " - " type: 'conv' " + " name: 'conv2' " + " type: CONVOLUTION " + " convolution_param { " " num_output: 256 " " group: 2 " - " kernelsize: 5 " + " kernel_size: 5 " + " pad: 2 " " weight_filler { " " type: 'gaussian' " " std: 0.01 " @@ -354,37 +324,35 @@ TYPED_TEST(SplitLayerInsertionTest, TestNoInsertionImageNet) { " type: 'constant' " " value: 1. " " } " - " blobs_lr: 1. " - " blobs_lr: 2. " - " weight_decay: 1. " - " weight_decay: 0. " " } " - " bottom: 'pad2' " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " bottom: 'norm1' " " top: 'conv2' " "} " "layers { " - " layer { " - " name: 'relu2' " - " type: 'relu' " - " } " + " name: 'relu2' " + " type: RELU " " bottom: 'conv2' " " top: 'conv2' " "} " "layers { " - " layer { " - " name: 'pool2' " - " type: 'pool' " + " name: 'pool2' " + " type: POOLING " + " pooling_param { " " pool: MAX " - " kernelsize: 3 " + " kernel_size: 3 " " stride: 2 " " } " " bottom: 'conv2' " " top: 'pool2' " "} " "layers { " - " layer { " - " name: 'norm2' " - " type: 'lrn' " + " name: 'norm2' " + " type: LRN " + " lrn_param { " " local_size: 5 " " alpha: 0.0001 " " beta: 0.75 " @@ -393,20 +361,12 @@ TYPED_TEST(SplitLayerInsertionTest, TestNoInsertionImageNet) { " top: 'norm2' " "} " "layers { " - " layer { " - " name: 'pad3' " - " type: 'padding' " - " pad: 1 " - " } " - " bottom: 'norm2' " - " top: 'pad3' " - "} " - "layers { " - " layer { " - " name: 'conv3' " - " type: 'conv' " + " name: 'conv3' " + " type: CONVOLUTION " + " convolution_param { " " num_output: 384 " - " kernelsize: 3 " + " kernel_size: 3 " + " pad: 1 " " weight_filler { " " type: 'gaussian' " " std: 0.01 " @@ -415,38 +375,28 @@ TYPED_TEST(SplitLayerInsertionTest, TestNoInsertionImageNet) { " type: 'constant' " " value: 0. " " } " - " blobs_lr: 1. " - " blobs_lr: 2. " - " weight_decay: 1. " - " weight_decay: 0. " " } " - " bottom: 'pad3' " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " bottom: 'norm2' " " top: 'conv3' " "} " "layers { " - " layer { " - " name: 'relu3' " - " type: 'relu' " - " } " + " name: 'relu3' " + " type: RELU " " bottom: 'conv3' " " top: 'conv3' " "} " "layers { " - " layer { " - " name: 'pad4' " - " type: 'padding' " - " pad: 1 " - " } " - " bottom: 'conv3' " - " top: 'pad4' " - "} " - "layers { " - " layer { " - " name: 'conv4' " - " type: 'conv' " + " name: 'conv4' " + " type: CONVOLUTION " + " convolution_param { " " num_output: 384 " " group: 2 " - " kernelsize: 3 " + " kernel_size: 3 " + " pad: 1 " " weight_filler { " " type: 'gaussian' " " std: 0.01 " @@ -455,38 +405,28 @@ TYPED_TEST(SplitLayerInsertionTest, TestNoInsertionImageNet) { " type: 'constant' " " value: 1. " " } " - " blobs_lr: 1. " - " blobs_lr: 2. " - " weight_decay: 1. " - " weight_decay: 0. " " } " - " bottom: 'pad4' " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " bottom: 'conv3' " " top: 'conv4' " "} " "layers { " - " layer { " - " name: 'relu4' " - " type: 'relu' " - " } " + " name: 'relu4' " + " type: RELU " " bottom: 'conv4' " " top: 'conv4' " "} " "layers { " - " layer { " - " name: 'pad5' " - " type: 'padding' " - " pad: 1 " - " } " - " bottom: 'conv4' " - " top: 'pad5' " - "} " - "layers { " - " layer { " - " name: 'conv5' " - " type: 'conv' " + " name: 'conv5' " + " type: CONVOLUTION " + " convolution_param { " " num_output: 256 " " group: 2 " - " kernelsize: 3 " + " kernel_size: 3 " + " pad: 1 " " weight_filler { " " type: 'gaussian' " " std: 0.01 " @@ -495,27 +435,25 @@ TYPED_TEST(SplitLayerInsertionTest, TestNoInsertionImageNet) { " type: 'constant' " " value: 1. " " } " - " blobs_lr: 1. " - " blobs_lr: 2. " - " weight_decay: 1. " - " weight_decay: 0. " " } " - " bottom: 'pad5' " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " bottom: 'conv4' " " top: 'conv5' " "} " "layers { " - " layer { " - " name: 'relu5' " - " type: 'relu' " - " } " + " name: 'relu5' " + " type: RELU " " bottom: 'conv5' " " top: 'conv5' " "} " "layers { " - " layer { " - " name: 'pool5' " - " type: 'pool' " - " kernelsize: 3 " + " name: 'pool5' " + " type: POOLING " + " pooling_param { " + " kernel_size: 3 " " pool: MAX " " stride: 2 " " } " @@ -523,9 +461,9 @@ TYPED_TEST(SplitLayerInsertionTest, TestNoInsertionImageNet) { " top: 'pool5' " "} " "layers { " - " layer { " - " name: 'fc6' " - " type: 'innerproduct' " + " name: 'fc6' " + " type: INNER_PRODUCT " + " inner_product_param { " " num_output: 4096 " " weight_filler { " " type: 'gaussian' " @@ -535,35 +473,33 @@ TYPED_TEST(SplitLayerInsertionTest, TestNoInsertionImageNet) { " type: 'constant' " " value: 1. " " } " - " blobs_lr: 1. " - " blobs_lr: 2. " - " weight_decay: 1. " - " weight_decay: 0. " " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " " bottom: 'pool5' " " top: 'fc6' " "} " "layers { " - " layer { " - " name: 'relu6' " - " type: 'relu' " - " } " + " name: 'relu6' " + " type: RELU " " bottom: 'fc6' " " top: 'fc6' " "} " "layers { " - " layer { " - " name: 'drop6' " - " type: 'dropout' " + " name: 'drop6' " + " type: DROPOUT " + " dropout_param { " " dropout_ratio: 0.5 " " } " " bottom: 'fc6' " " top: 'fc6' " "} " "layers { " - " layer { " - " name: 'fc7' " - " type: 'innerproduct' " + " name: 'fc7' " + " type: INNER_PRODUCT " + " inner_product_param { " " num_output: 4096 " " weight_filler { " " type: 'gaussian' " @@ -573,35 +509,33 @@ TYPED_TEST(SplitLayerInsertionTest, TestNoInsertionImageNet) { " type: 'constant' " " value: 1. " " } " - " blobs_lr: 1. " - " blobs_lr: 2. " - " weight_decay: 1. " - " weight_decay: 0. " " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " " bottom: 'fc6' " " top: 'fc7' " "} " "layers { " - " layer { " - " name: 'relu7' " - " type: 'relu' " - " } " + " name: 'relu7' " + " type: RELU " " bottom: 'fc7' " " top: 'fc7' " "} " "layers { " - " layer { " - " name: 'drop7' " - " type: 'dropout' " + " name: 'drop7' " + " type: DROPOUT " + " dropout_param { " " dropout_ratio: 0.5 " " } " " bottom: 'fc7' " " top: 'fc7' " "} " "layers { " - " layer { " - " name: 'fc8' " - " type: 'innerproduct' " + " name: 'fc8' " + " type: INNER_PRODUCT " + " inner_product_param { " " num_output: 1000 " " weight_filler { " " type: 'gaussian' " @@ -611,325 +545,255 @@ TYPED_TEST(SplitLayerInsertionTest, TestNoInsertionImageNet) { " type: 'constant' " " value: 0 " " } " - " blobs_lr: 1. " - " blobs_lr: 2. " - " weight_decay: 1. " - " weight_decay: 0. " " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " " bottom: 'fc7' " " top: 'fc8' " "} " "layers { " - " layer { " - " name: 'loss' " - " type: 'softmax_loss' " - " } " + " name: 'loss' " + " type: SOFTMAX_LOSS " " bottom: 'fc8' " " bottom: 'label' " "} "; this->RunInsertionTest(input_proto, input_proto); } -TYPED_TEST(SplitLayerInsertionTest, TestInsertionWithInPlace) { +TEST_F(SplitLayerInsertionTest, TestNoInsertionWithInPlace) { const string& input_proto = "name: 'TestNetwork' " "layers: { " - " layer { " - " name: 'data' " - " type: 'data' " - " } " + " name: 'data' " + " type: DATA " " top: 'data' " " top: 'label' " "} " "layers: { " - " layer { " - " name: 'innerprod' " - " type: 'inner_product' " - " } " + " name: 'innerprod' " + " type: INNER_PRODUCT " " bottom: 'data' " " top: 'innerprod' " "} " "layers: { " - " layer { " - " name: 'relu' " - " type: 'relu' " - " } " + " name: 'relu' " + " type: RELU " " bottom: 'innerprod' " " top: 'innerprod' " "} " "layers: { " - " layer { " - " name: 'loss' " - " type: 'softmax_with_loss' " - " } " + " name: 'loss' " + " type: SOFTMAX_LOSS " " bottom: 'innerprod' " " bottom: 'label' " "} "; this->RunInsertionTest(input_proto, input_proto); } -TYPED_TEST(SplitLayerInsertionTest, TestInsertion) { +TEST_F(SplitLayerInsertionTest, TestInsertion) { const string& input_proto = "name: 'TestNetwork' " "layers: { " - " layer { " - " name: 'data' " - " type: 'data' " - " } " + " name: 'data' " + " type: DATA " " top: 'data' " " top: 'label' " "} " "layers: { " - " layer { " - " name: 'innerprod1' " - " type: 'inner_product' " - " } " + " name: 'innerprod1' " + " type: INNER_PRODUCT " " bottom: 'data' " " top: 'innerprod1' " "} " "layers: { " - " layer { " - " name: 'innerprod2' " - " type: 'inner_product' " - " } " + " name: 'innerprod2' " + " type: INNER_PRODUCT " " bottom: 'data' " " top: 'innerprod2' " "} " "layers: { " - " layer { " - " name: 'innerprod3' " - " type: 'inner_product' " - " } " + " name: 'innerprod3' " + " type: INNER_PRODUCT " " bottom: 'data' " " top: 'innerprod3' " "} " "layers: { " - " layer { " - " name: 'loss1' " - " type: 'euclidean_loss' " - " } " + " name: 'loss1' " + " type: EUCLIDEAN_LOSS " " bottom: 'innerprod1' " " bottom: 'innerprod2' " "} " "layers: { " - " layer { " - " name: 'loss2' " - " type: 'euclidean_loss' " - " } " + " name: 'loss2' " + " type: EUCLIDEAN_LOSS " " bottom: 'innerprod2' " " bottom: 'innerprod3' " "} "; const string& expected_output_proto = "name: 'TestNetwork' " "layers: { " - " layer { " - " name: 'data' " - " type: 'data' " - " } " + " name: 'data' " + " type: DATA " " top: 'data' " " top: 'label' " "} " "layers: { " - " layer { " - " name: 'data_data_0_split' " - " type: 'split' " - " } " + " name: 'data_data_0_split' " + " type: SPLIT " " bottom: 'data' " " top: 'data' " " top: 'data_data_0_split_1' " " top: 'data_data_0_split_2' " "} " "layers: { " - " layer { " - " name: 'innerprod1' " - " type: 'inner_product' " - " } " + " name: 'innerprod1' " + " type: INNER_PRODUCT " " bottom: 'data' " " top: 'innerprod1' " "} " "layers: { " - " layer { " - " name: 'innerprod2' " - " type: 'inner_product' " - " } " + " name: 'innerprod2' " + " type: INNER_PRODUCT " " bottom: 'data_data_0_split_1' " " top: 'innerprod2' " "} " "layers: { " - " layer { " - " name: 'innerprod2_innerprod2_0_split' " - " type: 'split' " - " } " + " name: 'innerprod2_innerprod2_0_split' " + " type: SPLIT " " bottom: 'innerprod2' " " top: 'innerprod2' " " top: 'innerprod2_innerprod2_0_split_1' " "} " "layers: { " - " layer { " - " name: 'innerprod3' " - " type: 'inner_product' " - " } " + " name: 'innerprod3' " + " type: INNER_PRODUCT " " bottom: 'data_data_0_split_2' " " top: 'innerprod3' " "} " "layers: { " - " layer { " - " name: 'loss1' " - " type: 'euclidean_loss' " - " } " + " name: 'loss1' " + " type: EUCLIDEAN_LOSS " " bottom: 'innerprod1' " " bottom: 'innerprod2' " "} " "layers: { " - " layer { " - " name: 'loss2' " - " type: 'euclidean_loss' " - " } " + " name: 'loss2' " + " type: EUCLIDEAN_LOSS " " bottom: 'innerprod2_innerprod2_0_split_1' " " bottom: 'innerprod3' " "} "; this->RunInsertionTest(input_proto, expected_output_proto); } -TYPED_TEST(SplitLayerInsertionTest, TestInsertionTwoTop) { +TEST_F(SplitLayerInsertionTest, TestInsertionTwoTop) { const string& input_proto = "name: 'TestNetwork' " "layers: { " - " layer { " - " name: 'data' " - " type: 'data' " - " } " + " name: 'data' " + " type: DATA " " top: 'data' " " top: 'label' " "} " "layers: { " - " layer { " - " name: 'innerprod1' " - " type: 'inner_product' " - " } " + " name: 'innerprod1' " + " type: INNER_PRODUCT " " bottom: 'data' " " top: 'innerprod1' " "} " "layers: { " - " layer { " - " name: 'innerprod2' " - " type: 'inner_product' " - " } " + " name: 'innerprod2' " + " type: INNER_PRODUCT " " bottom: 'label' " " top: 'innerprod2' " "} " "layers: { " - " layer { " - " name: 'innerprod3' " - " type: 'inner_product' " - " } " + " name: 'innerprod3' " + " type: INNER_PRODUCT " " bottom: 'data' " " top: 'innerprod3' " "} " "layers: { " - " layer { " - " name: 'innerprod4' " - " type: 'inner_product' " - " } " + " name: 'innerprod4' " + " type: INNER_PRODUCT " " bottom: 'label' " " top: 'innerprod4' " "} " "layers: { " - " layer { " - " name: 'loss1' " - " type: 'euclidean_loss' " - " } " + " name: 'loss1' " + " type: EUCLIDEAN_LOSS " " bottom: 'innerprod1' " " bottom: 'innerprod3' " "} " "layers: { " - " layer { " - " name: 'loss2' " - " type: 'euclidean_loss' " - " } " + " name: 'loss2' " + " type: EUCLIDEAN_LOSS " " bottom: 'innerprod2' " " bottom: 'innerprod4' " "} "; const string& expected_output_proto = "name: 'TestNetwork' " "layers: { " - " layer { " - " name: 'data' " - " type: 'data' " - " } " + " name: 'data' " + " type: DATA " " top: 'data' " " top: 'label' " "} " "layers: { " - " layer { " - " name: 'data_data_0_split' " - " type: 'split' " - " } " + " name: 'data_data_0_split' " + " type: SPLIT " " bottom: 'data' " " top: 'data' " " top: 'data_data_0_split_1' " "} " "layers: { " - " layer { " - " name: 'label_data_1_split' " - " type: 'split' " - " } " + " name: 'label_data_1_split' " + " type: SPLIT " " bottom: 'label' " " top: 'label' " " top: 'label_data_1_split_1' " "} " "layers: { " - " layer { " - " name: 'innerprod1' " - " type: 'inner_product' " - " } " + " name: 'innerprod1' " + " type: INNER_PRODUCT " " bottom: 'data' " " top: 'innerprod1' " "} " "layers: { " - " layer { " - " name: 'innerprod2' " - " type: 'inner_product' " - " } " + " name: 'innerprod2' " + " type: INNER_PRODUCT " " bottom: 'label' " " top: 'innerprod2' " "} " "layers: { " - " layer { " - " name: 'innerprod3' " - " type: 'inner_product' " - " } " + " name: 'innerprod3' " + " type: INNER_PRODUCT " " bottom: 'data_data_0_split_1' " " top: 'innerprod3' " "} " "layers: { " - " layer { " - " name: 'innerprod4' " - " type: 'inner_product' " - " } " + " name: 'innerprod4' " + " type: INNER_PRODUCT " " bottom: 'label_data_1_split_1' " " top: 'innerprod4' " "} " "layers: { " - " layer { " - " name: 'loss1' " - " type: 'euclidean_loss' " - " } " + " name: 'loss1' " + " type: EUCLIDEAN_LOSS " " bottom: 'innerprod1' " " bottom: 'innerprod3' " "} " "layers: { " - " layer { " - " name: 'loss2' " - " type: 'euclidean_loss' " - " } " + " name: 'loss2' " + " type: EUCLIDEAN_LOSS " " bottom: 'innerprod2' " " bottom: 'innerprod4' " "} "; this->RunInsertionTest(input_proto, expected_output_proto); } -TYPED_TEST(SplitLayerInsertionTest, TestInputInsertion) { +TEST_F(SplitLayerInsertionTest, TestInputInsertion) { const string& input_proto = "name: 'TestNetwork' " "input: 'data' " @@ -938,26 +802,20 @@ TYPED_TEST(SplitLayerInsertionTest, TestInputInsertion) { "input_dim: 227 " "input_dim: 227 " "layers: { " - " layer { " - " name: 'innerprod1' " - " type: 'inner_product' " - " } " + " name: 'innerprod1' " + " type: INNER_PRODUCT " " bottom: 'data' " " top: 'innerprod1' " "} " "layers: { " - " layer { " - " name: 'innerprod2' " - " type: 'inner_product' " - " } " + " name: 'innerprod2' " + " type: INNER_PRODUCT " " bottom: 'data' " " top: 'innerprod2' " "} " "layers: { " - " layer { " - " name: 'loss' " - " type: 'euclidean_loss' " - " } " + " name: 'loss' " + " type: EUCLIDEAN_LOSS " " bottom: 'innerprod1' " " bottom: 'innerprod2' " "} "; @@ -969,157 +827,121 @@ TYPED_TEST(SplitLayerInsertionTest, TestInputInsertion) { "input_dim: 227 " "input_dim: 227 " "layers: { " - " layer { " - " name: 'data_input_0_split' " - " type: 'split' " - " } " + " name: 'data_input_0_split' " + " type: SPLIT " " bottom: 'data' " " top: 'data' " " top: 'data_input_0_split_1' " "} " "layers: { " - " layer { " - " name: 'innerprod1' " - " type: 'inner_product' " - " } " + " name: 'innerprod1' " + " type: INNER_PRODUCT " " bottom: 'data' " " top: 'innerprod1' " "} " "layers: { " - " layer { " - " name: 'innerprod2' " - " type: 'inner_product' " - " } " + " name: 'innerprod2' " + " type: INNER_PRODUCT " " bottom: 'data_input_0_split_1' " " top: 'innerprod2' " "} " "layers: { " - " layer { " - " name: 'loss' " - " type: 'euclidean_loss' " - " } " + " name: 'loss' " + " type: EUCLIDEAN_LOSS " " bottom: 'innerprod1' " " bottom: 'innerprod2' " "} "; this->RunInsertionTest(input_proto, expected_output_proto); } -TYPED_TEST(SplitLayerInsertionTest, TestWithInPlace) { +TEST_F(SplitLayerInsertionTest, TestWithInPlace) { const string& input_proto = "name: 'TestNetwork' " "layers: { " - " layer { " - " name: 'data' " - " type: 'data' " - " } " + " name: 'data' " + " type: DATA " " top: 'data' " " top: 'label' " "} " "layers: { " - " layer { " - " name: 'innerprod1' " - " type: 'inner_product' " - " } " + " name: 'innerprod1' " + " type: INNER_PRODUCT " " bottom: 'data' " " top: 'innerprod1' " "} " "layers: { " - " layer { " - " name: 'relu1' " - " type: 'relu' " - " } " + " name: 'relu1' " + " type: RELU " " bottom: 'innerprod1' " " top: 'innerprod1' " "} " "layers: { " - " layer { " - " name: 'innerprod2' " - " type: 'inner_product' " - " } " + " name: 'innerprod2' " + " type: INNER_PRODUCT " " bottom: 'innerprod1' " " top: 'innerprod2' " "} " "layers: { " - " layer { " - " name: 'loss1' " - " type: 'euclidean_loss' " - " } " + " name: 'loss1' " + " type: EUCLIDEAN_LOSS " " bottom: 'innerprod1' " " bottom: 'label' " "} " "layers: { " - " layer { " - " name: 'loss2' " - " type: 'euclidean_loss' " - " } " + " name: 'loss2' " + " type: EUCLIDEAN_LOSS " " bottom: 'innerprod2' " " bottom: 'data' " "} "; const string& expected_output_proto = "name: 'TestNetwork' " "layers: { " - " layer { " - " name: 'data' " - " type: 'data' " - " } " + " name: 'data' " + " type: DATA " " top: 'data' " " top: 'label' " "} " "layers: { " - " layer { " - " name: 'data_data_0_split' " - " type: 'split' " - " } " + " name: 'data_data_0_split' " + " type: SPLIT " " bottom: 'data' " " top: 'data' " " top: 'data_data_0_split_1' " "} " "layers: { " - " layer { " - " name: 'innerprod1' " - " type: 'inner_product' " - " } " + " name: 'innerprod1' " + " type: INNER_PRODUCT " " bottom: 'data' " " top: 'innerprod1' " "} " "layers: { " - " layer { " - " name: 'relu1' " - " type: 'relu' " - " } " + " name: 'relu1' " + " type: RELU " " bottom: 'innerprod1' " " top: 'innerprod1' " "} " "layers: { " - " layer { " - " name: 'innerprod1_relu1_0_split' " - " type: 'split' " - " } " + " name: 'innerprod1_relu1_0_split' " + " type: SPLIT " " bottom: 'innerprod1' " " top: 'innerprod1' " " top: 'innerprod1_relu1_0_split_1' " "} " "layers: { " - " layer { " - " name: 'innerprod2' " - " type: 'inner_product' " - " } " + " name: 'innerprod2' " + " type: INNER_PRODUCT " " bottom: 'innerprod1' " " top: 'innerprod2' " "} " "layers: { " - " layer { " - " name: 'loss1' " - " type: 'euclidean_loss' " - " } " + " name: 'loss1' " + " type: EUCLIDEAN_LOSS " " bottom: 'innerprod1_relu1_0_split_1' " " bottom: 'label' " "} " "layers: { " - " layer { " - " name: 'loss2' " - " type: 'euclidean_loss' " - " } " + " name: 'loss2' " + " type: EUCLIDEAN_LOSS " " bottom: 'innerprod2' " " bottom: 'data_data_0_split_1' " "} "; diff --git a/src/caffe/test/test_stochastic_pooling.cpp b/src/caffe/test/test_stochastic_pooling.cpp index d60d04e8df7..0ad8123f881 100644 --- a/src/caffe/test/test_stochastic_pooling.cpp +++ b/src/caffe/test/test_stochastic_pooling.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -54,8 +54,9 @@ TYPED_TEST_CASE(StochasticPoolingLayerTest, Dtypes); TYPED_TEST(StochasticPoolingLayerTest, TestSetup) { LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); + PoolingParameter* pooling_param = layer_param.mutable_pooling_param(); + pooling_param->set_kernel_size(3); + pooling_param->set_stride(2); PoolingLayer layer(layer_param); layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); EXPECT_EQ(this->blob_top_->num(), this->blob_bottom_->num()); @@ -68,10 +69,10 @@ TYPED_TEST(StochasticPoolingLayerTest, TestStochasticGPU) { Caffe::set_mode(Caffe::GPU); Caffe::set_phase(Caffe::TRAIN); LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); - - layer_param.set_pool(LayerParameter_PoolMethod_STOCHASTIC); + PoolingParameter* pooling_param = layer_param.mutable_pooling_param(); + pooling_param->set_kernel_size(3); + pooling_param->set_stride(2); + pooling_param->set_pool(PoolingParameter_PoolMethod_STOCHASTIC); PoolingLayer layer(layer_param); layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); layer.Forward(this->blob_bottom_vec_, &(this->blob_top_vec_)); @@ -112,10 +113,10 @@ TYPED_TEST(StochasticPoolingLayerTest, TestStochasticGPUTestPhase) { Caffe::set_mode(Caffe::GPU); Caffe::set_phase(Caffe::TEST); LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); - - layer_param.set_pool(LayerParameter_PoolMethod_STOCHASTIC); + PoolingParameter* pooling_param = layer_param.mutable_pooling_param(); + pooling_param->set_kernel_size(3); + pooling_param->set_stride(2); + pooling_param->set_pool(PoolingParameter_PoolMethod_STOCHASTIC); PoolingLayer layer(layer_param); layer.SetUp(this->blob_bottom_vec_, &(this->blob_top_vec_)); layer.Forward(this->blob_bottom_vec_, &(this->blob_top_vec_)); @@ -146,18 +147,16 @@ TYPED_TEST(StochasticPoolingLayerTest, TestStochasticGPUTestPhase) { } } - - TYPED_TEST(StochasticPoolingLayerTest, TestGradientGPU) { Caffe::set_mode(Caffe::GPU); Caffe::set_phase(Caffe::TRAIN); LayerParameter layer_param; - layer_param.set_kernelsize(3); - layer_param.set_stride(2); - - layer_param.set_pool(LayerParameter_PoolMethod_STOCHASTIC); + PoolingParameter* pooling_param = layer_param.mutable_pooling_param(); + pooling_param->set_kernel_size(3); + pooling_param->set_stride(2); + pooling_param->set_pool(PoolingParameter_PoolMethod_STOCHASTIC); PoolingLayer layer(layer_param); - GradientChecker checker(1e-2, 1e-3); + GradientChecker checker(1e-4, 1e-2); // it is too expensive to call curand multiple times, so we don't do an // exhaustive gradient check. checker.CheckGradient(&layer, &(this->blob_bottom_vec_), diff --git a/src/caffe/test/test_syncedmem.cpp b/src/caffe/test/test_syncedmem.cpp index 161ca458ab9..cd7475898d1 100644 --- a/src/caffe/test/test_syncedmem.cpp +++ b/src/caffe/test/test_syncedmem.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include diff --git a/src/caffe/test/test_tanh_layer.cpp b/src/caffe/test/test_tanh_layer.cpp index 6248e508fad..9c9f8a74ae2 100644 --- a/src/caffe/test/test_tanh_layer.cpp +++ b/src/caffe/test/test_tanh_layer.cpp @@ -1,4 +1,4 @@ -// Copyright 2014 Aravindh Mahendran +// Copyright 2014 BVLC and contributors. // Adapted from other test files #include @@ -70,7 +70,7 @@ TYPED_TEST(TanHLayerTest, TestGradientCPU) { Caffe::set_mode(Caffe::CPU); TanHLayer layer(layer_param); GradientChecker checker(1e-2, 1e-3); - checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + checker.CheckGradientEltwise(&layer, &(this->blob_bottom_vec_), &(this->blob_top_vec_)); } @@ -102,7 +102,7 @@ TYPED_TEST(TanHLayerTest, TestGradientGPU) { Caffe::set_mode(Caffe::GPU); TanHLayer layer(layer_param); GradientChecker checker(1e-2, 1e-3); - checker.CheckGradientExhaustive(&layer, &(this->blob_bottom_vec_), + checker.CheckGradientEltwise(&layer, &(this->blob_bottom_vec_), &(this->blob_top_vec_)); } diff --git a/src/caffe/test/test_upgrade_proto.cpp b/src/caffe/test/test_upgrade_proto.cpp new file mode 100644 index 00000000000..9203f5583be --- /dev/null +++ b/src/caffe/test/test_upgrade_proto.cpp @@ -0,0 +1,2437 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include +#include + +#include "cuda_runtime.h" +#include "google/protobuf/text_format.h" +#include "gtest/gtest.h" +#include "caffe/blob.hpp" +#include "caffe/common.hpp" +#include "caffe/util/upgrade_proto.hpp" + +#include "caffe/test/test_caffe_main.hpp" + +using std::string; + +namespace caffe { + +class PaddingLayerUpgradeTest : public ::testing::Test { + protected: + void RunPaddingUpgradeTest( + const string& input_param_string, const string& output_param_string) { + // Test that UpgradeV0PaddingLayers called on the proto specified by + // input_param_string results in the proto specified by + // output_param_string. + NetParameter input_param; + CHECK(google::protobuf::TextFormat::ParseFromString( + input_param_string, &input_param)); + NetParameter expected_output_param; + CHECK(google::protobuf::TextFormat::ParseFromString( + output_param_string, &expected_output_param)); + NetParameter actual_output_param; + UpgradeV0PaddingLayers(input_param, &actual_output_param); + EXPECT_EQ(expected_output_param.DebugString(), + actual_output_param.DebugString()); + // Also test idempotence. + NetParameter double_pad_upgrade_param; + UpgradeV0PaddingLayers(actual_output_param, &double_pad_upgrade_param); + EXPECT_EQ(actual_output_param.DebugString(), + double_pad_upgrade_param.DebugString()); + } +}; + +TEST_F(PaddingLayerUpgradeTest, TestSimple) { + const string& input_proto = + "name: 'CaffeNet' " + "layers { " + " layer { " + " name: 'data' " + " type: 'data' " + " source: '/home/jiayq/Data/ILSVRC12/train-leveldb' " + " meanfile: '/home/jiayq/Data/ILSVRC12/image_mean.binaryproto' " + " batchsize: 256 " + " cropsize: 227 " + " mirror: true " + " } " + " top: 'data' " + " top: 'label' " + "} " + "layers { " + " layer { " + " name: 'pad1' " + " type: 'padding' " + " pad: 2 " + " } " + " bottom: 'data' " + " top: 'pad1' " + "} " + "layers { " + " layer { " + " name: 'conv1' " + " type: 'conv' " + " num_output: 96 " + " kernelsize: 11 " + " stride: 4 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'pad1' " + " top: 'conv1' " + "} " + "layers { " + " layer { " + " name: 'fc8' " + " type: 'innerproduct' " + " num_output: 1000 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0 " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'conv1' " + " top: 'fc8' " + "} " + "layers { " + " layer { " + " name: 'loss' " + " type: 'softmax_loss' " + " } " + " bottom: 'fc8' " + " bottom: 'label' " + "} "; + const string& expected_output_proto = + "name: 'CaffeNet' " + "layers { " + " layer { " + " name: 'data' " + " type: 'data' " + " source: '/home/jiayq/Data/ILSVRC12/train-leveldb' " + " meanfile: '/home/jiayq/Data/ILSVRC12/image_mean.binaryproto' " + " batchsize: 256 " + " cropsize: 227 " + " mirror: true " + " } " + " top: 'data' " + " top: 'label' " + "} " + "layers { " + " layer { " + " name: 'conv1' " + " type: 'conv' " + " num_output: 96 " + " kernelsize: 11 " + " stride: 4 " + " pad: 2 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'data' " + " top: 'conv1' " + "} " + "layers { " + " layer { " + " name: 'fc8' " + " type: 'innerproduct' " + " num_output: 1000 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0 " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'conv1' " + " top: 'fc8' " + "} " + "layers { " + " layer { " + " name: 'loss' " + " type: 'softmax_loss' " + " } " + " bottom: 'fc8' " + " bottom: 'label' " + "} "; + this->RunPaddingUpgradeTest(input_proto, expected_output_proto); +} + +TEST_F(PaddingLayerUpgradeTest, TestTwoTops) { + const string& input_proto = + "name: 'CaffeNet' " + "layers { " + " layer { " + " name: 'data' " + " type: 'data' " + " source: '/home/jiayq/Data/ILSVRC12/train-leveldb' " + " meanfile: '/home/jiayq/Data/ILSVRC12/image_mean.binaryproto' " + " batchsize: 256 " + " cropsize: 227 " + " mirror: true " + " } " + " top: 'data' " + " top: 'label' " + "} " + "layers { " + " layer { " + " name: 'pad1' " + " type: 'padding' " + " pad: 2 " + " } " + " bottom: 'data' " + " top: 'pad1' " + "} " + "layers { " + " layer { " + " name: 'conv1' " + " type: 'conv' " + " num_output: 96 " + " kernelsize: 11 " + " stride: 4 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'pad1' " + " top: 'conv1' " + "} " + "layers { " + " layer { " + " name: 'fc8' " + " type: 'innerproduct' " + " num_output: 1000 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0 " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'conv1' " + " top: 'fc8' " + "} " + "layers { " + " layer { " + " name: 'conv2' " + " type: 'conv' " + " num_output: 96 " + " kernelsize: 11 " + " stride: 4 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'pad1' " + " top: 'conv2' " + "} " + "layers { " + " layer { " + " name: 'loss' " + " type: 'softmax_loss' " + " } " + " bottom: 'fc8' " + " bottom: 'label' " + "} "; + const string& expected_output_proto = + "name: 'CaffeNet' " + "layers { " + " layer { " + " name: 'data' " + " type: 'data' " + " source: '/home/jiayq/Data/ILSVRC12/train-leveldb' " + " meanfile: '/home/jiayq/Data/ILSVRC12/image_mean.binaryproto' " + " batchsize: 256 " + " cropsize: 227 " + " mirror: true " + " } " + " top: 'data' " + " top: 'label' " + "} " + "layers { " + " layer { " + " name: 'conv1' " + " type: 'conv' " + " num_output: 96 " + " kernelsize: 11 " + " stride: 4 " + " pad: 2 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'data' " + " top: 'conv1' " + "} " + "layers { " + " layer { " + " name: 'fc8' " + " type: 'innerproduct' " + " num_output: 1000 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0 " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'conv1' " + " top: 'fc8' " + "} " + "layers { " + " layer { " + " name: 'conv2' " + " type: 'conv' " + " num_output: 96 " + " kernelsize: 11 " + " stride: 4 " + " pad: 2 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'data' " + " top: 'conv2' " + "} " + "layers { " + " layer { " + " name: 'loss' " + " type: 'softmax_loss' " + " } " + " bottom: 'fc8' " + " bottom: 'label' " + "} "; + this->RunPaddingUpgradeTest(input_proto, expected_output_proto); +} + +TEST_F(PaddingLayerUpgradeTest, TestImageNet) { + const string& input_proto = + "name: 'CaffeNet' " + "layers { " + " layer { " + " name: 'data' " + " type: 'data' " + " source: '/home/jiayq/Data/ILSVRC12/train-leveldb' " + " meanfile: '/home/jiayq/Data/ILSVRC12/image_mean.binaryproto' " + " batchsize: 256 " + " cropsize: 227 " + " mirror: true " + " } " + " top: 'data' " + " top: 'label' " + "} " + "layers { " + " layer { " + " name: 'conv1' " + " type: 'conv' " + " num_output: 96 " + " kernelsize: 11 " + " stride: 4 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'data' " + " top: 'conv1' " + "} " + "layers { " + " layer { " + " name: 'relu1' " + " type: 'relu' " + " } " + " bottom: 'conv1' " + " top: 'conv1' " + "} " + "layers { " + " layer { " + " name: 'pool1' " + " type: 'pool' " + " pool: MAX " + " kernelsize: 3 " + " stride: 2 " + " } " + " bottom: 'conv1' " + " top: 'pool1' " + "} " + "layers { " + " layer { " + " name: 'norm1' " + " type: 'lrn' " + " local_size: 5 " + " alpha: 0.0001 " + " beta: 0.75 " + " } " + " bottom: 'pool1' " + " top: 'norm1' " + "} " + "layers { " + " layer { " + " name: 'pad2' " + " type: 'padding' " + " pad: 2 " + " } " + " bottom: 'norm1' " + " top: 'pad2' " + "} " + "layers { " + " layer { " + " name: 'conv2' " + " type: 'conv' " + " num_output: 256 " + " group: 2 " + " kernelsize: 5 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'pad2' " + " top: 'conv2' " + "} " + "layers { " + " layer { " + " name: 'relu2' " + " type: 'relu' " + " } " + " bottom: 'conv2' " + " top: 'conv2' " + "} " + "layers { " + " layer { " + " name: 'pool2' " + " type: 'pool' " + " pool: MAX " + " kernelsize: 3 " + " stride: 2 " + " } " + " bottom: 'conv2' " + " top: 'pool2' " + "} " + "layers { " + " layer { " + " name: 'norm2' " + " type: 'lrn' " + " local_size: 5 " + " alpha: 0.0001 " + " beta: 0.75 " + " } " + " bottom: 'pool2' " + " top: 'norm2' " + "} " + "layers { " + " layer { " + " name: 'pad3' " + " type: 'padding' " + " pad: 1 " + " } " + " bottom: 'norm2' " + " top: 'pad3' " + "} " + "layers { " + " layer { " + " name: 'conv3' " + " type: 'conv' " + " num_output: 384 " + " kernelsize: 3 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'pad3' " + " top: 'conv3' " + "} " + "layers { " + " layer { " + " name: 'relu3' " + " type: 'relu' " + " } " + " bottom: 'conv3' " + " top: 'conv3' " + "} " + "layers { " + " layer { " + " name: 'pad4' " + " type: 'padding' " + " pad: 1 " + " } " + " bottom: 'conv3' " + " top: 'pad4' " + "} " + "layers { " + " layer { " + " name: 'conv4' " + " type: 'conv' " + " num_output: 384 " + " group: 2 " + " kernelsize: 3 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'pad4' " + " top: 'conv4' " + "} " + "layers { " + " layer { " + " name: 'relu4' " + " type: 'relu' " + " } " + " bottom: 'conv4' " + " top: 'conv4' " + "} " + "layers { " + " layer { " + " name: 'pad5' " + " type: 'padding' " + " pad: 1 " + " } " + " bottom: 'conv4' " + " top: 'pad5' " + "} " + "layers { " + " layer { " + " name: 'conv5' " + " type: 'conv' " + " num_output: 256 " + " group: 2 " + " kernelsize: 3 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'pad5' " + " top: 'conv5' " + "} " + "layers { " + " layer { " + " name: 'relu5' " + " type: 'relu' " + " } " + " bottom: 'conv5' " + " top: 'conv5' " + "} " + "layers { " + " layer { " + " name: 'pool5' " + " type: 'pool' " + " kernelsize: 3 " + " pool: MAX " + " stride: 2 " + " } " + " bottom: 'conv5' " + " top: 'pool5' " + "} " + "layers { " + " layer { " + " name: 'fc6' " + " type: 'innerproduct' " + " num_output: 4096 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.005 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'pool5' " + " top: 'fc6' " + "} " + "layers { " + " layer { " + " name: 'relu6' " + " type: 'relu' " + " } " + " bottom: 'fc6' " + " top: 'fc6' " + "} " + "layers { " + " layer { " + " name: 'drop6' " + " type: 'dropout' " + " dropout_ratio: 0.5 " + " } " + " bottom: 'fc6' " + " top: 'fc6' " + "} " + "layers { " + " layer { " + " name: 'fc7' " + " type: 'innerproduct' " + " num_output: 4096 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.005 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'fc6' " + " top: 'fc7' " + "} " + "layers { " + " layer { " + " name: 'relu7' " + " type: 'relu' " + " } " + " bottom: 'fc7' " + " top: 'fc7' " + "} " + "layers { " + " layer { " + " name: 'drop7' " + " type: 'dropout' " + " dropout_ratio: 0.5 " + " } " + " bottom: 'fc7' " + " top: 'fc7' " + "} " + "layers { " + " layer { " + " name: 'fc8' " + " type: 'innerproduct' " + " num_output: 1000 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0 " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'fc7' " + " top: 'fc8' " + "} " + "layers { " + " layer { " + " name: 'loss' " + " type: 'softmax_loss' " + " } " + " bottom: 'fc8' " + " bottom: 'label' " + "} "; + const string& expected_output_proto = + "name: 'CaffeNet' " + "layers { " + " layer { " + " name: 'data' " + " type: 'data' " + " source: '/home/jiayq/Data/ILSVRC12/train-leveldb' " + " meanfile: '/home/jiayq/Data/ILSVRC12/image_mean.binaryproto' " + " batchsize: 256 " + " cropsize: 227 " + " mirror: true " + " } " + " top: 'data' " + " top: 'label' " + "} " + "layers { " + " layer { " + " name: 'conv1' " + " type: 'conv' " + " num_output: 96 " + " kernelsize: 11 " + " stride: 4 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'data' " + " top: 'conv1' " + "} " + "layers { " + " layer { " + " name: 'relu1' " + " type: 'relu' " + " } " + " bottom: 'conv1' " + " top: 'conv1' " + "} " + "layers { " + " layer { " + " name: 'pool1' " + " type: 'pool' " + " pool: MAX " + " kernelsize: 3 " + " stride: 2 " + " } " + " bottom: 'conv1' " + " top: 'pool1' " + "} " + "layers { " + " layer { " + " name: 'norm1' " + " type: 'lrn' " + " local_size: 5 " + " alpha: 0.0001 " + " beta: 0.75 " + " } " + " bottom: 'pool1' " + " top: 'norm1' " + "} " + "layers { " + " layer { " + " name: 'conv2' " + " type: 'conv' " + " num_output: 256 " + " group: 2 " + " kernelsize: 5 " + " pad: 2 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'norm1' " + " top: 'conv2' " + "} " + "layers { " + " layer { " + " name: 'relu2' " + " type: 'relu' " + " } " + " bottom: 'conv2' " + " top: 'conv2' " + "} " + "layers { " + " layer { " + " name: 'pool2' " + " type: 'pool' " + " pool: MAX " + " kernelsize: 3 " + " stride: 2 " + " } " + " bottom: 'conv2' " + " top: 'pool2' " + "} " + "layers { " + " layer { " + " name: 'norm2' " + " type: 'lrn' " + " local_size: 5 " + " alpha: 0.0001 " + " beta: 0.75 " + " } " + " bottom: 'pool2' " + " top: 'norm2' " + "} " + "layers { " + " layer { " + " name: 'conv3' " + " type: 'conv' " + " num_output: 384 " + " kernelsize: 3 " + " pad: 1 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'norm2' " + " top: 'conv3' " + "} " + "layers { " + " layer { " + " name: 'relu3' " + " type: 'relu' " + " } " + " bottom: 'conv3' " + " top: 'conv3' " + "} " + "layers { " + " layer { " + " name: 'conv4' " + " type: 'conv' " + " num_output: 384 " + " group: 2 " + " kernelsize: 3 " + " pad: 1 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'conv3' " + " top: 'conv4' " + "} " + "layers { " + " layer { " + " name: 'relu4' " + " type: 'relu' " + " } " + " bottom: 'conv4' " + " top: 'conv4' " + "} " + "layers { " + " layer { " + " name: 'conv5' " + " type: 'conv' " + " num_output: 256 " + " group: 2 " + " kernelsize: 3 " + " pad: 1 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'conv4' " + " top: 'conv5' " + "} " + "layers { " + " layer { " + " name: 'relu5' " + " type: 'relu' " + " } " + " bottom: 'conv5' " + " top: 'conv5' " + "} " + "layers { " + " layer { " + " name: 'pool5' " + " type: 'pool' " + " kernelsize: 3 " + " pool: MAX " + " stride: 2 " + " } " + " bottom: 'conv5' " + " top: 'pool5' " + "} " + "layers { " + " layer { " + " name: 'fc6' " + " type: 'innerproduct' " + " num_output: 4096 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.005 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'pool5' " + " top: 'fc6' " + "} " + "layers { " + " layer { " + " name: 'relu6' " + " type: 'relu' " + " } " + " bottom: 'fc6' " + " top: 'fc6' " + "} " + "layers { " + " layer { " + " name: 'drop6' " + " type: 'dropout' " + " dropout_ratio: 0.5 " + " } " + " bottom: 'fc6' " + " top: 'fc6' " + "} " + "layers { " + " layer { " + " name: 'fc7' " + " type: 'innerproduct' " + " num_output: 4096 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.005 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'fc6' " + " top: 'fc7' " + "} " + "layers { " + " layer { " + " name: 'relu7' " + " type: 'relu' " + " } " + " bottom: 'fc7' " + " top: 'fc7' " + "} " + "layers { " + " layer { " + " name: 'drop7' " + " type: 'dropout' " + " dropout_ratio: 0.5 " + " } " + " bottom: 'fc7' " + " top: 'fc7' " + "} " + "layers { " + " layer { " + " name: 'fc8' " + " type: 'innerproduct' " + " num_output: 1000 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0 " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'fc7' " + " top: 'fc8' " + "} " + "layers { " + " layer { " + " name: 'loss' " + " type: 'softmax_loss' " + " } " + " bottom: 'fc8' " + " bottom: 'label' " + "} "; + this->RunPaddingUpgradeTest(input_proto, expected_output_proto); +} + +class V0UpgradeTest : public ::testing::Test { + protected: + void RunV0UpgradeTest( + const string& input_param_string, const string& output_param_string) { + // Test that UpgradeV0Net called on the NetParameter proto specified by + // input_param_string results in the NetParameter proto specified by + // output_param_string. + NetParameter input_param; + CHECK(google::protobuf::TextFormat::ParseFromString( + input_param_string, &input_param)); + NetParameter expected_output_param; + CHECK(google::protobuf::TextFormat::ParseFromString( + output_param_string, &expected_output_param)); + NetParameter actual_output_param; + UpgradeV0Net(input_param, &actual_output_param); + EXPECT_EQ(expected_output_param.DebugString(), + actual_output_param.DebugString()); + } +}; + +TEST_F(V0UpgradeTest, TestSimple) { + const string& input_proto = + "name: 'CaffeNet' " + "layers { " + " layer { " + " name: 'data' " + " type: 'data' " + " source: '/home/jiayq/Data/ILSVRC12/train-leveldb' " + " meanfile: '/home/jiayq/Data/ILSVRC12/image_mean.binaryproto' " + " batchsize: 256 " + " cropsize: 227 " + " mirror: true " + " } " + " top: 'data' " + " top: 'label' " + "} " + "layers { " + " layer { " + " name: 'pad1' " + " type: 'padding' " + " pad: 2 " + " } " + " bottom: 'data' " + " top: 'pad1' " + "} " + "layers { " + " layer { " + " name: 'conv1' " + " type: 'conv' " + " num_output: 96 " + " kernelsize: 11 " + " stride: 4 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'pad1' " + " top: 'conv1' " + "} " + "layers { " + " layer { " + " name: 'fc8' " + " type: 'innerproduct' " + " num_output: 1000 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0 " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'conv1' " + " top: 'fc8' " + "} " + "layers { " + " layer { " + " name: 'loss' " + " type: 'softmax_loss' " + " } " + " bottom: 'fc8' " + " bottom: 'label' " + "} "; + const string& expected_output_proto = + "name: 'CaffeNet' " + "layers { " + " name: 'data' " + " type: DATA " + " data_param { " + " source: '/home/jiayq/Data/ILSVRC12/train-leveldb' " + " mean_file: '/home/jiayq/Data/ILSVRC12/image_mean.binaryproto' " + " batch_size: 256 " + " crop_size: 227 " + " mirror: true " + " } " + " top: 'data' " + " top: 'label' " + "} " + "layers { " + " name: 'conv1' " + " type: CONVOLUTION " + " convolution_param { " + " num_output: 96 " + " kernel_size: 11 " + " stride: 4 " + " pad: 2 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0. " + " } " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " bottom: 'data' " + " top: 'conv1' " + "} " + "layers { " + " name: 'fc8' " + " type: INNER_PRODUCT " + " inner_product_param { " + " num_output: 1000 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0 " + " } " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " bottom: 'conv1' " + " top: 'fc8' " + "} " + "layers { " + " name: 'loss' " + " type: SOFTMAX_LOSS " + " bottom: 'fc8' " + " bottom: 'label' " + "} "; + this->RunV0UpgradeTest(input_proto, expected_output_proto); +} + +// Test any layer or parameter upgrades not covered by other tests. +TEST_F(V0UpgradeTest, TestAllParams) { + const string& input_proto = + "name: 'CaffeNet' " + "input: 'input_data' " + "input_dim: 64 " + "input_dim: 3 " + "input_dim: 32 " + "input_dim: 32 " + "layers { " + " layer { " + " name: 'data' " + " type: 'data' " + " source: '/home/jiayq/Data/ILSVRC12/train-leveldb' " + " meanfile: '/home/jiayq/Data/ILSVRC12/image_mean.binaryproto' " + " batchsize: 256 " + " cropsize: 227 " + " mirror: true " + " scale: 0.25 " + " rand_skip: 73 " + " } " + " top: 'data' " + " top: 'label' " + "} " + "layers { " + " layer { " + " name: 'images' " + " type: 'images' " + " source: '/home/jiayq/Data/ILSVRC12/train-images' " + " meanfile: '/home/jiayq/Data/ILSVRC12/image_mean.binaryproto' " + " batchsize: 256 " + " cropsize: 227 " + " mirror: true " + " scale: 0.25 " + " rand_skip: 73 " + " shuffle_images: true " + " new_height: 40 " + " new_width: 30 " + " } " + " top: 'images_data' " + " top: 'images_label' " + "} " + "layers { " + " layer { " + " name: 'window_data' " + " type: 'window_data' " + " source: '/home/jiayq/Data/ILSVRC12/train-leveldb' " + " meanfile: '/home/jiayq/Data/ILSVRC12/image_mean.binaryproto' " + " batchsize: 256 " + " cropsize: 227 " + " mirror: true " + " det_fg_threshold: 0.25 " + " det_bg_threshold: 0.75 " + " det_fg_fraction: 0.5 " + " det_context_pad: 16 " + " det_crop_mode: 'square' " + " } " + " top: 'window_data' " + " top: 'window_label' " + "} " + "layers { " + " layer { " + " name: 'hdf5data' " + " type: 'hdf5_data' " + " source: '/my/hdf5/data' " + " batchsize: 256 " + " } " + " top: 'hdf5data' " + "} " + "layers { " + " layer { " + " name: 'conv1' " + " type: 'conv' " + " num_output: 96 " + " biasterm: false " + " pad: 4 " + " kernelsize: 11 " + " stride: 4 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 3. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'data' " + " top: 'conv1' " + "} " + "layers { " + " layer { " + " name: 'pool1ave' " + " type: 'pool' " + " pool: AVE " + " kernelsize: 3 " + " stride: 2 " + " } " + " bottom: 'conv1' " + " top: 'pool1ave' " + "} " + "layers { " + " layer { " + " name: 'pool1stoch' " + " type: 'pool' " + " pool: STOCHASTIC " + " kernelsize: 4 " + " stride: 5 " + " } " + " bottom: 'conv1' " + " top: 'pool1stoch' " + "} " + "layers { " + " layer { " + " name: 'concat' " + " type: 'concat' " + " concat_dim: 2 " + " } " + " bottom: 'pool1ave' " + " bottom: 'pool1stoch' " + " top: 'pool1concat' " + "} " + "layers { " + " layer { " + " name: 'norm1' " + " type: 'lrn' " + " local_size: 5 " + " alpha: 0.0001 " + " beta: 0.75 " + " } " + " bottom: 'pool1concat' " + " top: 'norm1' " + "} " + "layers { " + " layer { " + " name: 'fc6' " + " type: 'innerproduct' " + " num_output: 4096 " + " biasterm: false " + " weight_filler { " + " type: 'gaussian' " + " std: 0.005 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'norm1' " + " top: 'fc6' " + "} " + "layers { " + " layer { " + " name: 'relu6' " + " type: 'relu' " + " } " + " bottom: 'fc6' " + " top: 'fc6' " + "} " + "layers { " + " layer { " + " name: 'drop6' " + " type: 'dropout' " + " dropout_ratio: 0.2 " + " } " + " bottom: 'fc6' " + " top: 'fc6' " + "} " + "layers { " + " layer { " + " name: 'loss' " + " type: 'infogain_loss' " + " source: '/my/infogain/matrix' " + " } " + " bottom: 'fc6' " + " bottom: 'label' " + "} " + "layers { " + " layer { " + " name: 'accuracy' " + " type: 'accuracy' " + " } " + "} " + "layers { " + " layer { " + " name: 'bnll' " + " type: 'bnll' " + " } " + "} " + "layers { " + " layer { " + " name: 'euclidean_loss' " + " type: 'euclidean_loss' " + " } " + "} " + "layers { " + " layer { " + " name: 'flatten' " + " type: 'flatten' " + " } " + "} " + "layers { " + " layer { " + " name: 'hdf5_output' " + " type: 'hdf5_output' " + " hdf5_output_param { " + " file_name: '/my/hdf5/output/file' " + " } " + " } " + "} " + "layers { " + " layer { " + " name: 'im2col' " + " type: 'im2col' " + " } " + "} " + "layers { " + " layer { " + " name: 'images' " + " type: 'images' " + " } " + "} " + "layers { " + " layer { " + " name: 'multinomial_logistic_loss' " + " type: 'multinomial_logistic_loss' " + " } " + "} " + "layers { " + " layer { " + " name: 'sigmoid' " + " type: 'sigmoid' " + " } " + "} " + "layers { " + " layer { " + " name: 'softmax' " + " type: 'softmax' " + " } " + "} " + "layers { " + " layer { " + " name: 'split' " + " type: 'split' " + " } " + "} " + "layers { " + " layer { " + " name: 'tanh' " + " type: 'tanh' " + " } " + "} "; + const string& expected_output_proto = + "name: 'CaffeNet' " + "input: 'input_data' " + "input_dim: 64 " + "input_dim: 3 " + "input_dim: 32 " + "input_dim: 32 " + "layers { " + " name: 'data' " + " type: DATA " + " data_param { " + " source: '/home/jiayq/Data/ILSVRC12/train-leveldb' " + " mean_file: '/home/jiayq/Data/ILSVRC12/image_mean.binaryproto' " + " batch_size: 256 " + " crop_size: 227 " + " mirror: true " + " scale: 0.25 " + " rand_skip: 73 " + " } " + " top: 'data' " + " top: 'label' " + "} " + "layers { " + " name: 'images' " + " type: IMAGE_DATA " + " image_data_param { " + " source: '/home/jiayq/Data/ILSVRC12/train-images' " + " mean_file: '/home/jiayq/Data/ILSVRC12/image_mean.binaryproto' " + " batch_size: 256 " + " crop_size: 227 " + " mirror: true " + " scale: 0.25 " + " rand_skip: 73 " + " shuffle: true " + " new_height: 40 " + " new_width: 30 " + " } " + " top: 'images_data' " + " top: 'images_label' " + "} " + "layers { " + " name: 'window_data' " + " type: WINDOW_DATA " + " window_data_param { " + " source: '/home/jiayq/Data/ILSVRC12/train-leveldb' " + " mean_file: '/home/jiayq/Data/ILSVRC12/image_mean.binaryproto' " + " batch_size: 256 " + " crop_size: 227 " + " mirror: true " + " fg_threshold: 0.25 " + " bg_threshold: 0.75 " + " fg_fraction: 0.5 " + " context_pad: 16 " + " crop_mode: 'square' " + " } " + " top: 'window_data' " + " top: 'window_label' " + "} " + "layers { " + " name: 'hdf5data' " + " type: HDF5_DATA " + " hdf5_data_param { " + " source: '/my/hdf5/data' " + " batch_size: 256 " + " } " + " top: 'hdf5data' " + "} " + "layers { " + " name: 'conv1' " + " type: CONVOLUTION " + " convolution_param { " + " num_output: 96 " + " bias_term: false " + " pad: 4 " + " kernel_size: 11 " + " stride: 4 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 3. " + " } " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " bottom: 'data' " + " top: 'conv1' " + "} " + "layers { " + " name: 'pool1ave' " + " type: POOLING " + " pooling_param { " + " pool: AVE " + " kernel_size: 3 " + " stride: 2 " + " } " + " bottom: 'conv1' " + " top: 'pool1ave' " + "} " + "layers { " + " name: 'pool1stoch' " + " type: POOLING " + " pooling_param { " + " pool: STOCHASTIC " + " kernel_size: 4 " + " stride: 5 " + " } " + " bottom: 'conv1' " + " top: 'pool1stoch' " + "} " + "layers { " + " name: 'concat' " + " type: CONCAT " + " concat_param { " + " concat_dim: 2 " + " } " + " bottom: 'pool1ave' " + " bottom: 'pool1stoch' " + " top: 'pool1concat' " + "} " + "layers { " + " name: 'norm1' " + " type: LRN " + " lrn_param { " + " local_size: 5 " + " alpha: 0.0001 " + " beta: 0.75 " + " } " + " bottom: 'pool1concat' " + " top: 'norm1' " + "} " + "layers { " + " name: 'fc6' " + " type: INNER_PRODUCT " + " inner_product_param { " + " num_output: 4096 " + " bias_term: false " + " weight_filler { " + " type: 'gaussian' " + " std: 0.005 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " bottom: 'norm1' " + " top: 'fc6' " + "} " + "layers { " + " name: 'relu6' " + " type: RELU " + " bottom: 'fc6' " + " top: 'fc6' " + "} " + "layers { " + " name: 'drop6' " + " type: DROPOUT " + " dropout_param { " + " dropout_ratio: 0.2 " + " } " + " bottom: 'fc6' " + " top: 'fc6' " + "} " + "layers { " + " name: 'loss' " + " type: INFOGAIN_LOSS " + " infogain_loss_param { " + " source: '/my/infogain/matrix' " + " } " + " bottom: 'fc6' " + " bottom: 'label' " + "} " + "layers { " + " name: 'accuracy' " + " type: ACCURACY " + "} " + "layers { " + " name: 'bnll' " + " type: BNLL " + "} " + "layers { " + " name: 'euclidean_loss' " + " type: EUCLIDEAN_LOSS " + "} " + "layers { " + " name: 'flatten' " + " type: FLATTEN " + "} " + "layers { " + " name: 'hdf5_output' " + " type: HDF5_OUTPUT " + " hdf5_output_param { " + " file_name: '/my/hdf5/output/file' " + " } " + "} " + "layers { " + " name: 'im2col' " + " type: IM2COL " + "} " + "layers { " + " name: 'images' " + " type: IMAGE_DATA " + "} " + "layers { " + " name: 'multinomial_logistic_loss' " + " type: MULTINOMIAL_LOGISTIC_LOSS " + "} " + "layers { " + " name: 'sigmoid' " + " type: SIGMOID " + "} " + "layers { " + " name: 'softmax' " + " type: SOFTMAX " + "} " + "layers { " + " name: 'split' " + " type: SPLIT " + "} " + "layers { " + " name: 'tanh' " + " type: TANH " + "} "; + this->RunV0UpgradeTest(input_proto, expected_output_proto); +} + +TEST_F(V0UpgradeTest, TestImageNet) { + const string& input_proto = + "name: 'CaffeNet' " + "layers { " + " layer { " + " name: 'data' " + " type: 'data' " + " source: '/home/jiayq/Data/ILSVRC12/train-leveldb' " + " meanfile: '/home/jiayq/Data/ILSVRC12/image_mean.binaryproto' " + " batchsize: 256 " + " cropsize: 227 " + " mirror: true " + " } " + " top: 'data' " + " top: 'label' " + "} " + "layers { " + " layer { " + " name: 'conv1' " + " type: 'conv' " + " num_output: 96 " + " kernelsize: 11 " + " stride: 4 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'data' " + " top: 'conv1' " + "} " + "layers { " + " layer { " + " name: 'relu1' " + " type: 'relu' " + " } " + " bottom: 'conv1' " + " top: 'conv1' " + "} " + "layers { " + " layer { " + " name: 'pool1' " + " type: 'pool' " + " pool: MAX " + " kernelsize: 3 " + " stride: 2 " + " } " + " bottom: 'conv1' " + " top: 'pool1' " + "} " + "layers { " + " layer { " + " name: 'norm1' " + " type: 'lrn' " + " local_size: 5 " + " alpha: 0.0001 " + " beta: 0.75 " + " } " + " bottom: 'pool1' " + " top: 'norm1' " + "} " + "layers { " + " layer { " + " name: 'pad2' " + " type: 'padding' " + " pad: 2 " + " } " + " bottom: 'norm1' " + " top: 'pad2' " + "} " + "layers { " + " layer { " + " name: 'conv2' " + " type: 'conv' " + " num_output: 256 " + " group: 2 " + " kernelsize: 5 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'pad2' " + " top: 'conv2' " + "} " + "layers { " + " layer { " + " name: 'relu2' " + " type: 'relu' " + " } " + " bottom: 'conv2' " + " top: 'conv2' " + "} " + "layers { " + " layer { " + " name: 'pool2' " + " type: 'pool' " + " pool: MAX " + " kernelsize: 3 " + " stride: 2 " + " } " + " bottom: 'conv2' " + " top: 'pool2' " + "} " + "layers { " + " layer { " + " name: 'norm2' " + " type: 'lrn' " + " local_size: 5 " + " alpha: 0.0001 " + " beta: 0.75 " + " } " + " bottom: 'pool2' " + " top: 'norm2' " + "} " + "layers { " + " layer { " + " name: 'pad3' " + " type: 'padding' " + " pad: 1 " + " } " + " bottom: 'norm2' " + " top: 'pad3' " + "} " + "layers { " + " layer { " + " name: 'conv3' " + " type: 'conv' " + " num_output: 384 " + " kernelsize: 3 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'pad3' " + " top: 'conv3' " + "} " + "layers { " + " layer { " + " name: 'relu3' " + " type: 'relu' " + " } " + " bottom: 'conv3' " + " top: 'conv3' " + "} " + "layers { " + " layer { " + " name: 'pad4' " + " type: 'padding' " + " pad: 1 " + " } " + " bottom: 'conv3' " + " top: 'pad4' " + "} " + "layers { " + " layer { " + " name: 'conv4' " + " type: 'conv' " + " num_output: 384 " + " group: 2 " + " kernelsize: 3 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'pad4' " + " top: 'conv4' " + "} " + "layers { " + " layer { " + " name: 'relu4' " + " type: 'relu' " + " } " + " bottom: 'conv4' " + " top: 'conv4' " + "} " + "layers { " + " layer { " + " name: 'pad5' " + " type: 'padding' " + " pad: 1 " + " } " + " bottom: 'conv4' " + " top: 'pad5' " + "} " + "layers { " + " layer { " + " name: 'conv5' " + " type: 'conv' " + " num_output: 256 " + " group: 2 " + " kernelsize: 3 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'pad5' " + " top: 'conv5' " + "} " + "layers { " + " layer { " + " name: 'relu5' " + " type: 'relu' " + " } " + " bottom: 'conv5' " + " top: 'conv5' " + "} " + "layers { " + " layer { " + " name: 'pool5' " + " type: 'pool' " + " kernelsize: 3 " + " pool: MAX " + " stride: 2 " + " } " + " bottom: 'conv5' " + " top: 'pool5' " + "} " + "layers { " + " layer { " + " name: 'fc6' " + " type: 'innerproduct' " + " num_output: 4096 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.005 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'pool5' " + " top: 'fc6' " + "} " + "layers { " + " layer { " + " name: 'relu6' " + " type: 'relu' " + " } " + " bottom: 'fc6' " + " top: 'fc6' " + "} " + "layers { " + " layer { " + " name: 'drop6' " + " type: 'dropout' " + " dropout_ratio: 0.5 " + " } " + " bottom: 'fc6' " + " top: 'fc6' " + "} " + "layers { " + " layer { " + " name: 'fc7' " + " type: 'innerproduct' " + " num_output: 4096 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.005 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'fc6' " + " top: 'fc7' " + "} " + "layers { " + " layer { " + " name: 'relu7' " + " type: 'relu' " + " } " + " bottom: 'fc7' " + " top: 'fc7' " + "} " + "layers { " + " layer { " + " name: 'drop7' " + " type: 'dropout' " + " dropout_ratio: 0.5 " + " } " + " bottom: 'fc7' " + " top: 'fc7' " + "} " + "layers { " + " layer { " + " name: 'fc8' " + " type: 'innerproduct' " + " num_output: 1000 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0 " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " } " + " bottom: 'fc7' " + " top: 'fc8' " + "} " + "layers { " + " layer { " + " name: 'loss' " + " type: 'softmax_loss' " + " } " + " bottom: 'fc8' " + " bottom: 'label' " + "} "; + const string& expected_output_proto = + "name: 'CaffeNet' " + "layers { " + " name: 'data' " + " type: DATA " + " data_param { " + " source: '/home/jiayq/Data/ILSVRC12/train-leveldb' " + " mean_file: '/home/jiayq/Data/ILSVRC12/image_mean.binaryproto' " + " batch_size: 256 " + " crop_size: 227 " + " mirror: true " + " } " + " top: 'data' " + " top: 'label' " + "} " + "layers { " + " name: 'conv1' " + " type: CONVOLUTION " + " convolution_param { " + " num_output: 96 " + " kernel_size: 11 " + " stride: 4 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0. " + " } " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " bottom: 'data' " + " top: 'conv1' " + "} " + "layers { " + " name: 'relu1' " + " type: RELU " + " bottom: 'conv1' " + " top: 'conv1' " + "} " + "layers { " + " name: 'pool1' " + " type: POOLING " + " pooling_param { " + " pool: MAX " + " kernel_size: 3 " + " stride: 2 " + " } " + " bottom: 'conv1' " + " top: 'pool1' " + "} " + "layers { " + " name: 'norm1' " + " type: LRN " + " lrn_param { " + " local_size: 5 " + " alpha: 0.0001 " + " beta: 0.75 " + " } " + " bottom: 'pool1' " + " top: 'norm1' " + "} " + "layers { " + " name: 'conv2' " + " type: CONVOLUTION " + " convolution_param { " + " num_output: 256 " + " group: 2 " + " kernel_size: 5 " + " pad: 2 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " bottom: 'norm1' " + " top: 'conv2' " + "} " + "layers { " + " name: 'relu2' " + " type: RELU " + " bottom: 'conv2' " + " top: 'conv2' " + "} " + "layers { " + " name: 'pool2' " + " type: POOLING " + " pooling_param { " + " pool: MAX " + " kernel_size: 3 " + " stride: 2 " + " } " + " bottom: 'conv2' " + " top: 'pool2' " + "} " + "layers { " + " name: 'norm2' " + " type: LRN " + " lrn_param { " + " local_size: 5 " + " alpha: 0.0001 " + " beta: 0.75 " + " } " + " bottom: 'pool2' " + " top: 'norm2' " + "} " + "layers { " + " name: 'conv3' " + " type: CONVOLUTION " + " convolution_param { " + " num_output: 384 " + " kernel_size: 3 " + " pad: 1 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0. " + " } " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " bottom: 'norm2' " + " top: 'conv3' " + "} " + "layers { " + " name: 'relu3' " + " type: RELU " + " bottom: 'conv3' " + " top: 'conv3' " + "} " + "layers { " + " name: 'conv4' " + " type: CONVOLUTION " + " convolution_param { " + " num_output: 384 " + " group: 2 " + " kernel_size: 3 " + " pad: 1 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " bottom: 'conv3' " + " top: 'conv4' " + "} " + "layers { " + " name: 'relu4' " + " type: RELU " + " bottom: 'conv4' " + " top: 'conv4' " + "} " + "layers { " + " name: 'conv5' " + " type: CONVOLUTION " + " convolution_param { " + " num_output: 256 " + " group: 2 " + " kernel_size: 3 " + " pad: 1 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " bottom: 'conv4' " + " top: 'conv5' " + "} " + "layers { " + " name: 'relu5' " + " type: RELU " + " bottom: 'conv5' " + " top: 'conv5' " + "} " + "layers { " + " name: 'pool5' " + " type: POOLING " + " pooling_param { " + " kernel_size: 3 " + " pool: MAX " + " stride: 2 " + " } " + " bottom: 'conv5' " + " top: 'pool5' " + "} " + "layers { " + " name: 'fc6' " + " type: INNER_PRODUCT " + " inner_product_param { " + " num_output: 4096 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.005 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " bottom: 'pool5' " + " top: 'fc6' " + "} " + "layers { " + " name: 'relu6' " + " type: RELU " + " bottom: 'fc6' " + " top: 'fc6' " + "} " + "layers { " + " name: 'drop6' " + " type: DROPOUT " + " dropout_param { " + " dropout_ratio: 0.5 " + " } " + " bottom: 'fc6' " + " top: 'fc6' " + "} " + "layers { " + " name: 'fc7' " + " type: INNER_PRODUCT " + " inner_product_param { " + " num_output: 4096 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.005 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 1. " + " } " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " bottom: 'fc6' " + " top: 'fc7' " + "} " + "layers { " + " name: 'relu7' " + " type: RELU " + " bottom: 'fc7' " + " top: 'fc7' " + "} " + "layers { " + " name: 'drop7' " + " type: DROPOUT " + " dropout_param { " + " dropout_ratio: 0.5 " + " } " + " bottom: 'fc7' " + " top: 'fc7' " + "} " + "layers { " + " name: 'fc8' " + " type: INNER_PRODUCT " + " inner_product_param { " + " num_output: 1000 " + " weight_filler { " + " type: 'gaussian' " + " std: 0.01 " + " } " + " bias_filler { " + " type: 'constant' " + " value: 0 " + " } " + " } " + " blobs_lr: 1. " + " blobs_lr: 2. " + " weight_decay: 1. " + " weight_decay: 0. " + " bottom: 'fc7' " + " top: 'fc8' " + "} " + "layers { " + " name: 'loss' " + " type: SOFTMAX_LOSS " + " bottom: 'fc8' " + " bottom: 'label' " + "} "; + this->RunV0UpgradeTest(input_proto, expected_output_proto); +} + +} // namespace caffe diff --git a/src/caffe/test/test_util_blas.cpp b/src/caffe/test/test_util_blas.cpp index 3f3ff8b3a69..2e4c6795952 100644 --- a/src/caffe/test/test_util_blas.cpp +++ b/src/caffe/test/test_util_blas.cpp @@ -1,9 +1,8 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include "cuda_runtime.h" -#include "mkl.h" #include "cublas_v2.h" #include "gtest/gtest.h" diff --git a/src/caffe/util/benchmark.cpp b/src/caffe/util/benchmark.cpp index 21c38ad36fe..0bd852182c8 100644 --- a/src/caffe/util/benchmark.cpp +++ b/src/caffe/util/benchmark.cpp @@ -1,4 +1,4 @@ -// Copyright 2014 kloud@github +// Copyright 2014 BVLC and contributors. #include #include diff --git a/src/caffe/util/im2col.cpp b/src/caffe/util/im2col.cpp index 4ed3af8a062..037410e29b7 100644 --- a/src/caffe/util/im2col.cpp +++ b/src/caffe/util/im2col.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include diff --git a/src/caffe/util/im2col.cu b/src/caffe/util/im2col.cu index 73a9aaf1d9e..6aecb0e5722 100644 --- a/src/caffe/util/im2col.cu +++ b/src/caffe/util/im2col.cu @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include diff --git a/src/caffe/util/insert_splits.cpp b/src/caffe/util/insert_splits.cpp index d208bcd27e4..b9aeb37c71b 100644 --- a/src/caffe/util/insert_splits.cpp +++ b/src/caffe/util/insert_splits.cpp @@ -1,4 +1,4 @@ -// Copyright 2014 Jeff Donahue +// Copyright 2014 BVLC and contributors. #include #include @@ -15,7 +15,7 @@ using std::make_pair; namespace caffe { -void insert_splits(const NetParameter& param, NetParameter* param_split) { +void InsertSplits(const NetParameter& param, NetParameter* param_split) { // Initialize by copying from the input NetParameter. param_split->CopyFrom(param); param_split->clear_layers(); @@ -31,10 +31,10 @@ void insert_splits(const NetParameter& param, NetParameter* param_split) { blob_name_to_last_top_idx[blob_name] = make_pair(-1, i); } for (int i = 0; i < param.layers_size(); ++i) { - const LayerConnection& layer_connection = param.layers(i); - layer_idx_to_layer_name[i] = layer_connection.layer().name(); - for (int j = 0; j < layer_connection.bottom_size(); ++j) { - const string& blob_name = layer_connection.bottom(j); + const LayerParameter& layer_param = param.layers(i); + layer_idx_to_layer_name[i] = layer_param.name(); + for (int j = 0; j < layer_param.bottom_size(); ++j) { + const string& blob_name = layer_param.bottom(j); if (blob_name_to_last_top_idx.find(blob_name) == blob_name_to_last_top_idx.end()) { LOG(FATAL) << "Unknown blob input " << blob_name << " to layer " << j; @@ -44,8 +44,8 @@ void insert_splits(const NetParameter& param, NetParameter* param_split) { bottom_idx_to_source_top_idx[bottom_idx] = top_idx; ++top_idx_to_bottom_count[top_idx]; } - for (int j = 0; j < layer_connection.top_size(); ++j) { - const string& blob_name = layer_connection.top(j); + for (int j = 0; j < layer_param.top_size(); ++j) { + const string& blob_name = layer_param.top(j); blob_name_to_last_top_idx[blob_name] = make_pair(i, j); } } @@ -56,57 +56,55 @@ void insert_splits(const NetParameter& param, NetParameter* param_split) { if (split_count > 1) { const string& layer_name = layer_idx_to_layer_name[-1]; const string& blob_name = param.input(i); - LayerConnection* split_layer_connection = param_split->add_layers(); - configure_split_layer(layer_name, blob_name, i, split_count, - split_layer_connection); + LayerParameter* split_layer_param = param_split->add_layers(); + ConfigureSplitLayer(layer_name, blob_name, i, split_count, + split_layer_param); } } for (int i = 0; i < param.layers_size(); ++i) { - LayerConnection* layer_connection = param_split->add_layers(); - layer_connection->CopyFrom(param.layers(i)); + LayerParameter* layer_param = param_split->add_layers(); + layer_param->CopyFrom(param.layers(i)); // Replace any shared bottom blobs with split layer outputs. - for (int j = 0; j < layer_connection->bottom_size(); ++j) { + for (int j = 0; j < layer_param->bottom_size(); ++j) { const pair& top_idx = bottom_idx_to_source_top_idx[make_pair(i, j)]; const int split_count = top_idx_to_bottom_count[top_idx]; if (split_count > 1) { const string& layer_name = layer_idx_to_layer_name[top_idx.first]; - const string& blob_name = layer_connection->bottom(j); - layer_connection->set_bottom(j, get_split_blob_name(layer_name, + const string& blob_name = layer_param->bottom(j); + layer_param->set_bottom(j, SplitBlobName(layer_name, blob_name, top_idx.second, top_idx_to_bottom_split_idx[top_idx]++)); } } // Create split layer for any top blobs used by other layers as bottom // blobs more than once. - for (int j = 0; j < layer_connection->top_size(); ++j) { + for (int j = 0; j < layer_param->top_size(); ++j) { const int split_count = top_idx_to_bottom_count[make_pair(i, j)]; if (split_count > 1) { const string& layer_name = layer_idx_to_layer_name[i]; - const string& blob_name = layer_connection->top(j); - LayerConnection* split_layer_connection = param_split->add_layers(); - configure_split_layer(layer_name, blob_name, j, split_count, - split_layer_connection); + const string& blob_name = layer_param->top(j); + LayerParameter* split_layer_param = param_split->add_layers(); + ConfigureSplitLayer(layer_name, blob_name, j, split_count, + split_layer_param); } } } } -void configure_split_layer(const string& layer_name, const string& blob_name, +void ConfigureSplitLayer(const string& layer_name, const string& blob_name, const int blob_idx, const int split_count, - LayerConnection* split_layer_connection) { - split_layer_connection->Clear(); - split_layer_connection->add_bottom(blob_name); - LayerParameter* split_layer_param = split_layer_connection->mutable_layer(); - split_layer_param->set_name( - get_split_layer_name(layer_name, blob_name, blob_idx)); - split_layer_param->set_type("split"); + LayerParameter* split_layer_param) { + split_layer_param->Clear(); + split_layer_param->add_bottom(blob_name); + split_layer_param->set_name(SplitLayerName(layer_name, blob_name, blob_idx)); + split_layer_param->set_type(LayerParameter_LayerType_SPLIT); for (int k = 0; k < split_count; ++k) { - split_layer_connection->add_top( - get_split_blob_name(layer_name, blob_name, blob_idx, k)); + split_layer_param->add_top( + SplitBlobName(layer_name, blob_name, blob_idx, k)); } } -string get_split_layer_name(const string& layer_name, const string& blob_name, +string SplitLayerName(const string& layer_name, const string& blob_name, const int blob_idx) { ostringstream split_layer_name; split_layer_name << blob_name << "_" << layer_name << "_" << blob_idx @@ -114,7 +112,7 @@ string get_split_layer_name(const string& layer_name, const string& blob_name, return split_layer_name.str(); } -string get_split_blob_name(const string& layer_name, const string& blob_name, +string SplitBlobName(const string& layer_name, const string& blob_name, const int blob_idx, const int split_idx) { // 0th split top blob is given the same name as the bottom blob so that // computation is done 'in-place', saving a bit of time and memory. diff --git a/src/caffe/util/io.cpp b/src/caffe/util/io.cpp index 3ac69f9744e..44858f48a36 100644 --- a/src/caffe/util/io.cpp +++ b/src/caffe/util/io.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -29,39 +29,41 @@ using google::protobuf::io::ZeroCopyInputStream; using google::protobuf::io::CodedInputStream; using google::protobuf::io::ZeroCopyOutputStream; using google::protobuf::io::CodedOutputStream; +using google::protobuf::Message; namespace caffe { -void ReadProtoFromTextFile(const char* filename, - ::google::protobuf::Message* proto) { +bool ReadProtoFromTextFile(const char* filename, Message* proto) { int fd = open(filename, O_RDONLY); CHECK_NE(fd, -1) << "File not found: " << filename; FileInputStream* input = new FileInputStream(fd); - CHECK(google::protobuf::TextFormat::Parse(input, proto)); + bool success = google::protobuf::TextFormat::Parse(input, proto); delete input; close(fd); + return success; } void WriteProtoToTextFile(const Message& proto, const char* filename) { - int fd = open(filename, O_WRONLY); + int fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0644); FileOutputStream* output = new FileOutputStream(fd); CHECK(google::protobuf::TextFormat::Print(proto, output)); delete output; close(fd); } -void ReadProtoFromBinaryFile(const char* filename, Message* proto) { +bool ReadProtoFromBinaryFile(const char* filename, Message* proto) { int fd = open(filename, O_RDONLY); CHECK_NE(fd, -1) << "File not found: " << filename; ZeroCopyInputStream* raw_input = new FileInputStream(fd); CodedInputStream* coded_input = new CodedInputStream(raw_input); - coded_input->SetTotalBytesLimit(536870912, 268435456); + coded_input->SetTotalBytesLimit(1073741824, 536870912); - CHECK(proto->ParseFromCodedStream(coded_input)); + bool success = proto->ParseFromCodedStream(coded_input); delete coded_input; delete raw_input; close(fd); + return success; } void WriteProtoToBinaryFile(const Message& proto, const char* filename) { @@ -142,4 +144,30 @@ void hdf5_load_nd_dataset(hid_t file_id, const char* dataset_name_, file_id, dataset_name_, blob->mutable_cpu_data()); } +template <> +void hdf5_save_nd_dataset( + const hid_t file_id, const string dataset_name, const Blob& blob) { + hsize_t dims[HDF5_NUM_DIMS]; + dims[0] = blob.num(); + dims[1] = blob.channels(); + dims[2] = blob.height(); + dims[3] = blob.width(); + herr_t status = H5LTmake_dataset_float( + file_id, dataset_name.c_str(), HDF5_NUM_DIMS, dims, blob.cpu_data()); + CHECK_GE(status, 0) << "Failed to make float dataset " << dataset_name; +} + +template <> +void hdf5_save_nd_dataset( + const hid_t file_id, const string dataset_name, const Blob& blob) { + hsize_t dims[HDF5_NUM_DIMS]; + dims[0] = blob.num(); + dims[1] = blob.channels(); + dims[2] = blob.height(); + dims[3] = blob.width(); + herr_t status = H5LTmake_dataset_double( + file_id, dataset_name.c_str(), HDF5_NUM_DIMS, dims, blob.cpu_data()); + CHECK_GE(status, 0) << "Failed to make double dataset " << dataset_name; +} + } // namespace caffe diff --git a/src/caffe/util/math_functions.cpp b/src/caffe/util/math_functions.cpp index 60656b87093..ba2492aa635 100644 --- a/src/caffe/util/math_functions.cpp +++ b/src/caffe/util/math_functions.cpp @@ -1,9 +1,14 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. -#include +#include +#include #include + +#include + #include "caffe/common.hpp" #include "caffe/util/math_functions.hpp" +#include "caffe/util/rng.hpp" namespace caffe { @@ -103,7 +108,6 @@ template <> void caffe_axpy(const int N, const double alpha, const double* X, double* Y) { cblas_daxpy(N, alpha, X, 1, Y, 1); } - template <> void caffe_gpu_axpy(const int N, const float alpha, const float* X, float* Y) { @@ -117,15 +121,39 @@ void caffe_gpu_axpy(const int N, const double alpha, const double* X, } template <> -void caffe_axpby(const int N, const float alpha, const float* X, - const float beta, float* Y) { - cblas_saxpby(N, alpha, X, 1, beta, Y, 1); +void caffe_set(const int N, const float alpha, float* Y) { + if (alpha == 0) { + memset(Y, 0, sizeof(float) * N); + return; + } + for (int i = 0; i < N; ++i) { + Y[i] = alpha; + } } template <> -void caffe_axpby(const int N, const double alpha, const double* X, - const double beta, double* Y) { - cblas_daxpby(N, alpha, X, 1, beta, Y, 1); +void caffe_set(const int N, const double alpha, double* Y) { + if (alpha == 0) { + memset(Y, 0, sizeof(double) * N); + return; + } + for (int i = 0; i < N; ++i) { + Y[i] = alpha; + } +} + +template <> +void caffe_add_scalar(const int N, const float alpha, float* Y) { + for (int i = 0; i < N; ++i) { + Y[i] += alpha; + } +} + +template <> +void caffe_add_scalar(const int N, const double alpha, double* Y) { + for (int i = 0; i < N; ++i) { + Y[i] += alpha; + } } template <> @@ -183,82 +211,85 @@ void caffe_gpu_axpby(const int N, const double alpha, const double* X, } template <> -void caffe_sqr(const int n, const float* a, float* y) { - vsSqr(n, a, y); +void caffe_cpu_axpby(const int N, const float alpha, const float* X, + const float beta, float* Y) { + cblas_saxpby(N, alpha, X, 1, beta, Y, 1); } template <> -void caffe_sqr(const int n, const double* a, double* y) { - vdSqr(n, a, y); +void caffe_cpu_axpby(const int N, const double alpha, const double* X, + const double beta, double* Y) { + cblas_daxpby(N, alpha, X, 1, beta, Y, 1); } template <> void caffe_add(const int n, const float* a, const float* b, - float* y) { vsAdd(n, a, b, y); } + float* y) { + vsAdd(n, a, b, y); +} template <> void caffe_add(const int n, const double* a, const double* b, - double* y) { vdAdd(n, a, b, y); } + double* y) { + vdAdd(n, a, b, y); +} template <> void caffe_sub(const int n, const float* a, const float* b, - float* y) { vsSub(n, a, b, y); } + float* y) { + vsSub(n, a, b, y); +} template <> void caffe_sub(const int n, const double* a, const double* b, - double* y) { vdSub(n, a, b, y); } + double* y) { + vdSub(n, a, b, y); +} template <> void caffe_mul(const int n, const float* a, const float* b, - float* y) { vsMul(n, a, b, y); } + float* y) { + vsMul(n, a, b, y); +} template <> void caffe_mul(const int n, const double* a, const double* b, - double* y) { vdMul(n, a, b, y); } + double* y) { + vdMul(n, a, b, y); +} template <> void caffe_div(const int n, const float* a, const float* b, - float* y) { vsDiv(n, a, b, y); } + float* y) { + vsDiv(n, a, b, y); +} template <> void caffe_div(const int n, const double* a, const double* b, - double* y) { vdDiv(n, a, b, y); } + double* y) { + vdDiv(n, a, b, y); +} template <> void caffe_powx(const int n, const float* a, const float b, - float* y) { vsPowx(n, a, b, y); } - -template <> -void caffe_powx(const int n, const double* a, const double b, - double* y) { vdPowx(n, a, b, y); } - -template <> -void caffe_vRngUniform(const int n, float* r, - const float a, const float b) { - VSL_CHECK(vsRngUniform(VSL_RNG_METHOD_UNIFORM_STD, Caffe::vsl_stream(), - n, r, a, b)); + float* y) { + vsPowx(n, a, b, y); } template <> -void caffe_vRngUniform(const int n, double* r, - const double a, const double b) { - VSL_CHECK(vdRngUniform(VSL_RNG_METHOD_UNIFORM_STD, Caffe::vsl_stream(), - n, r, a, b)); +void caffe_powx(const int n, const double* a, const double b, + double* y) { + vdPowx(n, a, b, y); } template <> -void caffe_vRngGaussian(const int n, float* r, const float a, - const float sigma) { - VSL_CHECK(vsRngGaussian(VSL_RNG_METHOD_GAUSSIAN_BOXMULLER, - Caffe::vsl_stream(), n, r, a, sigma)); +void caffe_sqr(const int n, const float* a, float* y) { + vsSqr(n, a, y); } - template <> -void caffe_vRngGaussian(const int n, double* r, const double a, - const double sigma) { - VSL_CHECK(vdRngGaussian(VSL_RNG_METHOD_GAUSSIAN_BOXMULLER, - Caffe::vsl_stream(), n, r, a, sigma)); +void caffe_sqr(const int n, const double* a, double* y) { + vdSqr(n, a, y); } template <> @@ -271,6 +302,85 @@ void caffe_exp(const int n, const double* a, double* y) { vdExp(n, a, y); } +unsigned int caffe_rng_rand() { + return (*caffe_rng())(); +} + +template +Dtype caffe_nextafter(const Dtype b) { + return boost::math::nextafter( + b, std::numeric_limits::max()); +} + +template +float caffe_nextafter(const float b); + +template +double caffe_nextafter(const double b); + +template +void caffe_rng_uniform(const int n, const Dtype a, const Dtype b, Dtype* r) { + CHECK_GE(n, 0); + CHECK(r); + CHECK_LE(a, b); + boost::uniform_real random_distribution(a, caffe_nextafter(b)); + boost::variate_generator > + variate_generator(caffe_rng(), random_distribution); + for (int i = 0; i < n; ++i) { + r[i] = variate_generator(); + } +} + +template +void caffe_rng_uniform(const int n, const float a, const float b, + float* r); + +template +void caffe_rng_uniform(const int n, const double a, const double b, + double* r); + +template +void caffe_rng_gaussian(const int n, const Dtype a, + const Dtype sigma, Dtype* r) { + CHECK_GE(n, 0); + CHECK(r); + CHECK_GT(sigma, 0); + boost::normal_distribution random_distribution(a, sigma); + boost::variate_generator > + variate_generator(caffe_rng(), random_distribution); + for (int i = 0; i < n; ++i) { + r[i] = variate_generator(); + } +} + +template +void caffe_rng_gaussian(const int n, const float mu, + const float sigma, float* r); + +template +void caffe_rng_gaussian(const int n, const double mu, + const double sigma, double* r); + +template +void caffe_rng_bernoulli(const int n, const Dtype p, int* r) { + CHECK_GE(n, 0); + CHECK(r); + CHECK_GE(p, 0); + CHECK_LE(p, 1); + boost::bernoulli_distribution random_distribution(p); + boost::variate_generator > + variate_generator(caffe_rng(), random_distribution); + for (int i = 0; i < n; ++i) { + r[i] = variate_generator(); + } +} + +template +void caffe_rng_bernoulli(const int n, const double p, int* r); + +template +void caffe_rng_bernoulli(const int n, const float p, int* r); + template <> float caffe_cpu_dot(const int n, const float* x, const float* y) { return cblas_sdot(n, x, 1, y, 1); @@ -293,4 +403,78 @@ void caffe_gpu_dot(const int n, const double* x, const double* y, CUBLAS_CHECK(cublasDdot(Caffe::cublas_handle(), n, x, 1, y, 1, out)); } +template <> +int caffe_cpu_hamming_distance(const int n, const float* x, + const float* y) { + int dist = 0; + for (int i = 0; i < n; ++i) { + dist += __builtin_popcount(static_cast(x[i]) ^ + static_cast(y[i])); + } + return dist; +} + +template <> +int caffe_cpu_hamming_distance(const int n, const double* x, + const double* y) { + int dist = 0; + for (int i = 0; i < n; ++i) { + dist += __builtin_popcountl(static_cast(x[i]) ^ + static_cast(y[i])); + } + return dist; +} + +template <> +float caffe_cpu_asum(const int n, const float* x) { + return cblas_sasum(n, x, 1); +} + +template <> +double caffe_cpu_asum(const int n, const double* x) { + return cblas_dasum(n, x, 1); +} + +template <> +void caffe_gpu_asum(const int n, const float* x, float* y) { + CUBLAS_CHECK(cublasSasum(Caffe::cublas_handle(), n, x, 1, y)); +} + +template <> +void caffe_gpu_asum(const int n, const double* x, double* y) { + CUBLAS_CHECK(cublasDasum(Caffe::cublas_handle(), n, x, 1, y)); +} + +INSTANTIATE_CAFFE_CPU_UNARY_FUNC(sign); +INSTANTIATE_CAFFE_CPU_UNARY_FUNC(sgnbit); +INSTANTIATE_CAFFE_CPU_UNARY_FUNC(fabs); + +template <> +void caffe_cpu_scale(const int n, const float alpha, const float *x, + float* y) { + cblas_scopy(n, x, 1, y, 1); + cblas_sscal(n, alpha, y, 1); +} + +template <> +void caffe_cpu_scale(const int n, const double alpha, const double *x, + double* y) { + cblas_dcopy(n, x, 1, y, 1); + cblas_dscal(n, alpha, y, 1); +} + +template <> +void caffe_gpu_scale(const int n, const float alpha, const float *x, + float* y) { + CUBLAS_CHECK(cublasScopy(Caffe::cublas_handle(), n, x, 1, y, 1)); + CUBLAS_CHECK(cublasSscal(Caffe::cublas_handle(), n, &alpha, y, 1)); +} + +template <> +void caffe_gpu_scale(const int n, const double alpha, const double *x, + double* y) { + CUBLAS_CHECK(cublasDcopy(Caffe::cublas_handle(), n, x, 1, y, 1)); + CUBLAS_CHECK(cublasDscal(Caffe::cublas_handle(), n, &alpha, y, 1)); +} + } // namespace caffe diff --git a/src/caffe/util/math_functions.cu b/src/caffe/util/math_functions.cu index 5491e246c48..184613c0a84 100644 --- a/src/caffe/util/math_functions.cu +++ b/src/caffe/util/math_functions.cu @@ -1,5 +1,9 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. +#include // CUDA's, not caffe's, for fabs, signbit +#include +#include // thrust::plus +#include #include #include #include @@ -9,6 +13,56 @@ namespace caffe { +template +__global__ void set_kernel(const int n, const Dtype alpha, Dtype* y) { + CUDA_KERNEL_LOOP(index, n) { + y[index] = alpha; + } +} + +template <> +void caffe_gpu_set(const int N, const float alpha, float* Y) { + if (alpha == 0) { + CUDA_CHECK(cudaMemset(Y, 0, sizeof(float) * N)); + return; + } + // NOLINT_NEXT_LINE(whitespace/operators) + set_kernel<<>>( + N, alpha, Y); +} + +template <> +void caffe_gpu_set(const int N, const double alpha, double* Y) { + if (alpha == 0) { + CUDA_CHECK(cudaMemset(Y, 0, sizeof(double) * N)); + return; + } + // NOLINT_NEXT_LINE(whitespace/operators) + set_kernel<<>>( + N, alpha, Y); +} + +template +__global__ void add_scalar_kernel(const int n, const Dtype alpha, Dtype* y) { + CUDA_KERNEL_LOOP(index, n) { + y[index] += alpha; + } +} + +template <> +void caffe_gpu_add_scalar(const int N, const float alpha, float* Y) { + // NOLINT_NEXT_LINE(whitespace/operators) + add_scalar_kernel<<>>( + N, alpha, Y); +} + +template <> +void caffe_gpu_add_scalar(const int N, const double alpha, double* Y) { + // NOLINT_NEXT_LINE(whitespace/operators) + add_scalar_kernel<<>>( + N, alpha, Y); +} + template __global__ void mul_kernel(const int n, const Dtype* a, const Dtype* b, Dtype* y) { @@ -33,5 +87,146 @@ void caffe_gpu_mul(const int N, const double* a, N, a, b, y); } +template +__global__ void div_kernel(const int n, const Dtype* a, + const Dtype* b, Dtype* y) { + CUDA_KERNEL_LOOP(index, n) { + y[index] = a[index] / b[index]; + } +} + +template <> +void caffe_gpu_div(const int N, const float* a, + const float* b, float* y) { + // NOLINT_NEXT_LINE(whitespace/operators) + div_kernel<<>>( + N, a, b, y); +} + +template <> +void caffe_gpu_div(const int N, const double* a, + const double* b, double* y) { + // NOLINT_NEXT_LINE(whitespace/operators) + div_kernel<<>>( + N, a, b, y); +} + +template +__global__ void powx_kernel(const int n, const Dtype* a, + const Dtype alpha, Dtype* y) { + CUDA_KERNEL_LOOP(index, n) { + y[index] = pow(a[index], alpha); + } +} + +template <> +void caffe_gpu_powx(const int N, const float* a, + const float alpha, float* y) { + // NOLINT_NEXT_LINE(whitespace/operators) + powx_kernel<<>>( + N, a, alpha, y); +} + +template <> +void caffe_gpu_powx(const int N, const double* a, + const double alpha, double* y) { + // NOLINT_NEXT_LINE(whitespace/operators) + powx_kernel<<>>( + N, a, alpha, y); +} + +DEFINE_AND_INSTANTIATE_GPU_UNARY_FUNC(sign, y[index] = (Dtype(0) < x[index]) + - (x[index] < Dtype(0))); +DEFINE_AND_INSTANTIATE_GPU_UNARY_FUNC(sgnbit, y[index] = signbit(x[index])); +DEFINE_AND_INSTANTIATE_GPU_UNARY_FUNC(fabs, y[index] = fabs(x[index])); + +__global__ void popc_kernel(const int n, const float* a, + const float* b, uint8_t* y) { + CUDA_KERNEL_LOOP(index, n) { + y[index] = __popc(static_cast(a[index]) ^ + static_cast(b[index])); + } +} + +__global__ void popcll_kernel(const int n, const double* a, + const double* b, uint8_t* y) { + CUDA_KERNEL_LOOP(index, n) { + y[index] = __popcll(static_cast(a[index]) ^ + static_cast(b[index])); + } +} + +template <> +uint32_t caffe_gpu_hamming_distance(const int n, const float* x, + const float* y) { + // TODO: Fix caffe_gpu_hamming_distance (see failing unit test + // TestHammingDistanceGPU in test_math_functions.cpp). + NOT_IMPLEMENTED; + thrust::device_vector popcounts(n); + // NOLINT_NEXT_LINE(whitespace/operators) + popc_kernel<<>>( + n, x, y, thrust::raw_pointer_cast(popcounts.data())); + return thrust::reduce(popcounts.begin(), popcounts.end(), + (uint32_t) 0, thrust::plus()); +} + +template <> +uint32_t caffe_gpu_hamming_distance(const int n, const double* x, + const double* y) { + // TODO: Fix caffe_gpu_hamming_distance (see failing unit test + // TestHammingDistanceGPU in test_math_functions.cpp). + NOT_IMPLEMENTED; + thrust::device_vector popcounts(n); + // NOLINT_NEXT_LINE(whitespace/operators) + popcll_kernel<<>>( + n, x, y, thrust::raw_pointer_cast(popcounts.data())); + return thrust::reduce(popcounts.begin(), popcounts.end(), + /* NOLINT_NEXT_LINE(build/include_what_you_use) */ + (uint32_t) 0, thrust::plus()); +} + +void caffe_gpu_rng_uniform(const int n, unsigned int* r) { + CURAND_CHECK(curandGenerate(Caffe::curand_generator(), r, n)); +} + +template <> +void caffe_gpu_rng_uniform(const int n, const float a, const float b, + float* r) { + CURAND_CHECK(curandGenerateUniform(Caffe::curand_generator(), r, n)); + const float range = b - a; + if (range != static_cast(1)) { + caffe_gpu_scal(n, range, r); + } + if (a != static_cast(0)) { + caffe_gpu_add_scalar(n, a, r); + } +} + +template <> +void caffe_gpu_rng_uniform(const int n, const double a, const double b, + double* r) { + CURAND_CHECK(curandGenerateUniformDouble(Caffe::curand_generator(), r, n)); + const double range = b - a; + if (range != static_cast(1)) { + caffe_gpu_scal(n, range, r); + } + if (a != static_cast(0)) { + caffe_gpu_add_scalar(n, a, r); + } +} + +template <> +void caffe_gpu_rng_gaussian(const int n, const float mu, const float sigma, + float* r) { + CURAND_CHECK( + curandGenerateNormal(Caffe::curand_generator(), r, n, mu, sigma)); +} + +template <> +void caffe_gpu_rng_gaussian(const int n, const double mu, const double sigma, + double* r) { + CURAND_CHECK( + curandGenerateNormalDouble(Caffe::curand_generator(), r, n, mu, sigma)); +} } // namespace caffe diff --git a/src/caffe/util/upgrade_proto.cpp b/src/caffe/util/upgrade_proto.cpp new file mode 100644 index 00000000000..e079b422dfb --- /dev/null +++ b/src/caffe/util/upgrade_proto.cpp @@ -0,0 +1,615 @@ +// Copyright 2014 BVLC and contributors. + +#include +#include +#include + +#include +#include + +#include "caffe/common.hpp" +#include "caffe/util/io.hpp" +#include "caffe/util/upgrade_proto.hpp" +#include "caffe/proto/caffe.pb.h" + +using std::map; +using std::string; + +namespace caffe { + +bool NetNeedsUpgrade(const NetParameter& net_param) { + for (int i = 0; i < net_param.layers_size(); ++i) { + if (net_param.layers(i).has_layer()) { + return true; + } + } + return false; +} + +bool UpgradeV0Net(const NetParameter& v0_net_param_padding_layers, + NetParameter* net_param) { + // First upgrade padding layers to padded conv layers. + NetParameter v0_net_param; + UpgradeV0PaddingLayers(v0_net_param_padding_layers, &v0_net_param); + // Now upgrade layer parameters. + bool is_fully_compatible = true; + net_param->Clear(); + if (v0_net_param.has_name()) { + net_param->set_name(v0_net_param.name()); + } + for (int i = 0; i < v0_net_param.layers_size(); ++i) { + is_fully_compatible &= UpgradeLayerParameter(v0_net_param.layers(i), + net_param->add_layers()); + } + for (int i = 0; i < v0_net_param.input_size(); ++i) { + net_param->add_input(v0_net_param.input(i)); + } + for (int i = 0; i < v0_net_param.input_dim_size(); ++i) { + net_param->add_input_dim(v0_net_param.input_dim(i)); + } + if (v0_net_param.has_force_backward()) { + net_param->set_force_backward(v0_net_param.force_backward()); + } + return is_fully_compatible; +} + +void UpgradeV0PaddingLayers(const NetParameter& param, + NetParameter* param_upgraded_pad) { + // Copy everything other than the layers from the original param. + param_upgraded_pad->Clear(); + param_upgraded_pad->CopyFrom(param); + param_upgraded_pad->clear_layers(); + // Figure out which layer each bottom blob comes from. + map blob_name_to_last_top_idx; + for (int i = 0; i < param.input_size(); ++i) { + const string& blob_name = param.input(i); + blob_name_to_last_top_idx[blob_name] = -1; + } + for (int i = 0; i < param.layers_size(); ++i) { + const LayerParameter& layer_connection = param.layers(i); + const V0LayerParameter& layer_param = layer_connection.layer(); + // Add the layer to the new net, unless it's a padding layer. + if (layer_param.type() != "padding") { + param_upgraded_pad->add_layers()->CopyFrom(layer_connection); + } + for (int j = 0; j < layer_connection.bottom_size(); ++j) { + const string& blob_name = layer_connection.bottom(j); + if (blob_name_to_last_top_idx.find(blob_name) == + blob_name_to_last_top_idx.end()) { + LOG(FATAL) << "Unknown blob input " << blob_name << " to layer " << j; + } + const int top_idx = blob_name_to_last_top_idx[blob_name]; + if (top_idx == -1) { + continue; + } + LayerParameter source_layer = param.layers(top_idx); + if (source_layer.layer().type() == "padding") { + // This layer has a padding layer as input -- check that it is a conv + // layer and takes only one input. Also check that the padding layer + // input has only one input and one output. Other cases have undefined + // behavior in Caffe. + CHECK_EQ(layer_param.type(), "conv") << "Padding layer input to " + "non-convolutional layer type " << layer_param.type(); + CHECK_EQ(layer_connection.bottom_size(), 1) + << "Conv Layer takes a single blob as input."; + CHECK_EQ(source_layer.bottom_size(), 1) + << "Padding Layer takes a single blob as input."; + CHECK_EQ(source_layer.top_size(), 1) + << "Padding Layer produces a single blob as output."; + int layer_index = param_upgraded_pad->layers_size() - 1; + param_upgraded_pad->mutable_layers(layer_index)->mutable_layer() + ->set_pad(source_layer.layer().pad()); + param_upgraded_pad->mutable_layers(layer_index) + ->set_bottom(j, source_layer.bottom(0)); + } + } + for (int j = 0; j < layer_connection.top_size(); ++j) { + const string& blob_name = layer_connection.top(j); + blob_name_to_last_top_idx[blob_name] = i; + } + } +} + +bool UpgradeLayerParameter(const LayerParameter& v0_layer_connection, + LayerParameter* layer_param) { + bool is_fully_compatible = true; + layer_param->Clear(); + for (int i = 0; i < v0_layer_connection.bottom_size(); ++i) { + layer_param->add_bottom(v0_layer_connection.bottom(i)); + } + for (int i = 0; i < v0_layer_connection.top_size(); ++i) { + layer_param->add_top(v0_layer_connection.top(i)); + } + if (v0_layer_connection.has_layer()) { + const V0LayerParameter& v0_layer_param = v0_layer_connection.layer(); + if (v0_layer_param.has_name()) { + layer_param->set_name(v0_layer_param.name()); + } + const string& type = v0_layer_param.type(); + if (v0_layer_param.has_type()) { + layer_param->set_type(UpgradeV0LayerType(type)); + } + for (int i = 0; i < v0_layer_param.blobs_size(); ++i) { + layer_param->add_blobs()->CopyFrom(v0_layer_param.blobs(i)); + } + for (int i = 0; i < v0_layer_param.blobs_lr_size(); ++i) { + layer_param->add_blobs_lr(v0_layer_param.blobs_lr(i)); + } + for (int i = 0; i < v0_layer_param.weight_decay_size(); ++i) { + layer_param->add_weight_decay(v0_layer_param.weight_decay(i)); + } + if (v0_layer_param.has_num_output()) { + if (type == "conv") { + layer_param->mutable_convolution_param()->set_num_output( + v0_layer_param.num_output()); + } else if (type == "innerproduct") { + layer_param->mutable_inner_product_param()->set_num_output( + v0_layer_param.num_output()); + } else { + LOG(ERROR) << "Unknown parameter num_output for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_biasterm()) { + if (type == "conv") { + layer_param->mutable_convolution_param()->set_bias_term( + v0_layer_param.biasterm()); + } else if (type == "innerproduct") { + layer_param->mutable_inner_product_param()->set_bias_term( + v0_layer_param.biasterm()); + } else { + LOG(ERROR) << "Unknown parameter biasterm for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_weight_filler()) { + if (type == "conv") { + layer_param->mutable_convolution_param()-> + mutable_weight_filler()->CopyFrom(v0_layer_param.weight_filler()); + } else if (type == "innerproduct") { + layer_param->mutable_inner_product_param()-> + mutable_weight_filler()->CopyFrom(v0_layer_param.weight_filler()); + } else { + LOG(ERROR) << "Unknown parameter weight_filler for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_bias_filler()) { + if (type == "conv") { + layer_param->mutable_convolution_param()-> + mutable_bias_filler()->CopyFrom(v0_layer_param.bias_filler()); + } else if (type == "innerproduct") { + layer_param->mutable_inner_product_param()-> + mutable_bias_filler()->CopyFrom(v0_layer_param.bias_filler()); + } else { + LOG(ERROR) << "Unknown parameter bias_filler for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_pad()) { + if (type == "conv") { + layer_param->mutable_convolution_param()->set_pad(v0_layer_param.pad()); + } else { + LOG(ERROR) << "Unknown parameter pad for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_kernelsize()) { + if (type == "conv") { + layer_param->mutable_convolution_param()->set_kernel_size( + v0_layer_param.kernelsize()); + } else if (type == "pool") { + layer_param->mutable_pooling_param()->set_kernel_size( + v0_layer_param.kernelsize()); + } else { + LOG(ERROR) << "Unknown parameter kernelsize for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_group()) { + if (type == "conv") { + layer_param->mutable_convolution_param()->set_group( + v0_layer_param.group()); + } else { + LOG(ERROR) << "Unknown parameter group for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_stride()) { + if (type == "conv") { + layer_param->mutable_convolution_param()->set_stride( + v0_layer_param.stride()); + } else if (type == "pool") { + layer_param->mutable_pooling_param()->set_stride( + v0_layer_param.stride()); + } else { + LOG(ERROR) << "Unknown parameter stride for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_pool()) { + if (type == "pool") { + V0LayerParameter_PoolMethod pool = v0_layer_param.pool(); + switch (pool) { + case V0LayerParameter_PoolMethod_MAX: + layer_param->mutable_pooling_param()->set_pool( + PoolingParameter_PoolMethod_MAX); + break; + case V0LayerParameter_PoolMethod_AVE: + layer_param->mutable_pooling_param()->set_pool( + PoolingParameter_PoolMethod_AVE); + break; + case V0LayerParameter_PoolMethod_STOCHASTIC: + layer_param->mutable_pooling_param()->set_pool( + PoolingParameter_PoolMethod_STOCHASTIC); + break; + default: + LOG(ERROR) << "Unknown pool method " << pool; + is_fully_compatible = false; + } + } else { + LOG(ERROR) << "Unknown parameter pool for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_dropout_ratio()) { + if (type == "dropout") { + layer_param->mutable_dropout_param()->set_dropout_ratio( + v0_layer_param.dropout_ratio()); + } else { + LOG(ERROR) << "Unknown parameter dropout_ratio for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_local_size()) { + if (type == "lrn") { + layer_param->mutable_lrn_param()->set_local_size( + v0_layer_param.local_size()); + } else { + LOG(ERROR) << "Unknown parameter local_size for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_alpha()) { + if (type == "lrn") { + layer_param->mutable_lrn_param()->set_alpha(v0_layer_param.alpha()); + } else { + LOG(ERROR) << "Unknown parameter alpha for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_beta()) { + if (type == "lrn") { + layer_param->mutable_lrn_param()->set_beta(v0_layer_param.beta()); + } else { + LOG(ERROR) << "Unknown parameter beta for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_source()) { + if (type == "data") { + layer_param->mutable_data_param()->set_source(v0_layer_param.source()); + } else if (type == "hdf5_data") { + layer_param->mutable_hdf5_data_param()->set_source( + v0_layer_param.source()); + } else if (type == "images") { + layer_param->mutable_image_data_param()->set_source( + v0_layer_param.source()); + } else if (type == "window_data") { + layer_param->mutable_window_data_param()->set_source( + v0_layer_param.source()); + } else if (type == "infogain_loss") { + layer_param->mutable_infogain_loss_param()->set_source( + v0_layer_param.source()); + } else { + LOG(ERROR) << "Unknown parameter source for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_scale()) { + if (type == "data") { + layer_param->mutable_data_param()->set_scale(v0_layer_param.scale()); + } else if (type == "images") { + layer_param->mutable_image_data_param()->set_scale( + v0_layer_param.scale()); + } else { + LOG(ERROR) << "Unknown parameter scale for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_meanfile()) { + if (type == "data") { + layer_param->mutable_data_param()->set_mean_file( + v0_layer_param.meanfile()); + } else if (type == "images") { + layer_param->mutable_image_data_param()->set_mean_file( + v0_layer_param.meanfile()); + } else if (type == "window_data") { + layer_param->mutable_window_data_param()->set_mean_file( + v0_layer_param.meanfile()); + } else { + LOG(ERROR) << "Unknown parameter meanfile for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_batchsize()) { + if (type == "data") { + layer_param->mutable_data_param()->set_batch_size( + v0_layer_param.batchsize()); + } else if (type == "hdf5_data") { + layer_param->mutable_hdf5_data_param()->set_batch_size( + v0_layer_param.batchsize()); + } else if (type == "images") { + layer_param->mutable_image_data_param()->set_batch_size( + v0_layer_param.batchsize()); + } else if (type == "window_data") { + layer_param->mutable_window_data_param()->set_batch_size( + v0_layer_param.batchsize()); + } else { + LOG(ERROR) << "Unknown parameter batchsize for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_cropsize()) { + if (type == "data") { + layer_param->mutable_data_param()->set_crop_size( + v0_layer_param.cropsize()); + } else if (type == "images") { + layer_param->mutable_image_data_param()->set_crop_size( + v0_layer_param.cropsize()); + } else if (type == "window_data") { + layer_param->mutable_window_data_param()->set_crop_size( + v0_layer_param.cropsize()); + } else { + LOG(ERROR) << "Unknown parameter cropsize for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_mirror()) { + if (type == "data") { + layer_param->mutable_data_param()->set_mirror(v0_layer_param.mirror()); + } else if (type == "images") { + layer_param->mutable_image_data_param()->set_mirror( + v0_layer_param.mirror()); + } else if (type == "window_data") { + layer_param->mutable_window_data_param()->set_mirror( + v0_layer_param.mirror()); + } else { + LOG(ERROR) << "Unknown parameter mirror for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_rand_skip()) { + if (type == "data") { + layer_param->mutable_data_param()->set_rand_skip( + v0_layer_param.rand_skip()); + } else if (type == "images") { + layer_param->mutable_image_data_param()->set_rand_skip( + v0_layer_param.rand_skip()); + } else { + LOG(ERROR) << "Unknown parameter rand_skip for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_shuffle_images()) { + if (type == "images") { + layer_param->mutable_image_data_param()->set_shuffle( + v0_layer_param.shuffle_images()); + } else { + LOG(ERROR) << "Unknown parameter shuffle for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_new_height()) { + if (type == "images") { + layer_param->mutable_image_data_param()->set_new_height( + v0_layer_param.new_height()); + } else { + LOG(ERROR) << "Unknown parameter new_height for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_new_width()) { + if (type == "images") { + layer_param->mutable_image_data_param()->set_new_width( + v0_layer_param.new_width()); + } else { + LOG(ERROR) << "Unknown parameter new_width for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_concat_dim()) { + if (type == "concat") { + layer_param->mutable_concat_param()->set_concat_dim( + v0_layer_param.concat_dim()); + } else { + LOG(ERROR) << "Unknown parameter concat_dim for layer type " << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_det_fg_threshold()) { + if (type == "window_data") { + layer_param->mutable_window_data_param()->set_fg_threshold( + v0_layer_param.det_fg_threshold()); + } else { + LOG(ERROR) << "Unknown parameter det_fg_threshold for layer type " + << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_det_bg_threshold()) { + if (type == "window_data") { + layer_param->mutable_window_data_param()->set_bg_threshold( + v0_layer_param.det_bg_threshold()); + } else { + LOG(ERROR) << "Unknown parameter det_bg_threshold for layer type " + << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_det_fg_fraction()) { + if (type == "window_data") { + layer_param->mutable_window_data_param()->set_fg_fraction( + v0_layer_param.det_fg_fraction()); + } else { + LOG(ERROR) << "Unknown parameter det_fg_fraction for layer type " + << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_det_context_pad()) { + if (type == "window_data") { + layer_param->mutable_window_data_param()->set_context_pad( + v0_layer_param.det_context_pad()); + } else { + LOG(ERROR) << "Unknown parameter det_context_pad for layer type " + << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_det_crop_mode()) { + if (type == "window_data") { + layer_param->mutable_window_data_param()->set_crop_mode( + v0_layer_param.det_crop_mode()); + } else { + LOG(ERROR) << "Unknown parameter det_crop_mode for layer type " + << type; + is_fully_compatible = false; + } + } + if (v0_layer_param.has_hdf5_output_param()) { + if (type == "hdf5_output") { + layer_param->mutable_hdf5_output_param()->CopyFrom( + v0_layer_param.hdf5_output_param()); + } else { + LOG(ERROR) << "Unknown parameter hdf5_output_param for layer type " + << type; + is_fully_compatible = false; + } + } + } + return is_fully_compatible; +} + +LayerParameter_LayerType UpgradeV0LayerType(const string& type) { + if (type == "accuracy") { + return LayerParameter_LayerType_ACCURACY; + } else if (type == "bnll") { + return LayerParameter_LayerType_BNLL; + } else if (type == "concat") { + return LayerParameter_LayerType_CONCAT; + } else if (type == "conv") { + return LayerParameter_LayerType_CONVOLUTION; + } else if (type == "data") { + return LayerParameter_LayerType_DATA; + } else if (type == "dropout") { + return LayerParameter_LayerType_DROPOUT; + } else if (type == "euclidean_loss") { + return LayerParameter_LayerType_EUCLIDEAN_LOSS; + } else if (type == "flatten") { + return LayerParameter_LayerType_FLATTEN; + } else if (type == "hdf5_data") { + return LayerParameter_LayerType_HDF5_DATA; + } else if (type == "hdf5_output") { + return LayerParameter_LayerType_HDF5_OUTPUT; + } else if (type == "im2col") { + return LayerParameter_LayerType_IM2COL; + } else if (type == "images") { + return LayerParameter_LayerType_IMAGE_DATA; + } else if (type == "infogain_loss") { + return LayerParameter_LayerType_INFOGAIN_LOSS; + } else if (type == "innerproduct") { + return LayerParameter_LayerType_INNER_PRODUCT; + } else if (type == "lrn") { + return LayerParameter_LayerType_LRN; + } else if (type == "multinomial_logistic_loss") { + return LayerParameter_LayerType_MULTINOMIAL_LOGISTIC_LOSS; + } else if (type == "pool") { + return LayerParameter_LayerType_POOLING; + } else if (type == "relu") { + return LayerParameter_LayerType_RELU; + } else if (type == "sigmoid") { + return LayerParameter_LayerType_SIGMOID; + } else if (type == "softmax") { + return LayerParameter_LayerType_SOFTMAX; + } else if (type == "softmax_loss") { + return LayerParameter_LayerType_SOFTMAX_LOSS; + } else if (type == "split") { + return LayerParameter_LayerType_SPLIT; + } else if (type == "tanh") { + return LayerParameter_LayerType_TANH; + } else if (type == "window_data") { + return LayerParameter_LayerType_WINDOW_DATA; + } else { + LOG(FATAL) << "Unknown layer name: " << type; + return LayerParameter_LayerType_NONE; + } +} + +void NetParameterToPrettyPrint(const NetParameter& param, + NetParameterPrettyPrint* pretty_param) { + pretty_param->Clear(); + if (param.has_name()) { + pretty_param->set_name(param.name()); + } + if (param.has_force_backward()) { + pretty_param->set_force_backward(param.force_backward()); + } + for (int i = 0; i < param.input_size(); ++i) { + pretty_param->add_input(param.input(i)); + } + for (int i = 0; i < param.input_dim_size(); ++i) { + pretty_param->add_input_dim(param.input_dim(i)); + } + for (int i = 0; i < param.layers_size(); ++i) { + pretty_param->add_layers()->CopyFrom(param.layers(i)); + } +} + +void ReadNetParamsFromTextFileOrDie(const string& param_file, + NetParameter* param) { + CHECK(ReadProtoFromTextFile(param_file, param)) + << "Failed to parse NetParameter file: " << param_file; + if (NetNeedsUpgrade(*param)) { + // NetParameter was specified using the old style (V0LayerParameter); try to + // upgrade it. + LOG(ERROR) << "Attempting to upgrade input file specified using deprecated " + << "V0LayerParameter: " << param_file; + NetParameter original_param(*param); + if (!UpgradeV0Net(original_param, param)) { + LOG(ERROR) << "Warning: had one or more problems upgrading " + << "V0NetParameter to NetParameter (see above); continuing anyway."; + } else { + LOG(INFO) << "Successfully upgraded file specified using deprecated " + << "V0LayerParameter"; + } + LOG(ERROR) << "Note that future Caffe releases will not support " + << "V0NetParameter; use ./build/tools/upgrade_net_proto_text.bin to " + << "upgrade this and any other network proto files to the new format."; + } +} + +void ReadNetParamsFromBinaryFileOrDie(const string& param_file, + NetParameter* param) { + CHECK(ReadProtoFromBinaryFile(param_file, param)) + << "Failed to parse NetParameter file: " << param_file; + if (NetNeedsUpgrade(*param)) { + // NetParameter was specified using the old style (V0LayerParameter); try to + // upgrade it. + LOG(ERROR) << "Attempting to upgrade input file specified using deprecated " + << "V0LayerParameter: " << param_file; + NetParameter original_param(*param); + if (!UpgradeV0Net(original_param, param)) { + LOG(ERROR) << "Warning: had one or more problems upgrading " + << "V0NetParameter to NetParameter (see above); continuing anyway."; + } else { + LOG(INFO) << "Successfully upgraded file specified using deprecated " + << "V0LayerParameter"; + } + LOG(ERROR) << "Note that future Caffe releases will not support " + << "V0NetParameter; use ./build/tools/upgrade_net_proto_binary.bin to " + << "upgrade this and any other network proto files to the new format."; + } +} + +} // namespace caffe diff --git a/tools/compute_image_mean.cpp b/tools/compute_image_mean.cpp index cb494f2500e..7cf5fe5f222 100644 --- a/tools/compute_image_mean.cpp +++ b/tools/compute_image_mean.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -18,7 +18,7 @@ int main(int argc, char** argv) { ::google::InitGoogleLogging(argv[0]); if (argc != 3) { LOG(ERROR) << "Usage: compute_image_mean input_leveldb output_file"; - return(0); + return 1; } leveldb::DB* db; diff --git a/tools/convert_imageset.cpp b/tools/convert_imageset.cpp index 07ae29d5751..2d4d4c77b52 100644 --- a/tools/convert_imageset.cpp +++ b/tools/convert_imageset.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. // This program converts a set of images to a leveldb by storing them as Datum // proto buffers. // Usage: @@ -29,7 +29,7 @@ using std::string; int main(int argc, char** argv) { ::google::InitGoogleLogging(argv[0]); - if (argc < 4) { + if (argc < 4 || argc > 5) { printf("Convert a set of images to the leveldb format used\n" "as input for Caffe.\n" "Usage:\n" @@ -37,7 +37,7 @@ int main(int argc, char** argv) { " RANDOM_SHUFFLE_DATA[0 or 1]\n" "The ImageNet dataset for the training demo is at\n" " http://www.image-net.org/download-images\n"); - return 0; + return 1; } std::ifstream infile(argv[2]); std::vector > lines; diff --git a/tools/device_query.cpp b/tools/device_query.cpp index 920e81b185a..5040b8ee9d1 100644 --- a/tools/device_query.cpp +++ b/tools/device_query.cpp @@ -1,4 +1,4 @@ -// Copyright 2014 Sergio Guadarrama +// Copyright 2014 BVLC and contributors. #include "caffe/common.hpp" @@ -10,7 +10,7 @@ using namespace caffe; // NOLINT(build/namespaces) int main(int argc, char** argv) { if (argc > 2) { LOG(ERROR) << "device_query [device_id=0]"; - return 0; + return 1; } if (argc == 2) { LOG(INFO) << "Querying device_id=" << argv[1]; diff --git a/tools/dump_network.cpp b/tools/dump_network.cpp index 21d0256f6b6..f29e150b048 100644 --- a/tools/dump_network.cpp +++ b/tools/dump_network.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. // // This program takes in a trained network and an input blob, and then dumps // all the intermediate blobs produced by the net to individual binary @@ -31,16 +31,14 @@ int main(int argc, char** argv) { Caffe::set_mode(Caffe::GPU); Caffe::set_phase(Caffe::TEST); - NetParameter net_param; - NetParameter trained_net_param; - + shared_ptr > caffe_net; if (strcmp(argv[1], "none") == 0) { // We directly load the net param from trained file - ReadProtoFromBinaryFile(argv[2], &net_param); + caffe_net.reset(new Net(argv[2])); } else { - ReadProtoFromTextFile(argv[1], &net_param); + caffe_net.reset(new Net(argv[1])); } - ReadProtoFromBinaryFile(argv[2], &trained_net_param); + caffe_net->CopyTrainedLayersFrom(argv[2]); vector* > input_vec; shared_ptr > input_blob(new Blob()); @@ -51,9 +49,6 @@ int main(int argc, char** argv) { input_vec.push_back(input_blob.get()); } - shared_ptr > caffe_net(new Net(net_param)); - caffe_net->CopyTrainedLayersFrom(trained_net_param); - string output_prefix(argv[4]); // Run the network without training. LOG(ERROR) << "Performing Forward"; diff --git a/tools/extra/extract_seconds.py b/tools/extra/extract_seconds.py index ea68e155b4e..f791afa32a2 100755 --- a/tools/extra/extract_seconds.py +++ b/tools/extra/extract_seconds.py @@ -40,4 +40,4 @@ def extract_seconds(input_file, output_file): if len(sys.argv) < 3: print('Usage: ./extract_seconds input_file output_file') exit(1) - extract_seconds(sys.argv[1], sys.argv[2]) \ No newline at end of file + extract_seconds(sys.argv[1], sys.argv[2]) diff --git a/tools/extract_features.cpp b/tools/extract_features.cpp new file mode 100644 index 00000000000..cdad6676d7f --- /dev/null +++ b/tools/extract_features.cpp @@ -0,0 +1,166 @@ +// Copyright 2014 BVLC and contributors. + +#include // for snprintf +#include +#include +#include +#include +#include +#include + +#include "caffe/blob.hpp" +#include "caffe/common.hpp" +#include "caffe/net.hpp" +#include "caffe/vision_layers.hpp" +#include "caffe/proto/caffe.pb.h" +#include "caffe/util/io.hpp" + +using namespace caffe; // NOLINT(build/namespaces) + +template +int feature_extraction_pipeline(int argc, char** argv); + +int main(int argc, char** argv) { + return feature_extraction_pipeline(argc, argv); +// return feature_extraction_pipeline(argc, argv); +} + +template +int feature_extraction_pipeline(int argc, char** argv) { + const int num_required_args = 6; + if (argc < num_required_args) { + LOG(ERROR)<< + "This program takes in a trained network and an input data layer, and then" + " extract features of the input data produced by the net.\n" + "Usage: demo_extract_features pretrained_net_param" + " feature_extraction_proto_file extract_feature_blob_name" + " save_feature_leveldb_name num_mini_batches [CPU/GPU] [DEVICE_ID=0]"; + return 1; + } + int arg_pos = num_required_args; + + arg_pos = num_required_args; + if (argc > arg_pos && strcmp(argv[arg_pos], "GPU") == 0) { + LOG(ERROR)<< "Using GPU"; + uint device_id = 0; + if (argc > arg_pos + 1) { + device_id = atoi(argv[arg_pos + 1]); + CHECK_GE(device_id, 0); + } + LOG(ERROR) << "Using Device_id=" << device_id; + Caffe::SetDevice(device_id); + Caffe::set_mode(Caffe::GPU); + } else { + LOG(ERROR) << "Using CPU"; + Caffe::set_mode(Caffe::CPU); + } + Caffe::set_phase(Caffe::TEST); + + arg_pos = 0; // the name of the executable + string pretrained_binary_proto(argv[++arg_pos]); + + // Expected prototxt contains at least one data layer such as + // the layer data_layer_name and one feature blob such as the + // fc7 top blob to extract features. + /* + layers { + name: "data_layer_name" + type: DATA + data_param { + source: "/path/to/your/images/to/extract/feature/images_leveldb" + mean_file: "/path/to/your/image_mean.binaryproto" + batch_size: 128 + crop_size: 227 + mirror: false + } + top: "data_blob_name" + top: "label_blob_name" + } + layers { + name: "drop7" + type: DROPOUT + dropout_param { + dropout_ratio: 0.5 + } + bottom: "fc7" + top: "fc7" + } + */ + string feature_extraction_proto(argv[++arg_pos]); + shared_ptr > feature_extraction_net( + new Net(feature_extraction_proto)); + feature_extraction_net->CopyTrainedLayersFrom(pretrained_binary_proto); + + string extract_feature_blob_name(argv[++arg_pos]); + CHECK(feature_extraction_net->has_blob(extract_feature_blob_name)) + << "Unknown feature blob name " << extract_feature_blob_name + << " in the network " << feature_extraction_proto; + + string save_feature_leveldb_name(argv[++arg_pos]); + leveldb::DB* db; + leveldb::Options options; + options.error_if_exists = true; + options.create_if_missing = true; + options.write_buffer_size = 268435456; + LOG(INFO)<< "Opening leveldb " << save_feature_leveldb_name; + leveldb::Status status = leveldb::DB::Open(options, + save_feature_leveldb_name.c_str(), + &db); + CHECK(status.ok()) << "Failed to open leveldb " << save_feature_leveldb_name; + + int num_mini_batches = atoi(argv[++arg_pos]); + + LOG(ERROR)<< "Extacting Features"; + + Datum datum; + leveldb::WriteBatch* batch = new leveldb::WriteBatch(); + const int kMaxKeyStrLength = 100; + char key_str[kMaxKeyStrLength]; + int num_bytes_of_binary_code = sizeof(Dtype); + vector*> input_vec; + int image_index = 0; + for (int batch_index = 0; batch_index < num_mini_batches; ++batch_index) { + feature_extraction_net->Forward(input_vec); + const shared_ptr > feature_blob = feature_extraction_net + ->blob_by_name(extract_feature_blob_name); + int num_features = feature_blob->num(); + int dim_features = feature_blob->count() / num_features; + Dtype* feature_blob_data; + for (int n = 0; n < num_features; ++n) { + datum.set_height(dim_features); + datum.set_width(1); + datum.set_channels(1); + datum.clear_data(); + datum.clear_float_data(); + feature_blob_data = feature_blob->mutable_cpu_data() + + feature_blob->offset(n); + for (int d = 0; d < dim_features; ++d) { + datum.add_float_data(feature_blob_data[d]); + } + string value; + datum.SerializeToString(&value); + snprintf(key_str, kMaxKeyStrLength, "%d", image_index); + batch->Put(string(key_str), value); + ++image_index; + if (image_index % 1000 == 0) { + db->Write(leveldb::WriteOptions(), batch); + LOG(ERROR)<< "Extracted features of " << image_index << + " query images."; + delete batch; + batch = new leveldb::WriteBatch(); + } + } // for (int n = 0; n < num_features; ++n) + } // for (int batch_index = 0; batch_index < num_mini_batches; ++batch_index) + // write the last batch + if (image_index % 1000 != 0) { + db->Write(leveldb::WriteOptions(), batch); + LOG(ERROR)<< "Extracted features of " << image_index << + " query images."; + } + + delete batch; + delete db; + LOG(ERROR)<< "Successfully extracted the features!"; + return 0; +} + diff --git a/tools/finetune_net.cpp b/tools/finetune_net.cpp index 2aad7385bff..c1cd788a1fb 100644 --- a/tools/finetune_net.cpp +++ b/tools/finetune_net.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. // // This is a simple script that allows one to quickly finetune a network. // Usage: @@ -14,13 +14,13 @@ using namespace caffe; // NOLINT(build/namespaces) int main(int argc, char** argv) { ::google::InitGoogleLogging(argv[0]); - if (argc < 2) { + if (argc != 3) { LOG(ERROR) << "Usage: finetune_net solver_proto_file pretrained_net"; - return 0; + return 1; } SolverParameter solver_param; - ReadProtoFromTextFile(argv[1], &solver_param); + ReadProtoFromTextFileOrDie(argv[1], &solver_param); LOG(INFO) << "Starting Optimization"; SGDSolver solver(solver_param); diff --git a/tools/net_speed_benchmark.cpp b/tools/net_speed_benchmark.cpp index 96d40a2eb37..36a00779f60 100644 --- a/tools/net_speed_benchmark.cpp +++ b/tools/net_speed_benchmark.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. #include #include @@ -22,10 +22,10 @@ using namespace caffe; // NOLINT(build/namespaces) int main(int argc, char** argv) { int total_iter = 50; - if (argc < 2) { + if (argc < 2 || argc > 5) { LOG(ERROR) << "net_speed_benchmark net_proto [iterations=50]" " [CPU/GPU] [Device_id=0]"; - return 0; + return 1; } if (argc >=3) { @@ -49,18 +49,17 @@ int main(int argc, char** argv) { } Caffe::set_phase(Caffe::TRAIN); - NetParameter net_param; - ReadProtoFromTextFile(argv[1], - &net_param); - Net caffe_net(net_param); + Net caffe_net(argv[1]); // Run the network without training. LOG(ERROR) << "Performing Forward"; // Note that for the speed benchmark, we will assume that the network does // not take any input blobs. - caffe_net.Forward(vector*>()); + float initial_loss; + caffe_net.Forward(vector*>(), &initial_loss); + LOG(ERROR) << "Initial loss: " << initial_loss; LOG(ERROR) << "Performing Backward"; - LOG(ERROR) << "Initial loss: " << caffe_net.Backward(); + caffe_net.Backward(); const vector > >& layers = caffe_net.layers(); vector*> >& bottom_vecs = caffe_net.bottom_vecs(); diff --git a/tools/test_net.cpp b/tools/test_net.cpp index c4c992aa776..c5819ec71b7 100644 --- a/tools/test_net.cpp +++ b/tools/test_net.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. // // This is a simple script that allows one to quickly test a network whose // structure is specified by text format protocol buffers, and whose parameter @@ -17,43 +17,41 @@ using namespace caffe; // NOLINT(build/namespaces) int main(int argc, char** argv) { - if (argc < 4) { + if (argc < 4 || argc > 6) { LOG(ERROR) << "test_net net_proto pretrained_net_proto iterations " - << "[CPU/GPU]"; - return 0; + << "[CPU/GPU] [Device ID]"; + return 1; } - cudaSetDevice(0); Caffe::set_phase(Caffe::TEST); - if (argc == 5 && strcmp(argv[4], "GPU") == 0) { - LOG(ERROR) << "Using GPU"; + if (argc >= 5 && strcmp(argv[4], "GPU") == 0) { Caffe::set_mode(Caffe::GPU); + int device_id = 0; + if (argc == 6) { + device_id = atoi(argv[5]); + } + Caffe::SetDevice(device_id); + LOG(ERROR) << "Using GPU #" << device_id; } else { LOG(ERROR) << "Using CPU"; Caffe::set_mode(Caffe::CPU); } - NetParameter test_net_param; - ReadProtoFromTextFile(argv[1], &test_net_param); - Net caffe_test_net(test_net_param); - NetParameter trained_net_param; - ReadProtoFromBinaryFile(argv[2], &trained_net_param); - caffe_test_net.CopyTrainedLayersFrom(trained_net_param); + Net caffe_test_net(argv[1]); + caffe_test_net.CopyTrainedLayersFrom(argv[2]); int total_iter = atoi(argv[3]); - LOG(ERROR) << "Running " << total_iter << "Iterations."; + LOG(ERROR) << "Running " << total_iter << " iterations."; double test_accuracy = 0; - vector*> dummy_blob_input_vec; for (int i = 0; i < total_iter; ++i) { - const vector*>& result = - caffe_test_net.Forward(dummy_blob_input_vec); + const vector*>& result = caffe_test_net.ForwardPrefilled(); test_accuracy += result[0]->cpu_data()[0]; LOG(ERROR) << "Batch " << i << ", accuracy: " << result[0]->cpu_data()[0]; } test_accuracy /= total_iter; - LOG(ERROR) << "Test accuracy:" << test_accuracy; + LOG(ERROR) << "Test accuracy: " << test_accuracy; return 0; } diff --git a/tools/train_net.cpp b/tools/train_net.cpp index 3bd4f8783ac..7c6f23e6240 100644 --- a/tools/train_net.cpp +++ b/tools/train_net.cpp @@ -1,4 +1,4 @@ -// Copyright 2013 Yangqing Jia +// Copyright 2014 BVLC and contributors. // // This is a simple script that allows one to quickly train a network whose // parameters are specified by text format protocol buffers. @@ -15,13 +15,13 @@ using namespace caffe; // NOLINT(build/namespaces) int main(int argc, char** argv) { ::google::InitGoogleLogging(argv[0]); - if (argc < 2) { + if (argc < 2 || argc > 3) { LOG(ERROR) << "Usage: train_net solver_proto_file [resume_point_file]"; - return 0; + return 1; } SolverParameter solver_param; - ReadProtoFromTextFile(argv[1], &solver_param); + ReadProtoFromTextFileOrDie(argv[1], &solver_param); LOG(INFO) << "Starting Optimization"; SGDSolver solver(solver_param); diff --git a/tools/upgrade_net_proto_binary.cpp b/tools/upgrade_net_proto_binary.cpp new file mode 100644 index 00000000000..928fc52dc27 --- /dev/null +++ b/tools/upgrade_net_proto_binary.cpp @@ -0,0 +1,46 @@ +// Copyright 2014 BVLC and contributors. +// +// This is a script to upgrade "V0" network prototxts to the new format. +// Usage: +// upgrade_net_proto_binary v0_net_proto_file_in net_proto_file_out + +#include +#include // NOLINT(readability/streams) +#include // NOLINT(readability/streams) + +#include "caffe/caffe.hpp" +#include "caffe/util/io.hpp" +#include "caffe/util/upgrade_proto.hpp" + +using std::ofstream; + +using namespace caffe; // NOLINT(build/namespaces) + +int main(int argc, char** argv) { + ::google::InitGoogleLogging(argv[0]); + if (argc != 3) { + LOG(ERROR) << "Usage: " + << "upgrade_net_proto_binary v0_net_proto_file_in net_proto_file_out"; + return 1; + } + + NetParameter net_param; + if (!ReadProtoFromBinaryFile(argv[1], &net_param)) { + LOG(ERROR) << "Failed to parse input binary file as NetParameter: " + << argv[1]; + return 2; + } + bool need_upgrade = NetNeedsUpgrade(net_param); + bool success = true; + if (need_upgrade) { + NetParameter v0_net_param(net_param); + success = UpgradeV0Net(v0_net_param, &net_param); + } else { + LOG(ERROR) << "File already in V1 proto format: " << argv[1]; + } + + WriteProtoToBinaryFile(net_param, argv[2]); + + LOG(ERROR) << "Wrote upgraded NetParameter binary proto to " << argv[2]; + return !success; +} diff --git a/tools/upgrade_net_proto_text.cpp b/tools/upgrade_net_proto_text.cpp new file mode 100644 index 00000000000..8a77f752cc2 --- /dev/null +++ b/tools/upgrade_net_proto_text.cpp @@ -0,0 +1,52 @@ +// Copyright 2014 BVLC and contributors. +// +// This is a script to upgrade "V0" network prototxts to the new format. +// Usage: +// upgrade_net_proto_text v0_net_proto_file_in net_proto_file_out + +#include +#include // NOLINT(readability/streams) +#include // NOLINT(readability/streams) + +#include "caffe/caffe.hpp" +#include "caffe/util/io.hpp" +#include "caffe/util/upgrade_proto.hpp" + +using std::ofstream; + +using namespace caffe; // NOLINT(build/namespaces) + +int main(int argc, char** argv) { + ::google::InitGoogleLogging(argv[0]); + if (argc != 3) { + LOG(ERROR) << "Usage: " + << "upgrade_net_proto_text v0_net_proto_file_in net_proto_file_out"; + return 1; + } + + NetParameter net_param; + if (!ReadProtoFromTextFile(argv[1], &net_param)) { + LOG(ERROR) << "Failed to parse input text file as NetParameter: " + << argv[1]; + return 2; + } + bool need_upgrade = NetNeedsUpgrade(net_param); + bool success = true; + if (need_upgrade) { + NetParameter v0_net_param(net_param); + success = UpgradeV0Net(v0_net_param, &net_param); + } else { + LOG(ERROR) << "File already in V1 proto format: " << argv[1]; + } + + // Convert to a NetParameterPrettyPrint to print fields in desired + // order. + NetParameterPrettyPrint net_param_pretty; + NetParameterToPrettyPrint(net_param, &net_param_pretty); + + // Save new format prototxt. + WriteProtoToTextFile(net_param_pretty, argv[2]); + + LOG(ERROR) << "Wrote upgraded NetParameter text proto to " << argv[2]; + return !success; +}