COS 429 - Computer Vision

Fall 2016

Course home Outline and Lecture Notes Assignments


Assignment 4: Deep Learning

Due Sunday, Dec. 18


Part III. Learning MatConvNet

There are several open-source Convolution Neural Network packages available, including TensorFlow, Torch, Caffe, Theano, and MatConvNet. It is possible to define and train all the network architectures we looked at in class using most of these packages, though for large networks & data sets, an NVIDIA GPU (with CUDA) is a must. For this assignment we will be training only smaller networks, where the CPU-only implementation should be sufficient. Here we will use MatConvNet from Oxford, because it is the most powerful package written in Matlab.

For this part of the assignment, follow the tutorial for MatConvNet available from: http://www.robots.ox.ac.uk/~vgg/practicals/cnn/index.html . Feel free to skip section 4.7 unless you have an NVIDIA GPU in your machine and have the CUDA development libraries installed.

Please submit short answers for all of the questions labeled as "Question:".

If you do not have access to the image processing toolbox, you can define these replacement functions (by putting each into a .m file):

function x = im2single(x)
  x = single(x)/255;
end

function m = strel(shape, r, varargin)
  assert(isequal(shape,'disk'));
  [X,Y] = meshgrid(-r:r, -r:r);
  m = (X.^2+Y.^2)<=r^2;
end

function d_im=imdilate(im, mask)
  d_im=conv2(double(im), double(mask), 'same')>0;
end






Last update 8-Dec-2016 16:15:34
smr at princeton edu