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

你用什么方法调试深度神经网络?这里有四种简单的方式哦

发布时间:2019-04-02 00:17:30 所属栏目:经验 来源:机器之心编译
导读:当你花了几个星期构建一个数据集、编码一个神经网络并训练好了模型,然后发现结果并不理想,接下来你会怎么做? 深度学习通常被视为一个黑盒子,我并不反对这种观点但是你能讲清楚学到的上万参数的意义吗? 但是黑盒子的观点为机器学习从业者指出了一个明显

对于所有时间步长 t,我们想要计算的梯度是与Δinput_t 对应的Δoutput。下面是用 Keras 和 TensorFlow 计算这个梯度的代码示例:

  1. def gradient_output_wrt_input(model, data): 
  2.   # [:, 2048, 0] means all users in batch, midpoint timestep, 0th task (diabetes) 
  3.   output_tensor = model.model.get_layer('raw_output').output[:, 2048, 0] 
  4.   # output_tensor.shape == (num_users) 
  5.  
  6.   # Average output over all users. Result is a scalar. 
  7.   output_tensor_sum = tf.reduce_mean(output_tensor) 
  8.  
  9.   inputs = model.model.inputs # (num_users x num_timesteps x num_input_channels) 
  10.   gradient_tensors = tf.gradients(output_tensor_sum, inputs) 
  11.   # gradient_tensors.shape == (num_users x num_timesteps x num_input_channels) 
  12.  
  13.   # Average over users 
  14.   gradient_tensors = tf.reduce_mean(gradient_tensors, axis=0) 
  15.   # gradient_tensors.shape == (num_timesteps x num_input_channels) 
  16.   # eg gradient_tensor[10, 0] is deriv of last output wrt 10th input heart rate 
  17.  
  18.   # Convert to Keras function 
  19.   k_gradients = K.function(inputsinputs=inputs, outputs=gradient_tensors) 
  20.  
  21.   # Apply function to dataset 
  22.   return k_gradients([data.X]) 

(编辑:威海站长网)

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

热点阅读