This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
cs501r_f2016:lab9 [2016/11/09 18:31] wingated created |
cs501r_f2016:lab9 [2021/06/30 23:42] (current) |
||
---|---|---|---|
Line 10: | Line 10: | ||
- You must implement a siamese network that accepts two input images | - You must implement a siamese network that accepts two input images | ||
- The network must output the probability that the two images are the same class | - The network must output the probability that the two images are the same class | ||
+ | - You should train the network using the contrastive loss function discussed in class | ||
- Your implementation should use a ResNet architecture | - Your implementation should use a ResNet architecture | ||
Line 16: | Line 17: | ||
- A tensorboard screenshot showing that your architecture is, indeed, a siamese architecture | - A tensorboard screenshot showing that your architecture is, indeed, a siamese architecture | ||
- Your code | - Your code | ||
- | - A small writeup (<1/2 page) describing your test/training split, your resnet architecture, and the final performance of your classifier. | + | - A small writeup (<1 page) describing your test/training split, your resnet architecture, and the final performance of your classifier. |
You should use the [[http://www.openu.ac.il/home/hassner/data/lfwa/|Labeled Faces in the Wild-a]] dataset (also available for | You should use the [[http://www.openu.ac.il/home/hassner/data/lfwa/|Labeled Faces in the Wild-a]] dataset (also available for | ||
Line 46: | Line 47: | ||
- Make sure that parameters are shared across both halves of the network! | - Make sure that parameters are shared across both halves of the network! | ||
- Train the network using an optimizer of your choice | - Train the network using an optimizer of your choice | ||
+ | - You should use some sort of SGD. | ||
+ | - You will need to sample same/different pairs. | ||
Note: you will NOT be graded on the accuracy of your final classifier, as long as you make a good faith effort to come up with something that performs reasonably well. | Note: you will NOT be graded on the accuracy of your final classifier, as long as you make a good faith effort to come up with something that performs reasonably well. | ||
Your ResNet should extract a vector of features from each image. Those feature vectors should then be compared to calculate an "energy"; that energy should then be input into a contrastive loss function, as discussed in class. | Your ResNet should extract a vector of features from each image. Those feature vectors should then be compared to calculate an "energy"; that energy should then be input into a contrastive loss function, as discussed in class. | ||
+ | |||
+ | Remember that your network should be symmetric, so if you swap input images, nothing should change. | ||
Note that some people in the database only have one image. These images are still useful, however (why?), so don't just throw them away. | Note that some people in the database only have one image. These images are still useful, however (why?), so don't just throw them away. | ||
Line 64: | Line 69: | ||
- The final performance of your classifier | - The final performance of your classifier | ||
- | This writeup should be small - between 1/2 - 1 page. You don't need to wax eloquent. | + | This writeup should be small - less than 1 page. You don't need to wax eloquent. |
---- | ---- |