Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def backward(reversedWeights: List[Tensor], predictions: List[Tensor], deltas: List[Tensor]): List[Tensor] = {
- // the first weighted layer was not influenced by any layer before, so we stop here
- if (reversedWeights.length <= 1) deltas
- else {
- // calculate an error
- val error = deltas.head.dot(reversedWeights.head.T)
- // calculate an error impact
- val delta = error * derivate(predictions.head)
- // go for next calculation and prepend a current calculation to a result list
- backward(reversedWeights.tail, predictions.tail, delta :: deltas)
- }
- }
- val deltas = backward(weights.reverse, prev_predictions, List(final_delta))
Add Comment
Please, Sign In to add comment