VS265: Homework assignments: Difference between revisions

From RedwoodCenter
Jump to navigationJump to search
(Created page with "Students are encouraged to work in groups, but turn in assignments ''individually'', listing the group members they worked with. '''Submission instructions''': email both a P...")
 
 
(39 intermediate revisions by 4 users not shown)
Line 2: Line 2:


'''Submission instructions''':
'''Submission instructions''':
email both a PDF of your solutions as well as your code (.m or .py files) as attachments to:
Only paper copies of the homework will be accepted. Solutions are due at the start of the class. Please place them on the speaker's desk at the front of the class.
    rctn.org vs265 (vs265 should be out front)
You can hand in a paper copy of your solutions before class, but you still have to email your code to the address above before the assignment is due.


= Resources =
= Resources =
== Matlab ==  
== Matlab ==  
Amir, the past GSI for the course says "There is a guide to Matlab on the web by Kevin Murphy which is really excellent. I think it would be great for the VS265 students: [http://code.google.com/p/yagtom/ http://code.google.com/p/yagtom/]"
Student version of Matlab ($50) may be obtained [https://www.mathworks.com/store/link/products/student/?s_tid=ac_buy_sv_cta here].
 
There is an excellent guide to Matlab by Kevin Murphy on the web: [http://code.google.com/p/yagtom/ http://code.google.com/p/yagtom/]


== Python ==
== Python ==
Fernando Perez at the Brain Imaging Center has an ''excellent'' set of resources on [http://fperez.org/py4science/index.html Python for scientific computing]. You will likely find the [http://fperez.org/py4science/starter_kit.html "Starter Kit"] particularly useful.
Fernando Perez at the Brain Imaging Center has an excellent set of resources on [http://fperez.org/py4science/index.html Python for scientific computing]. You will likely find the [http://fperez.org/py4science/starter_kit.html "Starter Kit"] particularly useful.
 
Also,  a great starting point for all scientific python is using Anaconda [https://store.continuum.io/cshop/anaconda/]


= Assignments =
= Assignments =
==== Lab #1, due Wednesday, September 5th at beginning of class ====
==== Lab #1, due Tuesday, September 16 at beginning of class ====


* [http://redwood.berkeley.edu/vs265/lab1.pdf lab1.pdf] [http://redwood.berkeley.edu/w/images/e/ef/Hw1_soln_bilenko.pdf Solution.pdf]
* [http://redwood.berkeley.edu/vs265/lab1.pdf lab1.pdf]  
* [http://redwood.berkeley.edu/vs265/data.mat data.mat]


==== Lab #2, due Wednesday, September 19th at beginning of class ====
==== Lab #2, due Tuesday, September 23 at beginning of class ====
* [http://redwood.berkeley.edu/vs265/lab2.pdf lab2.pdf]
* [http://redwood.berkeley.edu/vs265/lab2.pdf lab2.pdf]
* [http://redwood.berkeley.edu/vs265/data.mat data.mat]
* [http://redwood.berkeley.edu/vs265/lab2s.m lab2s.m] or [http://redwood.berkeley.edu/vs265/lab2s.txt lab2s.py]
 
''for Python: either ...''
  In [1]: import scipy.io
  In [2]: d = scipy.io.loadmat("data.mat")
  In [3]: X,O = d['X'],d['O']
 
''or use [http://redwood.berkeley.edu/vs265/data.npz data.npz]''
  In [1]: import numpy as np
  In [2]: d = np.load('data.npz')
  In [3]: X,O = d['X'],d['O']
 
* [http://redwood.berkeley.edu/vs265/apples.mat apples.mat]
* [http://redwood.berkeley.edu/vs265/apples.mat apples.mat]
* [http://redwood.berkeley.edu/vs265/oranges.mat oranges.mat]
* [http://redwood.berkeley.edu/vs265/oranges.mat oranges.mat]
* [http://redwood.berkeley.edu/vs265/lab2s.m lab2s.m] or [http://redwood.berkeley.edu/vs265/lab2s.txt lab2s.py]
* [http://redwood.berkeley.edu/vs265/lab2m.m lab2m.m]
*[http://redwood.berkeley.edu/w/images/2/2c/Hw2_sol.zip Solution_scripts]  [http://redwood.berkeley.edu/w/images/0/05/Solution.pdf Writeup]
 
==== Lab #3, due Wednesday, Sept. 26 at beginning of class ====
* [http://redwood.berkeley.edu/vs265/lab3.pdf lab3.pdf]
* [http://redwood.berkeley.edu/vs265/apples2.mat apples2.mat]
* [http://redwood.berkeley.edu/vs265/apples2.mat apples2.mat]
* [http://redwood.berkeley.edu/vs265/oranges2.mat oranges2.mat]
* [http://redwood.berkeley.edu/vs265/oranges2.mat oranges2.mat]
* [http://redwood.berkeley.edu/vs265/lab3.m lab3.m]


''For Python you can use [http://redwood.berkeley.edu/vs265/apples-oranges.npz apples-oranges.npz]''
''For Python you can use [http://redwood.berkeley.edu/vs265/apples-oranges.npz apples-oranges.npz]''
Line 49: Line 36:
   Out[3]: ['oranges2', 'apples2', 'apples', 'oranges']
   Out[3]: ['oranges2', 'apples2', 'apples', 'oranges']


* [http://redwood.berkeley.edu/w/images/9/9d/Hw3_writeup.pdf Solution.pdf] [http://redwood.berkeley.edu/w/images/a/af/Hw3scripts.zip HW3_Scripts]
==== Lab #3, due Tuesday, October 21 at beginning of class ====
 
* [http://redwood.berkeley.edu/vs265/lab3.pdf lab3.pdf]
==== Lab #4, due Thursday, October 4 at 9:00 ====
* [http://redwood.berkeley.edu/vs265/lab4.pdf lab4.pdf]
Matlab code are as separate files below.
Matlab code are as separate files below.
* [http://redwood.berkeley.edu/vs265/lab4/data2d.mat data2d.mat]
* [http://redwood.berkeley.edu/vs265/lab3/hebb.m hebb.m]
* [http://redwood.berkeley.edu/vs265/lab4/faces2.mat faces2.mat]
* [http://redwood.berkeley.edu/vs265/lab3/eigmovie.m eigmovie.m]
* [http://redwood.berkeley.edu/vs265/lab4/hebb.m hebb.m]
Data
* [http://redwood.berkeley.edu/vs265/lab4/eigmovie.m eigmovie.m]
* [http://redwood.berkeley.edu/vs265/lab3/data2d.mat data2d.mat]
* [http://redwood.berkeley.edu/vs265/lab3/faces2.mat faces2.mat]


''For Python you can use ''
''For Python you can use ''
* [http://redwood.berkeley.edu/vs265/lab4/data2d.npz data2d.npz] (see previous assignments above for how to read this in)
* [http://redwood.berkeley.edu/vs265/lab3/data2d.npz data2d.npz] (see previous assignments above for how to read this in)
* [http://redwood.berkeley.edu/vs265/lab4/faces2.npz faces2.npz]
* [http://redwood.berkeley.edu/vs265/lab3/faces2.npz faces2.npz]
* [http://redwood.berkeley.edu/vs265/lab4/hebb.txt hebb.py]
* [http://redwood.berkeley.edu/vs265/lab3/hebb.txt hebb.py]
* [http://redwood.berkeley.edu/vs265/lab4/eigmovie.txt eigmovie.py]
* [http://redwood.berkeley.edu/vs265/lab3/eigmovie.txt eigmovie.py]


* [http://redwood.berkeley.edu/vs265/sols/hw3-08.pdf Solutions.pdf] This is a solution from a previous version of this class that is really well written.
==== Lab #4, due October 9th at beginning fo class ====


==== Lab #5, due Monday, Oct 15 at beginning of class ====
* [http://redwood.berkeley.edu/w/images/8/81/Vs265_fall14_hw4.pdf lab4.pdf]
* [http://redwood.berkeley.edu/vs265/lab5.pdf lab5]
Matlab code and data for homework
* [http://redwood.berkeley.edu/vs265/foldiak_class_scripts.zip foldiak scripts (zip)]
* [http://redwood.berkeley.edu/vs265/sparsenet_class_scripts.zip sparsenet scripts (zip)]
* You will also need the following set of whitened natural movie images: [https://redwood.berkeley.edu/bruno/sparsenet/IMAGES.mat IMAGES.mat]
* Solutions [http://redwood.berkeley.edu/w/images/4/41/Hw5_sol_scripts.zip Scripts] [http://redwood.berkeley.edu/w/images/b/b4/Lab5_soln.pdf Writeup]
 
==== Lab #6, due Wednesday, Oct 24 at beginning of class ====
* [http://redwood.berkeley.edu/vs265/lab6.pdf lab6]
* [http://redwood.berkeley.edu/vs265/lab6/kohonen.m kohonen.m]
* [http://redwood.berkeley.edu/vs265/lab6/showrfs.m showrfs.m]
 
''Python code:''
* [http://redwood.berkeley.edu/vs265/lab6/kohonen.txt kohonen.py]
* [http://redwood.berkeley.edu/vs265/lab6/showrfs.txt showrfs.py]
[http://redwood.berkeley.edu/w/images/8/8c/Solution6.pdf Solution]
 
==== Lab #7, due Wednesday, Oct 31 at beginning of class ====
* [http://redwood.berkeley.edu/vs265/lab7.pdf lab7.pdf]
* [http://redwood.berkeley.edu/vs265/lab7/patterns.mat patterns.mat]
* [http://redwood.berkeley.edu/vs265/lab7/patterns.mat patterns.mat]
* [http://redwood.berkeley.edu/vs265/lab7/hopnet.m hopnet.m]
* [http://redwood.berkeley.edu/vs265/lab7/hopnet.m hopnet.m]
Line 101: Line 70:
     face,hi,X = [p[k].reshape(10,10).T.reshape(100,1) for k in 'face','hi','X']
     face,hi,X = [p[k].reshape(10,10).T.reshape(100,1) for k in 'face','hi','X']
     # line above converts Fortran to C ordering
     # line above converts Fortran to C ordering
* Solutions: The outer product rule to calculate V is given by  X*X' + face*face' + hi*hi'; *
[http://redwood.berkeley.edu/w/images/d/d1/Abbott_ps7.pdf Writeup]
[http://redwood.berkeley.edu/w/images/2/29/Scripts.zip Scripts]


==== Lab #8, due Wednesday, Nov. 14 at beginning of class ====
==== Lab #5, due Thursday, Oct 30 at beginning of class ====
* [http://redwood.berkeley.edu/vs265/lab5.pdf lab5]
* [http://redwood.berkeley.edu/vs265/foldiak_class_scripts.zip foldiak scripts (zip)]
* [http://redwood.berkeley.edu/vs265/sparsenet_class_scripts.zip sparsenet scripts (zip)]
* You will also need the following set of whitened natural movie images: [https://redwood.berkeley.edu/bruno/sparsenet/IMAGES.mat IMAGES.mat]
 
==== Lab #6, due Thursday, Nov. 6 at beginning of class ====
* [http://redwood.berkeley.edu/vs265/lab6.pdf lab6]
* [http://redwood.berkeley.edu/vs265/lab6/kohonen.m kohonen.m]
* [http://redwood.berkeley.edu/vs265/lab6/showrfs.m showrfs.m]
 
''Python code:''
* [http://redwood.berkeley.edu/vs265/lab6/kohonen.txt kohonen.py]
* [http://redwood.berkeley.edu/vs265/lab6/showrfs.txt showrfs.py]
 
==== Lab #7, due Tuesday, Nov. 25 at beginning of class ====
* [http://redwood.berkeley.edu/vs265/lab7.pdf lab7]
* [http://redwood.berkeley.edu/vs265/lab7_scripts.zip lab7_scripts.zip]
 
==== Lab #8, due Thursday, Dec. 4 at beginning of class ====
* [http://redwood.berkeley.edu/vs265/lab8.pdf lab8.pdf]
* [http://redwood.berkeley.edu/vs265/lab8.pdf lab8.pdf]
* [http://redwood.berkeley.edu/vs265/mog/mog.m mog.m]
* [http://redwood.berkeley.edu/vs265/mog/show_mog.m show_mog.m]
* [http://redwood.berkeley.edu/vs265/mog/X1.mat X1.mat]
* [http://redwood.berkeley.edu/vs265/mog/X1_v6.mat X1_v6.mat] (version 6)
* [http://redwood.berkeley.edu/vs265/mog/X2.mat X2.mat]
* [http://redwood.berkeley.edu/vs265/mog/X2_v6.mat X2_v6.mat] (version 6)
* [http://redwood.berkeley.edu/w/images/f/fc/Hw8_solution.pdf Solution]
==== Lab #9 (optional), due Monday, Nov. 26 at beginning of class ====
* [http://redwood.berkeley.edu/vs265/lab9.pdf lab9.pdf]
* [http://redwood.berkeley.edu/vs265/boltz/boltz.m boltz.m]
* [http://redwood.berkeley.edu/vs265/boltz/boltz.m boltz.m]
* [http://redwood.berkeley.edu/vs265/boltz/get_batch.m get_batch.m]
* [http://redwood.berkeley.edu/vs265/boltz/get_batch.m get_batch.m]
Line 127: Line 102:
* [http://redwood.berkeley.edu/vs265/boltz/prob.m prob.m]
* [http://redwood.berkeley.edu/vs265/boltz/prob.m prob.m]
* [http://redwood.berkeley.edu/vs265/boltz/show_patches.m show_patches.m]
* [http://redwood.berkeley.edu/vs265/boltz/show_patches.m show_patches.m]
''Python code:''
* [http://redwood.berkeley.edu/vs265/lab9/boltz.txt boltz.py] - python version of the above code with solution.
* [http://redwood.berkeley.edu/w/images/9/9c/Lab9_soln.pdf Writeup with code]
==== Lab #10 (optional), due Monday, Dec. 3 at beginning of class ====
* [http://redwood.berkeley.edu/vs265/lab10.pdf lab10.pdf]
* [http://redwood.berkeley.edu/vs265/ica/ica.m ica.m]
* [http://redwood.berkeley.edu/vs265/ica/test_data.mat test_data.mat]
* [http://redwood.berkeley.edu/vs265/ica/ica2.m ica2.m]
* [http://redwood.berkeley.edu/vs265/ica/extract_patches.m extract_patches.m]
* [http://redwood.berkeley.edu/vs265/ica/showbfs.m showbfs.m]
* [http://redwood.berkeley.edu/vs265/ica/IMAGES.mat IMAGES.mat]
* [http://redwood.berkeley.edu/w/images/9/99/Lab10_soln.pdf Solution]

Latest revision as of 21:25, 23 August 2016

Students are encouraged to work in groups, but turn in assignments individually, listing the group members they worked with.

Submission instructions: Only paper copies of the homework will be accepted. Solutions are due at the start of the class. Please place them on the speaker's desk at the front of the class.

Resources

Matlab

Student version of Matlab ($50) may be obtained here.

There is an excellent guide to Matlab by Kevin Murphy on the web: http://code.google.com/p/yagtom/

Python

Fernando Perez at the Brain Imaging Center has an excellent set of resources on Python for scientific computing. You will likely find the "Starter Kit" particularly useful.

Also, a great starting point for all scientific python is using Anaconda [1]

Assignments

Lab #1, due Tuesday, September 16 at beginning of class

Lab #2, due Tuesday, September 23 at beginning of class

For Python you can use apples-oranges.npz

  In [1]: import numpy as np
  In [2]: d = np.load('apples-oranges.npz')
  In [3]: d.keys()
  Out[3]: ['oranges2', 'apples2', 'apples', 'oranges']

Lab #3, due Tuesday, October 21 at beginning of class

Matlab code are as separate files below.

Data

For Python you can use

Lab #4, due October 9th at beginning fo class

Matlab code and data for homework

Python code:

  • hopnet.py - python version of the above code as one file (with run, genpat, and corrupt methods)
  • patterns.npz
   p = np.load('patterns.npz')
   face,hi,X = p['face'], p['hi'], p['X']
   # if you load patterns.mat, use:
   p = scipy.io.loadmat("patterns.mat")
   face,hi,X = [p[k].reshape(10,10).T.reshape(100,1) for k in 'face','hi','X']
   # line above converts Fortran to C ordering

Lab #5, due Thursday, Oct 30 at beginning of class

Lab #6, due Thursday, Nov. 6 at beginning of class

Python code:

Lab #7, due Tuesday, Nov. 25 at beginning of class

Lab #8, due Thursday, Dec. 4 at beginning of class