diff --git a/.gitignore b/.gitignore index 5322709..ddc5524 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ *.swp *.pyc +*.jpg .env/* **/.ipynb_checkpoints/* **/.ipynb +**/datasets/* diff --git a/assignment2/ConvolutionalNetworks.ipynb b/assignment2/ConvolutionalNetworks.ipynb index aed386a..8f44968 100644 --- a/assignment2/ConvolutionalNetworks.ipynb +++ b/assignment2/ConvolutionalNetworks.ipynb @@ -573,10 +573,10 @@ "model = ThreeLayerConvNet(weight_scale=1e-2)\n", "\n", "solver = Solver(model, small_data,\n", - " num_epochs=20, batch_size=50,\n", + " num_epochs=10, batch_size=50,\n", " update_rule='adam',\n", " optim_config={\n", - " 'learning_rate': 1e-3,\n", + " 'learning_rate': 9e-4,\n", " },\n", " verbose=True, print_every=1)\n", "solver.train()" @@ -842,7 +842,8 @@ }, "outputs": [], "source": [ - "# Train a really good model on CIFAR-10" + "# Train a really good model on CIFAR-10\n", + "from cs231n.classifiers.conv import *\n" ] }, { diff --git a/assignment2/cs231n/classifiers/conv.py b/assignment2/cs231n/classifiers/conv.py new file mode 100644 index 0000000..0d916c0 --- /dev/null +++ b/assignment2/cs231n/classifiers/conv.py @@ -0,0 +1,2 @@ + +class ConvNet(object): diff --git a/assignment2/cs231n/layers.py b/assignment2/cs231n/layers.py index f459505..f9fc8e1 100644 --- a/assignment2/cs231n/layers.py +++ b/assignment2/cs231n/layers.py @@ -649,19 +649,14 @@ def spatial_batchnorm_forward(x, gamma, beta, bn_param): # be very short; ours is less than five lines. # ############################################################################# N, C, H, W = x.shape - tmp = x.transpose(1,0,2,3).mean(-1).mean(-1).mean(-1) - print("tmp.shape {}".format(tmp.shape)) + tmp = x.transpose(0,2,3,1).reshape(-1, C) out, cache = batchnorm_forward(tmp, gamma, beta, bn_param) - tmp = np.ones_like(tmp) - for i in arange(tmp.size): - tmp[i] *= out[i] - - tmp = tmp.reshape(N, C, H, W) + out = out.reshape(N, H, W, C).transpose(0,3,1,2) ############################################################################# # END OF YOUR CODE # ############################################################################# - return tmp, cache + return out, cache def spatial_batchnorm_backward(dout, cache): @@ -679,6 +674,7 @@ def spatial_batchnorm_backward(dout, cache): """ dx, dgamma, dbeta = None, None, None + ############################################################################# # TODO: Implement the backward pass for spatial batch normalization. # # # @@ -686,7 +682,11 @@ def spatial_batchnorm_backward(dout, cache): # version of batch normalization defined above. Your implementation should # # be very short; ours is less than five lines. # ############################################################################# - pass + + N, C, H, W = dout.shape + dout = dout.transpose(0,2,3,1).reshape(-1, C) + dx, dgamma, dbeta = batchnorm_backward(dout, cache) + dx = dx.reshape(N, H, W, C).transpose(0, 3, 1, 2) ############################################################################# # END OF YOUR CODE # ############################################################################# diff --git a/assignment2/kitten.jpg b/assignment2/kitten.jpg deleted file mode 100644 index e421ec1..0000000 Binary files a/assignment2/kitten.jpg and /dev/null differ diff --git a/assignment2/puppy.jpg b/assignment2/puppy.jpg deleted file mode 100644 index 3cc1234..0000000 Binary files a/assignment2/puppy.jpg and /dev/null differ