4 Stimmen

Verstehen von Eta reduzieren

Wenn Sie hlint über die Datei weightDelta Funktion schlägt immer wieder vor, Eta zu reduzieren. Ich habe eine andere verwandte Eta reduzieren gelesen Frage aber ich kann das Verständnis nicht auf diesen Fall übertragen.

module StackQuestion where

import qualified Data.Vector as V

type Weights = V.Vector Double
type LearningRate = Double

weightDelta :: LearningRate -> Double -> Double -> Weights -> Weights
weightDelta n r y ws = V.map update  ws
        where update w = diff * n * w
              diff = r - y

Jede Änderung, die ich vorzunehmen versuche, um sie auf eine punktfreie Syntax zu "reduzieren", macht sie einfach kaputt. Wo ist die Änderung vorzunehmen, und gibt es eine Art Intuition oder einen Trick, um einen Vorschlag zur Reduzierung von eta in Zukunft zu vermeiden?

8voto

leftaroundabout Punkte 110665

Sie werden es nicht zum Punkt bringen. kostenlos Syntax leicht, aber was Sie sofort tun können, ist einfach -reduzieren Sie die ws weg.

weightDelta :: LearningRate -> Double -> Double -> Weights -> Weights
weightDelta n r y = V.map update
        where update w = diff * n * w
              diff = r - y

Sie können auch etwas tun wie

        where update = ( *)
               = n * (r - y)

aber das ist eher fraglich.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X