DL之simpleNet:利用自定义的simpleNet(设好权重)对新样本进行预测、评估、输出梯度值-阿里云开发者社区

开发者社区> 云计算> 正文
登录阅读全文

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

简介: 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)


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

其他文章
最新文章
相关文章