加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

100行Python代码,轻松搞定神经收集

发布时间:2019-05-06 06:16:28 所属栏目:建站 来源:eisenjulian 编译:周家乐、钱天培 用tensor
导读:大数据文摘出品 来历:eisenjulian 编译:周家乐、钱天培 用tensorflow,pytorch这类深度进修库来写一个神经收集早就不特别了。 然则,你知道怎么用python和numpy来优雅地搭一个神经收集嘛? 现现在,有多种深度进修框架可供选择,他们带有自动微分、基于图

正如我们前面提到的,我们将必要界说批样本的丧失函数和梯度。一个典范的例子是MSE,它被常用在回归题目里,我们可以这样实现它:

  1. def mse_loss(Yp, Yt): 
  2.   diff = Yp - Yt 
  3.   return np.square(diff).mean(), 2 * diff / len(diff) 

就差一点了!此刻,我们界说了两种层,以及归并它们的要领,下面怎样实习呢?我们可以行使相同于scikit-learn可能Keras中的API。

  1. class Learner(): 
  2.   def __init__(self, model, loss, optimizer): 
  3.     self.model = model 
  4.     self.loss = loss 
  5.     self.optimizer = optimizer 
  6.  
  7.   def fit_batch(self, X, Y): 
  8.     Y_, backward = self.model.forward(X) 
  9.     L, D = self.loss(Y_, Y) 
  10.     backward(D) 
  11.     self.model.update(self.optimizer) 
  12.     return L 
  13.  
  14.   def fit(self, X, Y, epochs, bs): 
  15.     losses = [] 
  16.     for epoch in range(epochs): 
  17.       p = np.random.permutation(len(X)) 
  18.       X, Y = X[p], Y[p] 
  19.       loss = 0.0 
  20.       for i in range(0, len(X), bs): 
  21.         loss += self.fit_batch(X[i:i + bs], Y[i:i + bs]) 
  22.       losses.append(loss) 
  23.     return losses 

这就行了!假如你跟从着我的思绪,你也许就会发明着实有几行代码是可以被省掉的。

这代码能用不?

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读