cs231n assignment(1.4):two_layer_net
来源:互联网 发布:杭州擎洲软件 编辑:程序博客网 时间:2024/06/06 18:13
two_layer_net
这个练习中,使用一个两层全连接的神经网络用以分类工作
各层的情况是:
input - fully connected layer - ReLU - fully connected layer - softmax
两层的神经网络计算loss和梯度
def ReLU(x): #ReLU non-linearity. return np.maximum(0, x)
def loss(self, X, y=None, reg=0.0): # Unpack variables from the params dictionary W1, b1 = self.params['W1'], self.params['b1'] W2, b2 = self.params['W2'], self.params['b2'] N, D = X.shape # Compute the forward pass scores = None s1 = X.dot(W1)+b1 h1 = ReLU(s1) scores = h1.dot(W2)+b2 # If the targets are not given then jump out, we're done if y is None: return scores # Compute the loss loss = None f_max = np.max(scores,axis=1,keepdims=True) f_scores = scores - f_max prob = np.exp(f_scores)/np.sum(np.exp(f_scores),axis=1,keepdims=True) loss = np.sum(-np.log(prob[np.arange(N),y])) loss = loss/N + 0.5*reg*np.sum(W1*W1) + 0.5*reg*np.sum(W2*W2) # Backward pass: compute gradients grads = {} dscores = prob dscores[np.arange(N),y] -= 1 dscores /= N #Second Layer dh1 = dscores.dot(W2.T) dW2 = h1.T.dot(dscores) db2 = np.sum(dscores,axis=0) #ReLU dh1[s1<=0]=0 ds1 = dh1 #First Layer dW1 = np.dot(X.T,ds1) db1 = np.sum(ds1,axis=0) #Reg dW1 += reg*W1 dW2 += reg*W2 #Store grads['W1'] = dW1 grads['W2'] = dW2 grads['b1'] = db1 grads['b2'] = db2 return loss, grads
关于调试超参数:
loss的下降类似于线性,意味着学习率可能太低。训练和验证集精确度之间没有gap,说明模型capacity低,所以我们应该增大模型的size.因为更大的模型会更overfitting。
阅读全文
0 0
- cs231n assignment(1.4):two_layer_net
- cs231n assignment1--two_layer_net
- cs231n作业1--two_layer_net
- CS231n--assignment 1--KNN
- cs231n 课程作业 Assignment 1
- cs231n 课程作业 Assignment 2
- cs231n 课程作业 Assignment 3
- cs231n assignment(1.1):kNN分类器
- cs231n assignment(1.2) svm分类器
- cs231n assignment(1.3):softmax分类器
- cs231n
- cs231n
- CS231N
- CS231N
- CS231N
- CS231N
- cs231n
- cs231n Assignment#1 (1)k-Nearest Neighbor (kNN) exercise 代码理解笔记
- jquery中hasClass()作用
- oop复习
- ajax上传文件
- python调用bitly api出错
- java dbutil 1.1.5(1.1.4) 版本更新
- cs231n assignment(1.4):two_layer_net
- hadoop-2.7.3 + hive-2.3.0 + zookeeper-3.4.8 + hbase-1.3.1 完全分布式安装配置
- MVC配置拦截器
- 非结构化数据查询方法分类;顺序扫描法;全文检索法
- HDU 1560 DNA sequence(IDA*~)
- PHP实现希尔排序
- Eclipse远程调试
- JSTL 自定义标签
- JDK安装配置(菜鸟笔记,多多指教)