您当前的位置: 首页 > 
  • 2浏览

    0关注

    2393博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

DL之simpleNet:利用自定义的simpleNet(设好权重)对新样本进行预测、评估、输出梯度值

一个处女座的程序猿 发布时间:2018-07-16 08:10:19 ,浏览量:2

DL之simpleNet:利用自定义的simpleNet(设好权重)对新样本进行预测、评估、输出梯度值

导读 理解神经网络内部的数学机制

 

 

目录

输出结果

核心代码

 

 

 

输出结果

输出权重参数: [[-0.94465146 -1.22617291  0.89064915]  [-0.36625531  1.57482914  0.82170746]] 输出预测: [-0.89642065  0.68164248  1.27392621] 最大值的索引: 2 loss: 0.5111458955952319 求出梯度值:   [[ 0.04107652  0.19903878 -0.2401153 ]  [ 0.06161477  0.29855818 -0.36017295]]

 

核心代码
class simpleNet:
    def __init__(self):
        self.W = np.random.randn(2,3)  #用高斯分布进行初始化

    def predict(self, x):
        return np.dot(x, self.W)

    def loss(self, x, t):
        z = self.predict(x)
        y = softmax(z)
        loss = cross_entropy_error(y, t)

        return loss

net = simpleNet()

x = np.array([0.6, 0.9])
p = net.predict(x)


t= np.array([0, 0, 1])           
print('loss:',net.loss(x, t))



      
f = lambda w: net.loss(x, t)
 
dW = numerical_gradient(f, net.W) 
print('求出梯度值:','\n',dW) 

相关文章DL之simpleNet:利用自定义的simpleNet(设好权重)对新样本进行预测、评估、输出梯度值​​​​​​​

 

 

 

 

关注
打赏
1664196048
查看更多评论
立即登录/注册

微信扫码登录

0.0674s